有一个有趣的现象:地球上有大约10万亿只蚂蚁,占地球动物总数的25%,数量极其庞大。但幸运的是,他们并没有给地球带来大规模的混乱,因为蚁巢像一个构造精巧的超级生物体一样运作,集合资源以实现整个巢穴最大利益。更酷的是,他们总能完美地相互配合,做出更佳决定并极少出错。
来看看一个优秀的DevOps团队应该具有的三种蚂蚁行为。
蚂蚁行为一:各种角色紧密配合
蚁巢和持续交付流程都可以被当作是一个工厂。工厂里,对于各种须完成的任务都有一定程度的分工。在蚂蚁世界里,你会发现有专门繁殖后代的蚁后,还有饲喂幼蚁、收集食物和捍卫巢穴的工蚁。对应到软件工厂中,可能就变成了从计划到生产期间、由特定团队或特定工具管理的团队成员。
有趣的是,蚂蚁有一定的自主性。它们可以独立行动,寻找新的食物来源或避免障碍物,但总的来说它们是朝着更好的方向努力。它们通过身体接触、分泌信息素、腹部振动等方式来交流,确保相互保持联系并分享信息——诸如标记踪迹、示警或突出强调新的食物资源。
对持续交付流程来说这可能是棘手的地方。怎样在多个团队、工具、甚至是相互冲突的优先事项之间建立联系以保证最佳的效果?
例如,测试是实现快速、高效的应用交付的最大阻碍之一,通常被视为通过传统的人工测试程序和技术来专门进行的独立工作流程。
所以孤岛必须被消除,本质上是要创造一个包涵开发、质量保证、发布经理和运营等在内的合作无间的团队,从而显著缩短将代码变化投入生产所需的时间。实现这一点,需要:
•自动化、相互协调的端到端DevOps工具链
•自动反馈循环和通讯
•贯穿规划到生产过程中对每一个变化保持的端到端跟踪和可见性
DevOps工具链的单一控制点就像蚂蚁世界的信息素,将每个人连接在一起,并驱动操作。
蚂蚁行为二:集思广益作出更明智的决定
当把蚁巢中的各个小小的大脑集中在一起时,一个聪明的超级有机体就形成了。例如,许多蚂蚁可能会出去探索新的食物源,在它们归巢时,蚁巢会处理集中起来的信息来确定最佳位置。作为一个集体,蚂蚁可以权衡很多变量,避免犯错。这就是分布式智能。
我不是说DevOps队伍中的人都大脑不发达,而是通常只能认识到冰山一角。在现代软件工厂中,实现分布式智能至关重要。分布式智能将来自端到端应用程序生命周期中各个领域的信息整合在一起,从而实现更快、更高频次的发布和更好的客户体验。
例如,你可以通过在自动发布工作流程中加入测试阶段和工具来提高质量。通过协调测试节点,你可以并行不悖地展开测试,通过更快的反馈加速开发修复,并且在顺利发布的基础上作出实时、明智的决策。
最终,你在发布过程中所包含的集体智慧越多,发布的应用程序和流程就会越好。从互联的工具链导出的数据有助作出实时反应(如识别和消除障碍)或改进流程。它能让你不局限于某一版的发布,而是纵观整个流程的运行情况。
蚂蚁行为三:自适应性和动态性
蚂蚁之间如此协调,所以它们适应世界的能力是非常出色的。当食物源枯竭时,有关食物的信息素路径也会开始消散,从而使得蚂蚁去找新的食物源。一些蚂蚁即便生活在空间上相互独立的蚁巢中,但同样也会保持社会联系。这有助于他们降低蚁巢面临的风险并更有效地利用资源。蚂蚁甚至可以根据环境和来自其他蚂蚁的信号动态地从一个任务切换到另一个任务。对于现代软件工厂来说,这意味着系统必须相互连接并时刻准备好改变。
随着用于解决新问题、或者更好解决现有问题的新工具问世,DevOps工具链也将不断发展。协调工具链的机制不可过于死板或有过度维护倾向,而必须是可扩展的并能管理持续交付的真正范畴。
DevOps中的角色也在不断发展,每个人都对质量负责。快速失败、得到反馈、学习并做出改进这一系列准则让测试正在左移。发布团队每天、每周都进行小批量发布,而不是过一个月或一季度才发布。
这要求更好的规划、每个人的完全可视性、即时通讯、流程中的自动改进以及对采集到的实时和长期改进进行分析。
壮大你的持续交付超级组织
在CA Continuous Delivery Director的协调下,开发、测试、发布和改进等等“一切”都可以持续进行,以便团队向客户持续提供高品质的应用程序。它对DevOps工具应用的是不可知论,意味着你可以连接开源、商业或本土工具,以获取完整的流程可视性和实现精益化操作。
通过CA Continuous Delivery Director,你可以在应用程序生命周期的所有阶段中规划、安排、管理和监控多应用程序的并行发布,处理依赖关系和冲突。你还可以协调测试流程——将构建升级、反馈循环和风险评估自动化。最重要的是,你可以获得可操作的分析,以识别障碍,做出更明智的决策并改进流程、发布和应用程序。
免费试用新SaaS版本的CA Continuous Delivery Director,即可开始采取这些蚂蚁行为。