1.2 运维自动化的三重境界
宋代禅宗大师青原行思(六祖门下首座)提出参禅的三重境界:
参禅之初,看山是山,看水是水;
禅有悟时,看山不是山,看水不是水;
禅中彻悟,看山仍然山,看水仍然是水。
这三重境界其实和我们眼中运维自动化的三重境界是类似的。
运维自动化第一重境界:看山是山,看水是水。开始接触运维自动化的时候,我们看到了很多工具认为它们就代表着自动化,比如说早期将Expect+SSH封装在一起之后,就认为可以实现批量运维了。看到有人说Puppet可以做配置管理,这个时候就会认为Puppet可以做配置管理,甚至是发布管理。这个时期的典型问题就是以偏概全,对于某个开源自动化工具来说,还没法去界定它的使用场景和范围,这样将直接影响系统的建设效益。这个时候才开始知道我们看到的山不是真正的山,而是迷雾环绕的深山。
运维自动化第二重境界:看山不是山,看水不是水。此时我们已经知道只有Expect+SSH还不够,随着业务规模的变化,我们还需要一个更完整的概念来做发布系统,真正的发布系统要做版本管理、环境管理、配置管理,还有生命周期管理等;配置管理工具想让自动化变得更加完美,其实还要依赖于OS和应用层的标准化规范,比如说应用交付规范、应用打包规范、OS的统一等等。对于其他资源对象的管理来说,生命周期的概念均穿行其中,比如说DNS、LVS、接口、配置、应用包等。为了有效地标识资源的生命周期状态,需要用大量的数据来实时反馈。这是运维自动化更具体的层面,将一个个的山貌都看清楚了。
运维自动化第三重境界:看山还是山,看水还是水。这是一种自动化本质上的追究,站在高山之巅,俯览众山,会发出原来如此的感叹:所有自动化的本质都是为了可视化,让所有的人看到一致的服务,从而确保结果一致;从底层来说,你可以认为所有自动化的本质都是指令+文件分发的组合;你会进一步抽象系统的运维自动化能力,提供即插即用的机制;结合服务化的需求,进一步云化所有的运维系统,确保内外使用的一致性,最终自动化的平台就是一个整合的持续交付平台。这是化境!