如何实施成功的 DevOps 策略?
已发表: 2022-06-29介绍
DevOps 是一种开发策略,强调软件开发人员和 IT 运营人员之间的协作。 但是,实施 DevOps 不仅仅是要求您的团队一起工作。
DevOps 一词由 Patrick Debois 在 2009 年创造,他也被普遍称为“DevOps 之父”。 该过程包括以下主要阶段:
- 计划
- 创建/编码
- 建造
- 测试
- 发布
- 部署
- 操作和
- 监视器
以下是成功实施 DevOps 所需的指南以及许多不同的策略。
不要试图一次做所有事情
当您第一次开始使用 DevOps 时,很容易不知所措。 那里有很多信息,很难知道从哪里开始。 我建议从小处着手,逐步向上。
首先,选择一个易于自动化、监控和与最终用户交流的区域。 这将使您更容易在早期展示成功并为其他业务领域建立动力。 例如:如果您正在自动化部署或设置监控工具,那么可以考虑从部署 Web 应用程序或容器化应用程序(如 Docker)之类的东西开始。 这些类型的服务通常比其他类型的系统(例如数据库)具有更少的依赖关系,因此它们往往是更容易的测试用例,我们可以通过这些用例来衡量我们在整个组织中实施 DevOps 实践的进度。
尽你所能,尽你所能
首先要做的是让您的团队使用他们需要的工具。 从可用的功能开始,随着您的舒适度增加,添加更多功能。 不要试图一次做所有事情; 找到一两个对你有用的东西,然后继续下一个。
使用自动化
DevOps 的目标是提高速度、降低成本和人为错误并提高质量。 这就是为什么自动化被认为如此重要的原因。 自动化在不同的上下文中可能意味着不同的东西(自动化测试和持续集成是两个常见的例子),但它通常是指使用软件来执行特定的任务。 这意味着参与开发和生产过程的人员将减少,从而在提高质量的同时降低成本,同时提高速度。
从现有工具开始开发定制解决方案
从现有工具开始可能比开发定制解决方案更容易。 如果您刚刚开始,有许多开源项目和云服务可以帮助您快速启动和运行。 例如:
- DevOps 自动化框架 Jenkins Stack:一个管理整个软件开发生命周期的开源项目。 它包括用于持续集成 (CI) 和持续交付 (CD) 的工具,以及用于测试、构建、打包和部署代码等其他常见 DevOps 任务的工具。 它支持多种操作系统,包括 Linux 和 macOS。
- Elasticsearch:基于 Apache Lucene 的搜索引擎,为跨多台服务器的大量非结构化数据提供实时全文搜索功能。 Netflix 或 PayPal 等许多公司都在使用它,因此他们可以非常快速地索引他们在这些实体中发生的所有交易,因为它能够水平扩展(即在需要时添加更多实例)。
从与您的文化完美融合的工具开始
当您开始您的 DevOps 之旅时,重要的是要了解您无法一次更改所有内容。 你不能强迫你的文化、流程、人员或技术改变; 如果它们不符合 DevOps 和敏捷开发的目标,那么它们将阻碍其成功。
与其试图将这些元素强加到一个不适合您当今业务运作方式的固定模式中,不如寻找专为采用敏捷方法的软件团队设计的工具,并随着团队的能力随着时间的推移而增长,为他们提供增长空间.
尽可能专注于协作并获得最佳大脑
但是找到和雇用这些资源并不容易。
幸运的是,有几个很好的选择来获得帮助:
- 向其他已经实施 DevOps 的公司寻求帮助。 他们已经吸取了一些艰巨的教训,并且可以根据自己的经验为您提供建议。
- 如果您没有时间自己学习 DevOps 的来龙去脉,顾问也是一个不错的选择。 他们往往知道要问什么问题以及在哪里寻找答案; 他们也比其他公司的员工(他们可能专注于他们的日常工作)更有可能,因为他们受到金钱的激励,而不仅仅是知识共享。* GitHub 等开源社区在之后提供了额外的资源了解他们如何通过协作来协同工作。*如果您希望获得其他人的专业知识,或者不使用外部顾问,培训课程可能是另一种选择。*凤凰项目等书籍提供了一个公司如何成功实施 DevOps 的内部视图; 它们通常由参与实施它的个人编写,而不仅仅是从远处观察。
自动监控和报告
自动化监控和报告是 DevOps 的一项关键实践。 为了提高软件的质量,您需要能够衡量它在生产中的表现。 开发人员应该负责监控他们的代码,以便他们能够快速发现问题。 他们还需要制定策略来收集这些数据并实施分析工具,以使他们能够了解其应用程序在生产中运行时发生的情况。

运营团队应该监控其基础设施,因为他们负责确保一切日常运行顺利。 这意味着收集有关 CPU 使用率、磁盘空间使用率、网络带宽消耗等的指标,并记录应用程序出现的任何问题,以便立即解决这些问题。
您的企业应通过衡量每个新功能相对于成本(例如开发时间和未来的维护成本(包括持续支持))带来的收入来监控其底线。 准确测量这些类型的指标的能力允许组织内或跨多个组织在一个项目上合作的团队(例如使用微服务的项目)在根据财务目标构建产品路线图时更好地决定哪些功能应该优先考虑而不是只关注技术性债务减少而不考虑大局。”
让您的客户了解情况,他们可能不喜欢惊喜
假设您的组织正在为整个 Web 应用程序实施新的代码库。 您知道这会影响最终用户,并且如果他们对更改感到惊讶,他们将不会喜欢它。
您可以警告他们并给他们时间为更改做准备,或者您可以等到它上线,然后解释发生了什么,为什么会发生,以及他们如何帮助自己适应这些更改。
让用户了解情况的一种方法是通过电子邮件活动发送日历邀请,其中包含有关人们应该如何使用他们的新工具的说明以及一旦将这些功能发布到生产环境中他们如何从使用这些功能中受益的提示(例如,将有一个新的搜索功能)。
从小处着手、自动化、监控进度和优化
实施 DevOps 的最佳策略是从小处着手、自动化并随着时间的推移监控进度。
从小处着手:从可管理的范围开始更容易建立动力。 如果你试图一次解决你的整个部门或组织,这可能会让人不知所措,感觉不可能。 与其尝试一次在整个公司中实施 DevOps,不如一次专注于一个项目或团队。
自动化:有许多工具可以帮助自动化您的部分开发过程(持续集成服务器,如 Jenkins 或 TeamCity),但可能有些事情还没有任何现有工具可用 - 例如为生产设置备份AWS CloudFormation 模板中的服务器——因此在继续进行其他任何事情之前,请确保将这些内容包含在您的自动化计划中!
随着时间的推移监控进度:制定指标将使所有相关人员(包括您自己)能够评估事情的进展情况,以便我们可以在实现完全自动化的每一步中根据需要进行调整!
结论
我们希望您现在能够更好地了解 DevOps 如何为您的组织工作。 正如我们所看到的,DevOps 团队充满了有用的资源和工具,可以帮助您开始并在您完成初始过渡后继续前进。 成功实施的关键是从您已经知道的开始,然后对其进行迭代直到完善。 通过这样做,您将能够实施有效的 DevOps 策略,而不会超出预算或让您的团队承担新的责任!
特色图片: DevOps的工作流程:来源:Pease,2017。
作者简介:
Priya 在市场研究方面拥有约 7 年的经验。 目前,她在 Valasys Media 工作,担任助理经理 - 内容策略师,该公司是全球顶级 B2B 媒体出版商之一。 她一直在为我们的客户准备几份个性化报告,并对市场细分、受众群体分析和入站方法进行了大量研究。 她曾在多个项目中与政府机构和公司合作过。 她拥有各种兴趣,并相信以数据驱动的方法来解决问题。 除了市场营销、科学、数据科学和统计学,她拥有科学专业的研究生学位,还广泛撰写有关生活的所有内容。 她坚信更高的现实,生活总是比我们理解的要多。 她是一位心理治疗师和塔罗牌练习者,她相信一种精神生活方式,并练习瑜伽和冥想。 不写作时,您会发现她喜欢音乐或烹饪。