DevOps下微服务架构连续交付部署CI/CD流程

假设我们有一个Web应用程序,并且我们已经构建了一个令人惊叹的现代连续交付管道。对于每天从事此项目的开发人员来说,部署一个微服务需要下面步骤:

  • 在git中新建一个分支
  • 在功能标志后面进行更改
  • 运行单元测试,使用打开和关闭的功能标志验证您的更改

拉取请求
  • 提交更改
  • 将更改推送到github上的远程
  • 提出拉取请求
  • CI构建在后台自动运行
  • 代码审查
  • 也许重复几次这一步
  • 将更改合并到git master中

CI在主服务器上运行
  • 安装依赖项 前端NPM 后端MAVEN
  • 前端建立/优化HTML+CSS+JS,后端编译
  • 运行前后端单元/功能测试/集成测试
  • 将前端资源推送到CDN
  • 为应用程序构建一个容器docker
  • 将容器推送到注册表
  • 更新kubernetes清单

用新代码替换旧代码
  • Kubernetes 启动了一些新容器的实例
  • Kubernetes 等待这些实例变得健康
  • Kubernetes将这些实例添加到HTTP负载均衡器中
  • Kubernetes 等待旧实例未使用
  • Kubernetes 删除旧实例
  • Kubernetes重复,直到所有旧实例都被新实例替换

启用新功能标志
  • 为自己启用新代码,获得信心
  • 为10%的用户启用新代码,观看运营和业务指标
  • 为50%的用户启用新代码,观察运营和业务指标
  • 为100%的用户启用新代码,观察运营和业务指标
  • 最后,再次完成整个过程,删除旧代码和功能标志

根据工具、语言和面向服务的架构的使用,您将有不同的设置。