我是 devops 的新手,我想知道,为 CI/CD 使用 GKE、Terraform 和 Gitlab 存储库的最佳方式是什么。现在,有一组命令与通量、证书管理器一起使用,但它不是自动化的。最佳实践、工具和整体方案是怎样使用的?感谢您的回答。
问问题
192 次
1 回答
1
在我之前的项目中,我们尝试了很多方法,最终意识到使用Octopus Deploy进行部署是最合适的,尽管部分原因是它在整个公司中得到了更广泛的使用,但对于使用 terraform 进行部署,它也非常好。主要的好处是拥有与每个客户(特别是 Google Cloud 项目)相对应的租户概念,并且对于租户,您可以设置大量变量,这些变量主要由 terraform 使用。根据配置每个租户的变量列表可能是一项相当乏味的任务,但我想这只是在第一次设置时。然后更新它并运行实际部署要快得多。
我们还尝试了 GitOps,因为每个客户端(GCP 项目)都有这些变量的存储库,并且在我们的部署脚本中只是拉取这些存储库,这也很好,因为它带来了在源代码中具有规范的所有好处,如在日志记录和单一真相的来源。但主要缺点是任何更改都应该打开合并请求,并且可能需要相当长的时间。如果在您的情况下它不是必需的,并且在对此类规范存储库的更改上运行的管道不是那么长,那么您可以尝试一下,为什么不呢。
您可以尝试的另一件事是将变量放入 Gitlab 变量中,但这也取决于您拥有的环境数量,如果它会继续增长(假设是),这可能不是一个好主意,因为对更改没有太多可见性并且很难跟踪所有这些变量。
于 2020-09-10T08:31:04.103 回答