UnitedStack的运维工程师Jim Jiang(@蒋闻天)同学在自己11月底的一篇博客文章《DevOps 2.0》中提出了自己对DevOps理念及相关工具演变的一个解读。他在从宏观角度分析了Foreman、Puppet、Juju、Razor、Crowbar、Chef和TripleO整个体系的关系和异同之后提出了一个观点:
在Jim Jiang同学看来,DevOps世界的本质其实是五大块:Provison,Software Install,Configuration,State Management,以及Orchestration。 五大块的定义分别是:
Jim Jiang同学对现有的各个运维自动化工具列了一个表格: 上图中除了最底层以外的其他工具都无法覆盖所有的五大块,因此Jim同学说:
最重要的是,在传统的DevOps工具下,
那么Jim Jiang同学提倡的TripleO又是怎么一回事呢?这在他的另一篇文章《TripleO, Openstack Deploy On Baremetal Openstack》进行了更加详细的描述:
TripleO这个名称的来源是“OpenStack deployed on and with OpenStack”这个词组,意思是“用OpenStack部署,部署在OpenStack之上的OpenStack”。 这样做的好处是什么呢?Jim Jiang同学总结了两点:
Jim Jiang不是第一位提及DevOps 2.0概念的同学。在2012年6月,GigaOM上发布了一篇名为《Star Trek’s Dr. McCoy and DevOps 2.0》的文章,最早提出了DevOps 2.0的概念。该文作者Dave Roberts是ServiceMesh公司的CMO、战略SVP和布道师。 Dave在文章中对DevOps提出了如下定义:
Dave描述的“传统DevOps”跟“现代DevOps”最大的区别在于,传统DevOps对底层物理设备的管理无能为力,而DevOps 2.0则可以将防火墙、负载均衡一并纳入。这点和Jim Jiang同学的观点一致。 纳入物理设备也可以用另一种方式理解,那就是“带着环境一起走”:
无独有偶,在今年QCon上海《来自一线的敏捷实战》专题上,爱立信软件开发高级专家蔡煜(@larrycaiyu) 分享了一个建设建立了ETA (Environment Tools Automation)团队的经验。蔡煜认为从团队的角度来看,一个团队如果光做工具,或者光做版本控制,光做持续集成,光做自动化这些,那么是很容易被 孤立的,发展的空间很小,也没有成就感。而ETA这三部分工作如果有机会合在一块,事情的发展就会顺利的多。虽然跟DevOps这个话题没有直接的关系, 但表明在其他领域也有人关注环境与软件整合的问题。 你对于DevOps 2.0的概念怎么看?或者换句话说,你对于物理环境和虚拟环境统一管理、环境本身与软件设计的整合这样一个方向有什么看法?欢迎交流! |