DevOps实践与工具链的融合

软件开发领域,DevOps作为一种开发方法论,虽然并非适合每一个开发组织,但其核心理念——开发人员(Dev)与IT运维(Ops)以及测试人员的协作,解决了必须在快速周期中发布代码的组织所固有的许多问题。这种理念非常直观,谁不想在开发代码的人和负责测试以及确保代码在现实世界中运行的人之间有更好的协调和更紧密、更有成效的联系呢?

然而,要使DevOps产生效益可能会有些棘手。DevOps的投资回报(ROI)来自于更快地向客户推出优质代码、提高开发和运维团队的生产力,以及整个流程中潜在的劳动力成本节省的组合。要实现这些成果,就需要保持相当多的动态部分在一个连贯的结构中运行。根据经验,成功实施DevOps需要掌握最佳实践方法论以及用于其实施的工具链。

将实践与工具链对齐的需求使DevOps与其他IT范式不同,在其他范式中,方法论和工具可以是不同的。一个组织可以追求云计算、大数据或事件驱动架构等流行趋势,并选择任何数量的工具来完成任务。DevOps则不同,在DevOps中,实践和工具是深度交织在一起的。软件的独特性(它要么有效,要么无效)以及分布式利益相关者之间脆弱的联系,给工具施加了压力,使实践得以运作。

在过去的几个月里,一直在与财富500强公司的DevOps团队以及精益初创公司的团队合作。在这些要求苛刻的环境中实施持续交付的挑战塑造了思考,并影响了提供的全栈CloudMunch DevOps平台的功能。借鉴马歇尔·麦克卢汉的观点,开始看到工具链就是实践,实践就是工具链,可以这么说。

DevOps的价值体现在以下几个方面:

为所有角色提供早期、即时反馈的单一视图:DevOps基于开发人员和运维团队之间的协作。这代表了大型团队的文化转变,历史上很难让每个人共享目标和指标。当它起作用时,人们变得更加高效和敏捷。开发人员、测试人员、产品经理和系统工程师都能取得出色的成果,并看到他们工作质量的提高。协作成为工作文化的常态。确保每个开发人员、测试人员和系统工程师都是高绩效者的唯一方法是确保他们获得早期和即时反馈。当开发人员将代码推送到仓库时,他或她应该立即获得反馈。产品经理需要能够创建一个沙箱,向业务利益相关者展示新功能,并在第一天获得反馈。系统工程师必须能够在代码仍在开发时在生产环境中模拟新功能。

实现早期、即时反馈实践涉及工具:工具链是实践,在三个方面:必须有开发中代码的持续智能。操作智能和自动化仪表板分析也是必不可少的。开发和运维工具应该配置生成指标。例如,持续集成工具可以记录构建发生的时间、运行了多少测试、测试运行了多长时间、构建是否成功、多少测试成功、哪些文件经常变化等等。然后这些数据可以被分析并显示在自动化仪表板上。操作智能是应用程序和基础设施监控的一个方面。它提供了一个反馈机制,跨所有功能和角色在一个仪表板上,以便每个人都可以看到它并根据需要采取行动。分析和自动化仪表板为整个团队提供实时洞察,使他们能够对各自任务的所有方面获得早期和即时反馈。如果做得好,结果就是一个高效、高效的DevOps团队。

一键访问整个应用程序生命周期:DevOps中,协作需要在开发和运维团队之间无缝进行。它必须在整个应用程序交付价值链中顺利运行。良好的DevOps从设置自动化流程和系统集成管理、持续集成、自动化测试、部署计划、基础设施配置、持续部署、集成变更管理和监控的系统开始。这些实践与工具链不可分割地联系在一起。实践就是工具链。必须将所有这些工具集成到一个全栈DevOps平台中,以便每个人都共享共同的工具,不需要在团队之间传递工件并冒着创建差距的风险。这意味着在同一个管道中测试和部署应用程序代码和基础设施代码。当DevOps团队创建一个混合工具集时,生产力和质量问题不可避免地会出现。事情一开始可能运作良好,但随着规模和复杂性的增长,工具链开始破裂,不再提供团队做出更好决策所需的可见性和指标。更糟糕的是,随着持续交付模型的成功,规模和复杂性通常会上升。

无缝开发和运行:应用程序必须设计成能够随着业务需求的变化而变化。这一最佳实践是DevOps的本质,通过工具链实现。公司可能从在公共云中运行的应用程序开始,但很快需要将其移至防火墙后面,或者将后端移动到大数据平台等。当DevOps团队开始开发应用程序时,它通常有一个目标环境。然而,最佳实践是确保在开发和运行时环境中都有灵活性,以便应用程序可以随着业务的发展而变化。例如,团队今天可能使用公共PaaS,但明天可能需要转移到内部私有云。

工具链是实践。必须有灵活性在任何环境中无缝开发/测试/运行。项目和配置文件可以跟踪和版本控制,以便以前配置的系统可以一键重新创建,轻松测试新代码,恢复到以前的配置,并比较系统版本。必须提供完全可搜索的存储库,以促进标准化和重用。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485