gpt4 book ai didi

kubernetes - 如何管理基于微服务的应用程序的逻辑分组以确保 CI/CD 管道的版本兼容性?

转载 作者:行者123 更新时间:2023-12-02 12:28:57 24 4
gpt4 key购买 nike

对于基于微服务架构的应用程序,我试图了解一个标准流程,即如何在可独立部署的微服务之间进行逻辑分组和管理正确的版本兼容性。让我详细说明一下实际情况:

比如说,我正在构建一个由 10 个微服务组成的软件应用程序。所有微服务都有其独立的存储库(分支工作流等)和独立的 CI/CD 管道。
每当将任何更改推送到相应微服务的“主”分支时,都会触发 CI/CD 管道。

考虑到 Helm 图表和基于 Kubernetes 的部署,所有微服务都将在第一次部署时使用 1.0 版本进行部署,并且我们的系统可以正常工作。对于后续版本,我们可能只有几个要部署的服务。因此,在几个生产版本之后,每个微服务将处于不同的版本以在那个时间点构成一个应用程序。

我的问题是:

  • 如何在逻辑上对可独立部署的微服务进行分组,以便部署或回滚到早期版本,即如何确定早期版本的不同微服务的版本是什么?
  • 是否有任何现有的工具或标准实践来跟踪给定版本的每个微服务的版本以无缝回滚到预期版本?
  • 如果不是自动化解决方案,那么解决此类要求的正确方法是什么?

  • 感谢您对此的想法和建议。

    最佳答案

    考虑到 kuberenets:
    1. Helm 是一个很好的部署和跟踪工具。
    2.原生k8s部署效果很好,你需要正确使用部署,尤其是查看k8s命令中的--record标志,例如check this link

    使用 AWS ECS 集群:
    1.他们有任务定义和任务。我认为这对你有用。

    没有 docker-compose、swarm 和其他工具的指针。但是你总是可以使用 git 和一些脚本的力量。
    这个想法是制作一个列出所有版本的文件 services/containers/code 。并在 git 中使用代码提交该文件。为简单起见,用它制作标签。您的脚本应比较此状态文件和当前状态并仅应用特定更改。看git submodules还。它只不过是一组许多 git 项目,它在每个项目的提交 ID 的帮助下跟踪每个项目的状态。这在你提到的情况下帮助了我们。

    关于kubernetes - 如何管理基于微服务的应用程序的逻辑分组以确保 CI/CD 管道的版本兼容性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60490652/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com