开发者和IT运营团队:如何应对复杂的分布式应用构建挑战

2014年真是令人兴奋的一年,这一年里,云计算领域出现了一些新兴技术和趋势来塑造未来的IT。2014年底,软件的整体依然呈增长趋势。由于通用处理能力的增长、低成本的个人计算机设备和互联网时代的到来,软件现在几乎无处不在。今天仍然面临的最大挑战是开发人员和IT运营团队如何构建复杂的分布式应用,以及如何快速响应快速变化的市场和客户需求。容器化、混合云和融合式基础架构(converged infrastructure)正在迎接这一挑战。

2015是Docker之年

开发者和IT运营团队:如何应对复杂的分布式应用构建挑战

有没有想过,如果我们不使用VMWare会怎么办?容器化可以方便打包和部署分布式应用,这种创新大范围渗透到IT行业的每个角落。Docker的兴起和普及是因为它能提供一种一致性机制来构建、部署和扩展应用组件并隔离系统资源。为了持续集成并部署基础设施,Docker可以轻松管理应用依赖以及配置。

Docker 颠覆操作系统

2014年末,CoreOS宣告推出其自主的容器技术,命名为Rocket。Rocket是基于分布式设计的一种用于在规模上简化容器部署的极简操作系统。从DockerCon以及二者的争论中我们可以确定:Docker和CoreOS彻底分道扬镳了。两个开源公司都在争夺同样的用户群,因为,没有一个运营平台,Docker容器的最终仅仅只是一个开发工具。对于新兴技术来说有竞争总是好的,我们现在有两匹马在竞赛。在这场比赛中Docker毫无疑问的领导者,它在开源社区、媒体宣传、合作伙伴合作等领域拥有更大的份额。CoreOS作为软件包在任何Linux中都能有效分发,它是一个独立的操作系统,这是CoreOS和Docker最大的区别。这意味着,除了Docker,CoreOS的竞争目标已包括微软、VMWare、RedHat、Ubuntu这些行业巨头,而这四个老牌巨头也正恰好是Docker的重要合作伙伴。与此同时,Ubuntu和RedHat在两个新项目(Ubuntu Core和Atomic)通过引入一些类似CoreOS功能作为他们的第一步反击,而微软宣布在Windows Server的未来版本将原生支持Docker容器。

Docker颠覆PaaS(平台即服务)

2014年底更大的新闻是Docker宣布在DockerCon支持多容器编排分布式应用,引进Docker Swarm和Docker Compose。Docker Swarm是一个Docker主机集群系统,提供主机的基本发现和Docker容器在主机内的调度。Docker Compose提供一个简单的基于YAML配置语言,用于描述和组装多容器的分布式应用和明确Fig的作用。这意味着未来用于PaaS相当明朗。

Cloud Foundry, OpenShift和ActiveState公司都迅速采取行动基本支持Docker容器。对大型企业来说PaaS平台有很多有价值的安全和多租户性能。但随着自身容器编排,Docker能提供部署分布式应用基于以开发人员为核心"git push"的用户体验,它是一种比部署一个完全成熟的PaaS平台更简单的部署方式。把PaaS的开发放在首位的公司,对其来说用户体验是主要动力。

因为Docker Swarm和Docker Compose仍处于alpha版,所以目前来说功能还略显简单。

Docker颠覆虚拟化、私有云、配置管理

多年来,虚拟机镜像已成为用于打包和部署分布式应用的实际机制。从IT操作角度来看,虚拟机提供一流的资源隔离、安全性和稳定性。但是,虚拟机也需要完全管理完整的操作系统实例,其每个实例都有自己的存储空间和网络设置,依赖项和系统环境配置。虚拟机镜像实际是大而沉重的文件系统。一旦部署,因为一次次的修改软件,脚本和人们用以适应这样那样的需求,虚拟机往往从原生的原始状态开始“飘移”。事实上,管理的虚拟服务爆发式的增长,即所谓“虚拟机蔓延”问题,这个问题需要配置管理。目前已有解决该问题的配置管理系统如Chef、Puppet、Ansible和Salt,它们已成为系统管理的基本工具。目前还不清楚的是开发者职责结束和系统管理员的责任开始于一个虚拟机,它们之间节点在哪,经常发生通过“all hands on deck”(译者注:英语流行语。在本文中大意为集中所有能力去解决突发情况。GTA5 里有个任务名为all hands on deck^-^)式的经验来排除故障。

你可能听说过容器和虚拟化是完全免费的-这是真实的。无论怎样,容器有较少的性能开销,资源利用更高效,更快的部署一个完整虚拟机。容器与虚拟机相比更重要的优势是,基于软件定义(它是基于元数据和其指定组合创建)。总之,这些特性开启了一个强大的分布式应用管理模式-不变的基础设施。在不变的基础设施建设中,极简操作系统包含自动发现、配置和自动化分配容器镜像分配。容器在需要时被创建,在不再需要时卸载。IT和开发团队之间的责任划分明确,IT运行装载容器,开发运行容器。在2015年,我们将开始看到许多开始尝鲜的基于全自动化容器架构的私有云产品。

然而相对于这些优势,IT将继续争取虚拟机管理的未来。有许多好的理由,其中有很多如传统应用程序和多租户。所以在容器获得主导地位的数年时间内,将会有(主要是传统的)应用程序,与容器之间存在兼容问题而不能运行。

Docker颠覆IaaS(基础设施即服务)

一些云服务供应商已提供适应承载Docker容器的基础系统镜像,但他们其仍需要提供快速迁移工具使其更易于管理。Amazon推出Elastic Beanstalk支持Docker,谷歌已有容器引擎CCP,CenturyLink推出了Panamax,数字海洋已用CoreOS作为基础镜像。预计在2015年我们将在这些供应商中看到一个全新的基于容器中心的API和云服务出现。

混合云

开发者和IT运营团队:如何应对复杂的分布式应用构建挑战

因硬件的更新周期再加上IT服务更灵活的需求,大型企业要认真审视混合云架构。许多企业正在继续早已过时的基础设施建设计划,在过去几个月和我交流过的几乎每个IT领导者都希望公有云作为其整体IT战略的一部分。坏消息是IT团队仍然受一长串环境限制,如传统基础设施,监管及合规问题及安全问题。这或多或少成为未来几年公有云在企业中应用推进的障碍。

加入管理多个云和外包关系的列表,以及鉴于云之间迁移工作负载和数据的难度和复杂性,这很容易理解为何企业去花大量时间去混合。对于混合云的这种特点,这种复杂性可能最终促使企业通过云服务供应商或市场中获得云服务,其提供单一用户管理多个云的工具。当前混合云在开发和测试用例领域仍然占主导地位,并且在2015年继续延续现在的情况。
自动化

开发者和IT运营团队:如何应对复杂的分布式应用构建挑战

自动化大概是我在2014年下半年从IT专业人员和行业引领者口中听到重复次数最多的词汇,它已经为它的用户群实现了开启自服务的目标。企业顶着预算压力下不断的努力扩大IT业务。解决这个问题的最好方式是通过自动化实现更少的人做更多的工作。我最近常讲持续集成(CI)和部署在研发和运营团队中非常流行的一个共同目标。在Docker中,也有类似像Shippable一类非常好的工具发挥容器化的优势。

在2015年,我预计我们将看到像一些自动化框架,如Puppet,Chef,Salt和Ansible,它们开发完善功能来解决像裸机编排这一困难任务(这些框架中已经有一些有这方面的一些功能)。我们称这个任务是基础设施的“准备态”,这是在首次硬件配置后可以接受工作负载的基础设施的第一时刻。

第三方自动化工具的问题是他们很难跟上硬件厂商不断重构、更新硬件版本、发布新产品、更新固件和管理软件的步伐。归根结底,最有可能是硬件厂商自己将提供优化的自动化编排。

这给我们带来了我们的最后一个重要的颠覆的趋势,融合基础设施:

融合基础设施

开发者和IT运营团队:如何应对复杂的分布式应用构建挑战

只要IT支持企业业务还存在,IT部门的主要职能是评估、收购、整合不同的软硬件来构造业务系统。而且,鉴于PC时代的经验,硬件厂商选型一直是设计的主要考虑因素。随着网络规模化的架构已经成熟和为人所熟知,包括虚拟化技术的出现(包括容器化),IT作为硬件集成商的日子即将结束。任何类型的虚拟化意味着IT团队可以减少硬件厂商选型的风险,因为他们可以迅速重新部署这些系统而无需停机。如前所述,现代化的IT团队的侧重点将主要关注创建和维护软件。必须快速采取行动,以客户和市场为导向,快速反应意味着比曾经更少的准备时间。如果部署前置基础设施比乐高玩具还简单?

融合基础设施或Gartner公司所称“基于机架的计算”,是本文所讨论的一些发展趋势的必然成果。融合系统帮助普通企业构造基于网络规模化的基础设施,提供预集成的计算、网络、存储和虚拟化。对内部IT以及服务提供者来说,融合基础设施在未来十几年的发展可能是令人兴奋的。早在2007年,我加入的一个年轻的狂热的初创组织3LeafSystems创造了一个融合的网络、存储和计算架构。这正是这些技术趋势能如期实际应用的一个很好的实例。

当今,在这一领域每一个重要的硬件厂商都有业务融合线,同时有一批初创公司也做的非常好(比如Nutanix)。在2015年,因下一代系统开始进入市场,在这方面我们可以看到很多厂商的动作。

奔跑吧

相关推荐