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%的用户启用新代码,观察运营和业务指标
- 最后,再次完成整个过程,删除旧代码和功能标志
根据工具、语言和面向服务的架构的使用,您将有不同的设置。