发布于:2021-02-09 09:35:45
0
242
0
DevOps是一种强调软件开发人员与IT运营商之间的通信,协作,集成,自动化和合作的开发方法,在2015年一直是IT界永恒的主题。DevOps可能不是一个新概念,但它正在开始输入黄金时间使用情况。如果Gartner的预测是正确的,那么到2016年,全球前2,000家组织中约有四分之一将使用DevOps。
DevOps用途的扩大和实现的潜在好处推动了多种技术的创新,包括Jenkins,Chef,Puppet和软件定义基础架构的迅速普及。几乎巧合的是,但也许不是完全独立的,包括微服务和容器(例如Docker)在内的新应用程序部署模型变得越来越流行。所有这些元素都有助于连接开发人员和运营团队。
DevOps无疑对企业简化产品开发流程的方式产生了重大影响。当在更广泛的持续交付(CD)方法的背景下考虑DevOps时,可以获得最大利益的地方。根据2014年Evans Data Research的数据,即使在那时,CD仍在某种程度上被所有接受调查的组织的三分之二采用,即使它们没有使用CD标签。有迹象表明,即使那些尚未开始采用CD的组织也打算至少在不久的将来这样做。
DevOps和CD是很好的搭配。持续交付就是要创建一个更具协作性,凝聚力和及时性的环境,以将软件项目从启动到部署,并随时准备将其发布到生产环境中。持续交付的关键是使用从自动构建和测试系统以及客户到计划管道的快速反馈循环。成功的CD可以使用多种技术:确保产品始终(至少在理论上)可发布;释放周期保持较短,可以重新确定优先级;根据反馈调整计划;并以可管理的小块形式发布。毕竟,传统的“瀑布式”项目的主要问题之一是那些仅每12或24个月发布一次的实例。这些较长的发布周期通常意味着它们包含许多更改,因此无法确定哪些实际有效或存在错误。成功的机会很小。
CD的一个极端示例可能是主要的Web服务,例如Amazon或Facebook,它们可能每小时(甚至每分钟)多次发布更新到生产中。这可能不是大多数公司想要(或可以管理)的模式,但即使是每周或每月发布也对许多公司构成挑战。如果发布周期要尽可能短,那么很清楚为什么以正确的方式执行DevOps是CD成功的主要推动力。DevOps的目标是消除传统上已经中断了从开发人员到客户的变更流程的“减速带”,并且事实证明,这种“减速带”常常是阻碍CD普及的最大障碍。
成功的DevOps和持续交付
到目前为止,至少在理论上如此好:将其转换为实际成功的部署是另一回事。建立适当的工具链是一个好的开始。还需要开发一个易于理解的过程。但是,最有影响力的因素可能是采用正确的文化。解决发展与运营之间的文化冲突问题没有简单的“一刀切”的解决办法,但从根本上说,成功的关键是信任,而与此密切相关的是可见性。开发人员应了解运营团队的需求;运营团队应该了解开发人员正在构建什么,并与他们一起创建易于部署和管理的应用程序。
这并不是说选择正确的工具并不重要。现有的工具可能会阻碍(甚至禁止)DevOps和CD的成功采用,因此这可能是重新评估当前工具集和流程的时候了。不管使用哪种工具,在过去的几年中,都有一些非常清晰的“最佳实践”步骤。根据与客户合作的经验,以下是我要考虑的五个方面:
1.超越代码思考
所有资产都需要作为项目的一部分进行控制-艺术品,设计,文档,配置脚本,二进制文件等-否则存在释放不完整或不一致的应用程序的实际风险,最终导致客户不满意。
2.自动化
自动化流程有助于减少出错的机会,并减少对单个英雄的依赖。虽然并非项目的每个方面都可以自动化,但更多的方面可以增强可预测性和可重复性,从而支持更快,更高效的发布流程。成功的DevOps和CD取决于统一,连续的管道,该管道在流程的每个步骤都支持自动化。
3.智能测试
将自动化测试计划为持续集成(CI)流程的一部分。需要仔细计划以确保足够的覆盖范围,而又不要太慢以至于无法快速发布。选择正确的工具和硬件是重要的因素,但是进行“正确的”测试也是如此,且测试数量不超过所需数量。没有简单的方法可以预测这意味着什么以及需要在每个项目的上下文中加以考虑。测试的反馈必须迅速返回给开发人员进行处理。切记还要首先考虑如何将安全测试合并到测试计划中以及如何将安全要求包括在项目计划中。
4.版本一切
良好的CD和DevOps结合的核心是所有资产或工件的单一,高度透明的存储库。这不仅意味着具有了解当前正在发生的事情(以及谁在做什么)的能力,而且还具有从创建到部署的“历史”,具有明确的责任感,并且可以选择“回滚”到以前的版本需要。
高质量的跟踪意味着所有更改和相互依赖性都作为完整的版本提供,从而使执行任何调试更加容易。为此选择版本控制引擎时,请考虑它是否可以处理所需的所有不同工件类型,以及是否可以随着组织产品或分布式开发环境的增长而扩展。版本管理工具是否足够快以支持快速且频繁的CI构建和测试?
考虑安全性也很重要:毕竟,所有源代码,设计等都可能代表您组织的最有价值的知识产权。许多现有的版本控制系统可能不具备这些功能,因此就DevOps和CD而言,不适合特定用途。
5.工具和文化需要协同工作
版本控制之类的工具起着重要的辅助作用,但是文化态度决定一切。除了获得管理层的支持外,成功采用CD和DevOps的人还发展了内部“冠军”,他们可以教育和帮助同龄人。
DevOps和Continuous Delivery都具有巨大的潜力,可以改善甚至改变各种组织内部的生产和发布周期。从一开始就确保工具,流程和文化的正确基础将有助于将这一承诺变成可证明的改进。
作者介绍