探索 DevOps 实践
将 DevOps 纳入应用程序生命周期涉及实现一系列 DevOps 实践。 最大化 DevOps 权益的能力在很大程度上取决于此实现成功的程度。 在我们的示例方案中,组织需要对其作模型进行重大更改,从促进开发和运营团队之间的协作和沟通开始,以及投资版本控制、自动化、持续集成、持续测试、持续交付和持续监视。 在本单元中,你将探讨这些做法。
DevOps 实践图示。
版本控制
版本控制是通过将更新存储在指定存储库、跟踪修订和维护更改历史记录来管理对代码的更新的做法。 这有助于代码评审以及从编程错误中恢复的能力。 此外,版本控制系统(例如 Git)通过存储库克隆、拉取请求、代码合并、冲突解决以及回滚支持等功能,允许多个开发人员协作进行代码编写。 使用版本控制是一项基本的 DevOps 实践。 版本控制也是持续集成和基础结构即代码等做法的先决条件。
持续集成 (CI) 和持续测试
DevOps 的核心做法之一是自动化。 在这种情况下,自动化用于在应用程序生命周期的尽可能早期阶段合并代码更改、测试这些更改以及构建生成物的过程。 其意图是检测开发阶段的任何潜在问题,因为这可以最大程度地减少解决开发阶段所涉及的工作量和成本。 自动测试验证代码更改是否未引入错误或回归问题。
持续交付 (CD)
持续交付可自动完成部署作为 CI 一部分生成的项目的过程,使其可供其使用者使用。 CD 会自动推进这些项目在不同环境(例如测试、过渡和生产)中的进度。 持续集成和持续交付(CI/CD)共同形成了统一、简化的端到端软件开发和交付过程。
持续监视
持续监视可自动实时查看整个应用程序堆栈的运行状况和性能,包括其底层基础结构。 这是通过收集遥测(包括日志和指标)和可自定义的警报来实现的,该警报提供有关异常行为的通知,从而促进提示修正作。
持续安全性 (DevSecOps)
安全性是基于 DevOps 的应用程序生命周期的每个阶段的重要组成部分,这是创建 DevSecOps 术语的原因。 DevSecOps 是 DevOps 的扩展,侧重于将安全做法集成到每个阶段,从规划、编码、测试和部署到作。
基础结构即代码 (IaC)
基础结构即代码是现代软件开发和作实践不可或缺的组成部分。 它涉及使用编程方法预配和管理基础结构服务。 IaC 使用代码定义基础结构组件,例如服务器、网络设备和数据库。 此类代码通常驻留在 VCS 中,该 VCS 管理并跟踪对基础结构配置的更改。 代码的使用有助于自动预配和配置基础结构、提高效率、一致性和可伸缩性。 此外,IaC 可以(且经常与 CI/CD 集成),通过将基础结构预配与应用程序生成、测试和部署相结合,生成全面的软件交付策略,从而形成一个连续、完全自动化的顺序。