大约 18 个月之前,科技出版物中充斥着“容器,以及他们将如何从根本上改变企业 IT”的新闻。我们在这些说的天花乱坠的新市场中提取信息,汇总到“容器的现状”博客。基于我们的研究,可以清楚的看到,容器的确造就了市场趋势,而且代表了十年来的一次在企业基础设施方面的转型,这样的转型会重新塑整个 IT 行业。
很显然,容器和应用程序层都只是开始,我们调查差距在哪些地方:比如像安全,网络,管理和编排这样的领域,了解我们支持下一代革新的领域。我们采访了 100 多位专注于将革新带入企业 IT 堆栈浪潮的企业高管和创始人,同时对两家公司做了研究:Core OS 和 Cockroach Labs。随着最近越来越多的商业建立在 Kubernetes 的基础上,我们在这里花一点时间来将它和其它的编排工具进行优缺点对比,以及表述为什么我们坚信 Kubernetes 会成为容器编排工具之中耀眼的明珠。
一点历史
在不久之前,虚拟化还统治着世界。在大型企业中,运行手册和部署脚本被用来交付自动化应用程序。但是这样往往容易出现人为错误,配置管理工具的产生犹如雨后春笋,他们旨在解决世界 500 强企业中复杂开发环境中的问题。之后,正如大家所知,软件统一了世界。
今天的互联网巨头,比如谷歌,Netflix 和 Facebook 都已经在使用容器和微服务架构了,在这些地方,小模块化组件围绕特定业务功能建模,并进行协同工作——促使开发人员继续交付新的产品,功能以及大规模增强功能。世界 500 强继续开发由大型中心化管理团队支持的专用软件栈,花费数月来交付新的功能和产品,比互联网同行花费更多时间精力。
不仅仅企业应用程序架构和部署十分复杂,扩展也是及其困难的一件事。跟基于云的分布式微服务架构不同,企业数据中心的正常使用率通常大约只有 20%——真是个又贵又浪费的问题,但是又无能为力。尽管世界 500 强企业高管已经开始羡慕数据中心运维支出,另一个巨大的商业利益就是,它加快了互联网公司为客户、合作伙伴和雇员交付解决方案的速度。数据中心的利用率和有灵活性的产品规模化成为破局者,世界 500 强企业意识到数字化转型的必要性。
把我们带到今天的是什么
现在,几乎每一个世界 500 强企业都在向基于软件的业务转型,努力在瞬息万变的市场中竞争。在充分了解企业使用微服务的情况下,世界 500 强的高管知道,敏捷开发实践和容器技术是数字化转型的关键。然而,容器形式自身仅仅只是开始——它很大程度上已经是一个商业化的积木块。世界 500 强采用的关键基础件是容器管理,市场份额的这场仗已经打响了。
以下是我们对云基础设施管理生态系统系统的评估,每个都带有各自的特点:
Cloud Foundry
Cloud Foundry 是一个开源云计算平台服务。目前由 VMware 开发,Pivotal(是由 EMC,VMware 和 General Eletric 合资的企业)软件持有。Cloud Foundry 支持整个开发生命周期,从最初的开发,贯穿到整个测试阶段,再到部署阶段。因此它非常适合连续的交付策略,但是它的这个方法不是以容器技术为中心的。
OpenStack
OpenStack 开始于 2010 年的由 Rackspace 公司,和美国航天局的一个项目合作。它是一个自由、开源的平台,作为一种服务解决方案(IaaS)。OpenStack 包括了一套控制面板 API,以及允许企业在自己的数据中心部署虚拟机和定义其他软件的基础设施环境的软件。虽然简化异构企业开发环境十分有价值,但是 OpenStack 经常被批评,因为它安装极其困难。然而,最近的 demo 中,OpenStack 用 Kubernetes 运行得十分顺畅,就如同安装任意运行在 Kubernetes 上的应用程序一般,这就给基于 IaaS 的容器和虚拟化的企业带来了便利。
Docker Swarm
Docker Swarm 是 Docker 原生的容器集群管理工具,将多个 Docker 主机抽象成一个虚拟主机。Docker 的新版本包括了它自己的编排系统,叫做 SwarmKit,该系统增加了内置于 Docker 容器格式的容器管理。这使开发人员能够用简单易用的方式来管理容器,但要应用到生产环境,仍然有很长的路要走。从社区角度看,Swarm 最终由一个公司控制,而不是开源社区,这也就增加了一些风险。类似于像 Mesos 和 Kubernetes 这样的解决方案支持更加强大的功能设置,吸引更大的企业。
Apache Mesos
Mesos 是一个最初在加州大学伯克利分校开发的开源软件。它位于应用程序层和操作系统之间,使在大规模集群环境中部署和管理应用程序更加轻松,高效。Mesos 的内核是一个通用的调度系统,但是它可以跟其他调度器进行很好的整合。这就令像 Hadoop 和 Marathon 这样的系统可以顺畅的一起运行。由于 Mesos 它起源于科学计算,所以不那么着重于运行容器这方面。它在容器技术开始活跃前就存在,并已经重新调整以更好的支持容器服务。
Kubernetes
Kubernetes 是一个从底层向上设计的,用容器来创建,管理和编排分布式应用程序的理想平台。它包括用于副本和服务发现,作为其内核的一部分,需要了解如何正确配置,Kubernetes 的版本就是开发一个允许企业以最高效,安全和轻松地来管理大规模应用程序部署的系统。
期待
随着企业使用案例,世界 500 强公司现在正寻求超越“Docker”的科学项目。他们目前的下一步计划就是,评估能否用上述解决方案来替换旧系统。很多都是将这些之中的几个进行部署,由团队和用户案例进行存储。在这个过程中,谨慎是很重要的:同时使用这些系统会在未来造成很明显的障碍——成本损失。当考虑到管理,安全,支持和人类对于这些平台所需的专业知识的时候,以及再在此基础上再考虑可靠和高效问题——那么,管理他们就很容易成为一个噩梦。
有前瞻性的思维机构已经意识到,对于抽象和集中数据中心资源来说,Mesos 和 Kubernetes 是最佳平台。Kubernetes 在 Mesos 以及其它提供的工具中脱颖而出的原因就是,目前正有一个开源社区围绕着它在形成,推动它与其它关键基础设施组件(比如 SoundCloud 的普罗米修斯和 CoreOS 的 etcd)的开放式集成,形成多厂商的开源社区支持企业堆栈。这样做的原因,据 Apprenda 高管 Chris Gaun 说,就是 Kubernetes 提供了一个“模仿 Hadoop 的非常强大的模型”。在这个模型中,Hadoop 十分成功,因为它不再是只由单个大供应商主导了。
这篇帖子中提到的基础设施平台很大程度上在一个或者多个大厂商的指导下的,而且他们基本上跟其它开源组件一起运行得不是很好。最近 Accel 在 Work-Bench 举办的 Open Source 上描述,他们缺乏必要的开源社区,网络贡献者,以及一线开发人员和客户,成为深受大家欢迎拥护的基础技术。Kubernetes 用户的爆炸式增长,也从另一方面说明了大家社区概念的接受度颇高。
此外,Kubernetes 建立在谷歌 15 年运行云基础设施产品工作基础上,同时来自其社区不断增长的贡献者和公司的实践经验,他们还在积极添加功能。Kubernetes 社区已经为运行企业规模的分布式基础架构奠定了一个坚实的基础,同时其它公司比如 Core OS 的团队正在将 Kubernetes 与其他强大的开源技术结合在一起,来帮助实现企业级安全,可靠地运行容器。虽然这看起来就好像这些容器公司都在争夺同一杯羹,但是其实不太可能出现一家通吃的情况,而且这些不同的平台支持不同客户的不同场景,各有千秋。几年后企业将发生怎样的变化我们拭目以待,同时我们也继续期待 Kubernetes 每个新版本的发布。
本文转载自才云 Caicloud 公众号。
原文链接:https://mp.weixin.qq.com/s/0h_9Li84CkHVL2wgZ5ZS-A
评论