没有人说 DevOps 很容易——但正确的工具可以提供帮助





0/5 (0投票)
我们根据与成功实施 DevOps 的客户合作经验,以及该领域领先专家的建议,整理了一些“最佳实践”步骤。
电子书:如何通过 DevOps 方法取得卓越成果
在 2015 年,DevOps 的话题很难被忽视,根据 Gartner 的预测,DevOps 有望在 2016 年成为主流,大约占全球顶级组织的两万个的采用。DevOps 的理论承诺很多,但在此保持一些背景很重要:在 成功应用 DevOps 之前,需要解决一些重大障碍。
实际上,DevOps 以各种形式存在已有一段时间,但目前关注软件开发和运维团队如何更好地协作,很大程度上是由一系列新工具推动的。Docker 和 Vagrant 等工具极大地释放了 DevOps 的潜力,当然它们本身还不够(稍后会详细介绍)。另一个驱动因素是,开发和运维不可能再作为两个完全独立、有时甚至互相敌对的阵营继续下去:持续开发、敏捷和更快的上市时间的时代精神要求一种更具协作性的方法。
这 brings us to the nub of the challenge: applying DevOps methodology will only work if everyone has a shared understanding of what is being developed and what is entering production. Apart from cultural barriers, let’s not forget that they are usually using completely different software tools to do their jobs. (挑战的核心在于:只有当每个人都对正在开发什么以及什么将要进入生产环境有共同的理解时,应用 DevOps 方法论才会起作用。除了文化障碍,我们不要忘记他们通常使用完全不同的软件工具来完成自己的工作。)
持续交付 (CD) 将有助于实现这种更透明的工作方式。根据 Evans Data Research 去年的报告,CD 在英国和美国的组织中已被约三分之二的组织采纳,CD 的核心是通过协作和及时的方法将软件项目从最初构思到部署。在实践中,这意味着能够在任何给定时间将软件发布到生产环境中。CD 的核心是一个开发管道,其中可以包含早期反馈、增量部署和自动化构建测试,所有这些都能加速发布周期。
与 DevOps 一样,CD 在理论上有很多优点,但我们又回到了起点:两者只有在拥有正确的文化和正确的技术工具时才能成功。其他组织对实现文化平衡更有发言权,因此我们在这里将重点放在工具上。我们根据与成功实施 DevOps 的客户合作经验,以及该领域领先专家的建议,整理了一些“最佳实践”步骤。
成功的 DevOps——正确的工具方法
不要将思维局限于代码——如今,大多数基于软件的产品涉及许多不同的资产,例如文档、视觉内容、二进制文件和配置文件脚本。这些资产需要在整个发布周期中一起管理,否则存在将不完整或有缺陷的应用程序交付给客户的真实风险。
尽可能自动化并持续测试——这里的目标是能够快速、安全地进行更改、调整或更新,同时最大限度地降低错误发生的风险。答案在于拥有一个统一的持续管道,该管道尽可能地自动化整个过程,从而使失败能够及早反馈给开发团队,以便他们能够进行任何必要的更正。在开发阶段发现问题比在资产到达 QA 测试后发现问题效率更高。当然,并非过程中的每一个元素都可以自动化,关键在于弄清楚哪些可以自动化,哪些仍然需要一些手动干预。
寻找 单一事实来源——任何成功的 DevOps 项目的核心都应该是一个单一的、统一的存储库,它连接每个人和所有资产,但更重要的是,它不会造成过于僵化的工作实践。员工应该能够继续使用自己的方法和工具,因此版本控制存储库需要能够与各种第三方软件无缝集成,并且与技术无关。考虑到大多数软件项目越来越庞大和复杂,版本控制存储库还需要能够扩展。
跟踪和追溯——跟踪和追溯的好处在于,发布周期每个阶段所做的所有更改以及所有相互依赖关系都会“一起流动”并作为单个版本交付。这使得调试更容易,并且还提供了关于“何时、何地、如何”发生了什么的“审计”。如果发现任何问题或错误,拥有一个支持回滚到先前软件版本的版本控制引擎也很重要。
当然,走向 DevOps 和相关实践(如持续交付)涉及多个步骤,没有人曾说过这会一帆风顺,一夜之间就能实现。然而,只要组织意识到了潜在的陷阱,并理解到将企业文化、流程和工具的正确结合至关重要,那么他们就有很大机会利用 DevOps 获得真正的业务优势,其中最不重要的就是能够快速有效地推出产品。