- DevOps 是把人员、流程、产品进行结合,给用户提供持续价值的一个过程,既涉及到人员、流程、工具,也涉及到产品。
- DevOps 最终目的是给客户提供持续交付的价值,流程包括:产品的规划跟踪、软件开发、构建测试、产品部署、运维、监控和优化。
- 通常把 DevOps 这些流程通过一个流水线的方式串联起来称为一个 DevOps 的流水线,其核心目标就是持续给用户交付有价值的产品。
典型的CICD流水线过程
- 项目开发编写代码,然后把代码推送到 GitLab 里存储,通过 GitLab 的 hook 使 Jenkins 执行一些 CI 的过程,比如做一些单元测试,构建 Docker image
- 再把这个 Docker image 调用 helm 部署到开发环境或测试环境
- 在测试环境里通过 Jenkins 触发一个集成测试的功能
- 完成后就可以把它部署到生产环境
- 通过 Kubernetes addon 的方式,把 Prometheus、Grafana 等监控组件部署到集群里,实现一整套从 CI 到 CD 的监控过程
DevOps黄金思维圈
时刻关注正在做什么,尝试识别问题范围,找出解决方案和改善途径。
Why---》How---》What
Why(目的、理念)
持续且快速、可靠的自动交付软件给用户:
- 实现价值的持续交付,赢得市场竞争
- 提升研发(增值活动)的时间,极大化增值活动产出
How(方法、措施)
- 建设自动化、可重复、可靠的持续交付流水线(IT服务供应链)
- 主要包括代码管理、持续集成、自动化测试、自动化部署、基础设施自动化管理等方面的工程能力
What(现象、成果)
- 每次代码提交都需要经过流水线验证
- 每次部署的版本都经过多环境验证
- 部署频率可以得到提升
- 周期时间(从代码提交到部署上线)的时间可以到分钟级
- 部署失败率低
- 部署失败的修复时间短,影响小