Whats DevOps?
在一个庞大的组织架构中,CI/CD 和 Devops 的概念是避不开的,了解它的工作原理和概念能帮助我们更好的与他人进行协作。 CI/CD 介绍 这是一个用来描绘 CI/CD 的示意图,其描绘了 CI/CD 的工作流和各自的一些职责,接下来本文分别对两者进行介绍。 CI (Continuous integration) 持续集成 持续集成是面向开发者(Developer)的环节。从上述的图也可以看出,整体的流程如下: Developer 基于给出的需求进行编码(code),完成 Feature 或者 Bug 修复后,提交(Commit)代码,然后平台会对这些需要(Merge Request)代码进行编译(Build),编译通过后,执行自动化的持续测试(Continuous Test),待测试通过后才会正式合并入主干。 也就是说,CI 工具在检测到代码变更后,自动对其执行编译和单元测试,验证其代码的正确性和可用性,以及是否适合与源代码进行集成,然后进行自动集成。 该流程有以下的优势: 能够避免不同开发环境带来的不一致问题 减少手动操作 清晰的版本管理和控制 降低人为操作的风险 CD (Continuous deployment)持续部署 持续部署则是面向 IT 运维技术人员(ops)的环节,整体流程如下: Devs 成功 发布代码(release) 后,CD 工具会自动 部署(deploy) 该 service 到服务器上,进行发布,直接部署到生产环境中,可供 操作(operate),并通过 监控(monitor) 来确保服务的正常运行,如果出现问题后,就即时 FeedBack 给开发者。 持续交付是一种软件开发实践,它与 CI 结合使用,可自动执行基础结构预配和应用程序发布过程。作为 CI 过程的一部分测试和构建代码后,CD 会在最后阶段接管,以确保它包含随时部署到任何环境所需的一切。CD 可以涵盖从调配基础结构到将应用程序部署到测试或生产环境的所有内容。使用 CD,软件的构建使其可以随时部署到生产环境。然后,可以手动触发部署或移动到持续部署,其中部署也是自动化的。 该流程提供了这样的能力: 确保随时随地能进行部署 确保更新能够正常执行 CT (Continuous Test) 持续测试 持续测试是一种软件测试实践,其中测试持续运行,以便在错误引入代码库后立即识别错误。在 CI/CD 管道中,持续测试通常是自动执行的,每次代码更改都会触发一系列测试,以确保应用程序仍按预期工作。 ...