Skip to content

Devops与CICD

Devops 与 CICD 体系介绍

简介

在软件开发的流程中,大部分技术团队碰到的第一个问题就是:如果有人想到了一个好点子,我们如何以最快的速度将它交付给用户?

微信产品的变化

传统开发流程

而产品最终交付到用户的手上,往往是需要经过需求、设计、开发、测试、运维等几个关卡的。在这一整套的流程中,研发团队往往会因为沟通、技术等多方面的问题,导致发布的流程变慢,让产品的发布赶不上最好时机。比如,可能会碰到如下的问题:

  1. 手工部署软件。
  2. 开发完成之后才向类生产环境部署。
  3. 生产环境的手工配置管理。

敏捷开发体系

敏捷开发体系

持续集成

持续集成是一种 DevOps 软件开发实践。采用持续集成时,开发人员会定期将代码变更合并到一个中央存储库中,之后系统会自动运行构建和测试操作。持续集成通常是指软件发布流程的构建或集成阶段,需要用到自动化组件(例如 CI 或构建服务)和文化组件(例如学习频繁地集成)。持续集成的主要目标是更快发现并解决缺陷,提高软件质量,并减少验证和发布新软件更新所需的时间。

持续集成

GitLab CI 流程

GitLab CI 流程

自动化测试持续集成 自动化测试持续集成 自动化测试持续集成

持续交付介绍

持续交付是一种软件开发实践,通过持续交付,系统可以自动为将代码更改发布到生产环境做好准备。​ 现代应用程序开发的支柱,持续交付通过在构建阶段后将所有代码变更部署到测试环境和/或生产环境中,实现对持续集成的扩展。在正确实施时,开发人员将始终拥有已通过标准化测试流程的部署就绪构建构件 ​。 采用持续交付时,开发人员可以自动执行单元测试以外的测试,这样他们就可以在部署到客户环境前跨多个维度对应用程序更新进行验证。这些测试可能包括 UI 测试、负载测试、集成测试、API 可靠性测试等。这有助于开发人员更全面地验证更新并抢先发现其中的问题。

持续交付

持续集成与持续交付 持续集成与持续交付

持续交付流水线 持续交付流水线

流水线构建 流水线构建

GitLab CD 流程 GitLab CD 流程

持续部署

通过持续部署,可自动完成从代码提交到生产的全过程。开发与交付阶段之间的触发器是自动的,因此,在代码更改获得验证并通过所有测试后,就会立即发布。这意味着在改进功能可用后客户便可立即获得这些功能。

持续部署

持续集成、持续交付、持续部署

DevOps 体系

  • 持续集成
  • 持续交付
  • 微服务
  • 基础设施即代码
  • 监控和日志记录
  • 沟通与合作

DevOps 相关技能示例

DevOps 中的左移与右移

持续集成/持续交付/持续部署 Devops 是目前行业内所有的技术团队都在追求的一套高效的协作模式。一套高效的流水线机制,可以让研发、测试、运维能够“一起高效的工作”。

总结

持续集成 持续交付 持续部署
核心 代码合并 任何的代码修改都可以在任何时候实施部署 在持续交付的基础之上,自动部署到生产环境中
主要目的 快速反馈 软件质量达到交付标准 自动部署(还有监控等)

了解了这三者直接的区别与应用场景之后,接下来会分开不同的模块给大家介绍相关的应用常用、知识体系以及使用方案。