在如今,在讨论云时是很难不提及容器技术的。无论你是刚刚入门的技术新人或者经验丰富的专业人士,一定都应当知道这些与云中容器技术相关的重要术语。
随着云计算中容器技术的普及,越来越多的企业都不选择考虑其他选项了。
虽然容器技术已经面世一段较长时间了,但最近是Docker帮助它们进入了企业应用的焦点。随着云的发展,更多的企业了解了采用混合云和多云模式的好处,但是确保软件在不同环境之间迁移时能够稳定运行则成为了一大挑战。容器技术是通过将应用程序机器所有组件打包成为单个可便携的包来解决这一难题的。
此外,随着云计算中容器技术的日益普及,包括亚马逊网络服务(AWS)、Azure以及谷歌在内的主流供应商们都提供了容器服务或编排工具以便用户能够管理容器的创建与部署。
但是,在用户开始整理他们的流程之前,应当首先熟悉容器的这些关键术语:
应用容器化:容器化(也被称为基于容器的虚拟化)是一个分布式的应用程序部署模式,它可为每个应用程序启动虚拟机提供一个替代方案。多个隔离环境(即所谓的容器)可共享同一个操作系统内核而不是在单个控制主机上运行。与传统的虚拟化技术相比,容器化可实现内存、CPU和存储等资源的更高效使用。
因为企业用户可以比基于管理程序的实例更快地创建容器,所以容器技术还可有利于实现更灵活的环境,从而促进持续的交付方式以及微服务的应用。
容器即服务(CaaS):诸如AWS、Azure和谷歌这样的云供应商们可提供基于容器技术的虚拟化即服务,为容器化应用程序提供编排、管理和计算资源。这个所谓的CaaS模式通常是由基于Linux的操作系统、容器运行时间、容器编排工具和容器注册表等组成。
Docker:Docker是一个开源平台,它可将Linux应用程序部署为容器。Docker容器可以在多个位置上运行,包括虚拟机、裸机服务器和公共云实例。主流云计算供应商们(如AWS、Azure和谷歌)都支持Docker容器。
Google Kubernetes:Kubernetes是谷歌公司针对公共云、私有云以及混合云的容器管理系统。这个开源系统管理着Docker和Rocket容器的部署与扩展,它还提供了编排工具和负载平衡工具。就如同它们支持Docker一样,AWS、谷歌和Azure都支持Kubernetes系统。开发人员可以跨云平台实现Kubernetes容器工作负载的迁移,而无需更改代码。
Google容器引擎(GKE):GKE是一个云计算中Docker容器的编排与集群管理系统。这些集群包括了一组运行Kubernetes的谷歌计算引擎实例。GKE 提供了对谷歌容器注册表的访问权限,以便存储和访问私有Docker镜像。Stackdriver Logging 与 Stackdriver Monitoring 还可用于监控应用程序的运行状况。
微软Windows容器:微软Windows容器是Windows Server2016中的隔离容器环境。它支持两种类型的容器:Windows Server Containers and Hyper-V Containers。企业用户可以使用Docker、PowerShell或Azure来管理这些容器,并将它们与现有Windows技术相互集成。
Azure容器服务(ACS):ACS是基于Apache Mesos 的开源编排系统,它可在云计算中管理容器群。该项服务支持DC/OS、Docker Swarm和Kubernetes扩展和编排。因为编排层中的开源组件,应用程序是完全可移植的。
亚马逊EC2容器服务(ECS):亚马逊ECS是一个容器管理服务,它可支持Docker容器,以及在托管亚马逊EC2实例集群上运行应用程序。用户可通过一组API来创建和管理Docker容器。该服务可评估和监控CPU使用情况,并支持其自有开源程序——AWS Blox以及第三方调度程序。用户还可以通过API调用访问其他亚马逊EC2功能,例如弹性负载平衡、安全组以及身份与访问管理角色。亚马逊EC2容器注册表可与亚马逊ECS集成,以便管理、存储和部署Docker容器镜像。
开发容器计划:OCI是一个协作项目,可用于建立容器的通用标准。该项目由Linux基金会主办,它独立于其他商业组织。目前,OCI有两个规范:运行时间规范和镜像规范。OCI的成员包括AWS、谷歌、微软以及IBM等供应商。