我的公司决定转向微服务架构。
过去几个月,我们一直在进行有关该架构的研究,以确定其具体外观。
到目前为止,我们已经确定:
使用Dotnet core进行服务开发(虽然无语言限制是最终目标)
使用Kafka进行消息传递
使用Docker
使用Kubernetes
使用Ansible
我们已经拥有一个基本的概念验证版本,并且似乎已经符合管理团队的所有要求,并且非常方便实用。
我的下一项任务是调查开发工作流如何实际工作。他们已经习惯了以CI/CD方式工作,其中一些新产品使用Jenkins / Octopus Deploy。
我的问题是:当部署到Kubernetes群集时,您有任何明确的设置CI/CD管道的建议吗?
必须具备以下“必须拥有”:
多个环境,例如 集成, 测试, UAT, 暂存 和 生产。
不同业务部门可以唯一处理针对不同环境的部署的方式(开发只能推送到集成环境,测试人员进入测试环境等)。这可能是他们最大的要求之一-他们习惯于使用Octopus,并且喜欢它处理这种情况的方式。
能够通过单击按钮或尽可能少的步骤进行回滚/部署。
最初我们将部署到自己的服务器上。
我已经花了过去几天的时间研究各种选项,其中有很多。
到目前为止,Jenkins Pipeline似乎是一个很好的开始。 Spinnakar也似乎是一个不错的选择。我也稍微阅读了一些关于Fabric8的信息,虽然它提供了我所问的许多功能,但似乎有点过度设计。