【发布时间】:2022-11-06 02:52:20
【问题描述】:
我们的团队正在开发基于微服务架构的应用程序。并将使用 helm chart 部署在 Kubernetes 上。
我们将使用 Azure DevOps 来管理项目以及管道。
并参考以下 URL 管理 CI/CD:https://learn.microsoft.com/en-us/azure/architecture/microservices/ci-cd-kubernetes
我们有以下两种情况来管理 Helm 图表:
-
我们是否应该有一个用于 helm 图表的集中存储库,我们将在其中拥有每个微服务的子图表?
- 在这种情况下,我们只能有一个发布管道,它将使用这个集中的 Helm 图表存储库来升级 Kubernetes 中的更改。
- CI 管道的
Helm package作业中存在问题,它只允许我们在为其创建管道的微服务存储库中选择图表。
我认为我们可以通过为Helm package and Push作业创建单独的管道来解决这个问题,这样我们就可以从集中的 Helm 存储库中选择图表。并且这条管道对于所有微服务都是通用的,并且会在 CI 管道之后触发。
或者
- 我们应该在相应的微服务存储库中有一个图表吗?
- 在这种情况下,我们需要为每个微服务有一个单独的发布管道。
- 还可以单独管理舵图。
- 如果 2 个或更多微服务发生更改,如何在 QA 环境中管理集成测试部署。由于每个服务都将单独部署,这将如何同步?
请向我们建议最好/推荐的方式,以便我们继续前进。
提前致谢。
【问题讨论】:
-
请给我们建议,以便我们决定选择哪个选项。
标签: azure-pipelines microservices azure-pipelines-release-pipeline cicd helm3