Marc Andreessen曾说过,“软件正在吞噬这个世界”,而在数据中心领域,我们也正在目睹这一潮流。软件正在接管那些过去一直由硬件实现的功能;而对于人们如何共事,这一变迁正在引发戏剧性的改变。 基本上,整个云计算的发展都与用软件来取代或抽象硬件有关。它始于虚拟化,已经走过了数十年的时光,但只是在最近10来年间才在商品化硬件方面普及开来。 将硬件与其上运行的服务解耦,将让大量服务器得以合并,从而加速乐硬件商品化,并进一步降低制造商的底线——他们已经处于勉强维持利润率的境地了。尽管对硬件制造商来说这并不是最佳产出,但对于VMware这样的创新型软件制造商来说则是非常好的消息。同样,技术买方也乐得如此。 在2009年,我们终于看到了虚拟服务器的数量超越物理机。这意味着现在大部分从事基础设施工作的人,已经不再需要在硬件上操作了。讽刺地是,这可能会创建一个新的前所未有的烟囱(注:Silo,在本文中指企业内,处于互相独立状态、缺乏横向联系的垂直管理体系,如开发、IT、运营等):专注于维护从硬件到虚拟机层面的团队。同时,这个星球上的其他人则在纯软件的环境中执行操作。 好吧,至少一定程度上是这样。事实上大部分组织机构都已经虚拟化了他们的计算资源,并且或许已经迁移到商品化硬件上,来实现防火墙或负载均衡器(基本上,使用的是运行Linux或BSD的x86盒子,并叠加了某些特殊的软件)。但是他们的存储和网络资源依旧侧重于硬件,即使其上的商品化IP设备,其行为也是尽可能地按照硬件设备的方式,而不是类似软件的表现。 下一个重大的发展,不仅会把计算抽象到软件层面,还会抽象存储和网络。这是一种向着完全由软件定义的基础设施的转变,将为采用它的组织机构开启无数的可能性。 DevOps和软件定义基础设施对于云计算来说,DevOps既非因也非果,不过DevOps倒的确是一项与云计算关系紧密的运动。基本上它算是一种文化变革,其目标是打破开发者与IT系统管理员之间泾渭分明的状态,从而以更高的频率,更好地部署软件,并更好地匹配业务需求。 开发与IT之的间这种分隔之所以会存在,不仅仅是因为开发者和运营人员的兴趣不同,而且实际上他们的典型工作场景甚至会发生冲突。系统管理员被要求保持IT运行平滑可靠——没有故障,没有宕机,而且能够根据业务要求按需扩展。开发部门则处于另一个方向,他们被鼓励频繁发布新代码,从而在竞争中保持领先。在IT运营部门看来,开发者们发布充满bug的代码,而留给IT接手时则会让IT难以开展自己的工作。而在开发部门看来,IT运营部门对流程和程序的坚持,则阻碍了开发工作的开展。 不过,如果我们将基础设施看作软件,那么就可以将它当作一个正在运行的应用,并围绕运营构建软件开发工作流——比如应用升级、软件补丁等,从而让系统管理员和开发者结成一线,和谐地工作在一起。如果我们认为基础设施只不过是服务器、交换器和路由器,那么刚刚说的这些就不可能了。但一旦我们将基础设施视作一系列服务,那么很明显我们就可以把它当作软件来对待和操作。 DevOps应归于文化,云计算应归于技术——然而在现实中,云计算必须与二者同时相关。尽管技术无法解决“政治”问题,但会有助于缓解。云计算技术能够让应用开发者围绕着无法提供软件世界观的IT部门工作。但对于能够获得完整的软件定义基础设施的人来说,传统的系统、网络和存储的烟囱正在被打破。单独一支团队就能够构建并部署新应用,支持更高的敏捷度、更快的速度,同时从软件就绪到真正将价值交付给目标用户所需要的时间也会大幅减少。 |