30个不可不知的容器技术工具和资源

软件容器技术影响着从开发人员、测试人员、运维人员到分析人员的IT团队中的每一个人,它不像虚拟化一样只是系统管理员的工具。容器包的大小和完整性使得团队成员能够在几秒钟内部署完整的环境。

容器是一个很好的工具,同时带来了一系列下游决策,包括使用何种标准、如何存储旧版本和部署镜像、如何在生产中管理这些镜像等等。

但是,该如何正确的组装产品和服务,才能在环境中有效地构建、运行和管理容器?为了回答这个问题,我们调查了各种容器技术产品和服务,以便您可以衡量对比各种容器架构、集群管理和部署、存储、安全、操作系统、部署等方案的优劣。

容器运行

尽管Docker的高人气让其成为了一个事实标准,但市场上的轻量级Linux虚拟化工具众多,Docker也只是众多竞争者中的一个。你有很多选择,包括:

Docker

Docker的同名开源容器化引擎适用于大多数后续产品以及许多开源工具。

Commercially Supported Docker Engine(CSDE)

Docker公司拥有扩展Docker的所有权。CSDE支持在Windows服务器上运行docker实例。

Rkt

rkt的发音为“rocket”,它是由CoreOS开发的。rkt是Docker容器的主要竞争对手。

Solaris Containers

Solaris容器架构比Docker更早出现。想必那些已经在Solaris上标准化的IT企业会继续研究它。

Microsoft容器

作为Linux的竞争对手,Microsoft Containers可以在非常特定的情况下支持Windows容器。

集群管理和部署

创建镜像、将它们从开发传递到测试并回传,都是容易的事情,但要在生产环境中支持它们就不那么简单了。因为那意味着要注册工件,要将它们作为系统部署到生产中,还要管理服务器和服务器集合,包括云中的服务器集合(即“集群”)。集群管理工具管理工作负载,包括将实例从一个虚拟主机转移到另一个基于负载的虚拟主机上。集群管理工具还负责分配资源,如CPU和内存。

Kubernetes

虽然没有集群管理的标准,但Google的开源产品Kubernetes是最受欢迎的。有Amazon的AWS、Google云引擎(GCE)和Microsoft的Azure容器服务的支持,Kubernetes是相对可移植的,这有助于防止供应商锁定,Kubernetes甚至可以在私有云(如OpenStack)上运行。Microsoft、Amazon和Google都提供运行Kubernetes的容器服务,并提供商业支持。

Apache Mesos

一个用于抽象计算资源的工具,Apache Mesos可以在同一个集群中同时运行Docker和rkt镜像。DC/OS是在Mesos上构建的平台,用作数据中心操作系统。

Docker Swarm

Docker是用于集群管理的免费产品,Swarm从命令行运行,并与Docker 1.12及更高版本捆绑在一起。现在它只用于Docker的原生编排。

Docker Data Center

基于Web的dashboard提供对Docker的全部管理,包括控制面板、注册表、监视、日志记录和持续集成,Docker Data Center通过运行Docker Swarm进行集群管理。虽然Docker是免费的,但Data Center是有商业支持的商业产品。当然,Docker Data Center囊括并扩展了公司的免费开源产品:Docker和Swarm。

Rancher

严格上说Rancher不属于单纯的集群部署与管理工具,因为它的本质是一个全栈化的容器管理平台,但是Rancher是全球唯一一家同时支持Kubernetes、Mesos和Swarm的容器管理平台。Rancher可以帮用户自动设置并启动Kubernetes、Mesos或Swarm所建立的集群,并同时提高实施访问控制策略和完整易用的用户管理界面。

储存容器

容器从出现伊始就被设计为可互换的、甚至是可替代的,就像货币一样。这对于Web服务器是非常好的,因为这样就根据需求在集群中添加或删除相同的服务器了。另一方面,存储和数据库需要持久性位置来容纳数据,或者至少需要标准的接口层。如果想要迁移到全容器基础架构的组织就需要存储,以下公司及产品已经满足了这一需求。

ClusterHQ

这些工具有助于将数据库放入容器中。虽然开发ClusterHQ的供应商在去年12月停业,但它在github.com/ClusterHQ留下了大量的免费/开源软件。

BlockBridge

BlockBridge是“弹性存储平台”公司,作为使用Docker的容器提供存储,具有OpenStack选项和软件定义的安全存储。