首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基础架构代码是否应该存储在与应用程序代码相同的存储库中?

基础架构代码是否应该存储在与应用程序代码相同的存储库中?
EN

Stack Overflow用户
提问于 2019-08-04 06:38:51
回答 3查看 746关注 0票数 6

我正在设置一个基础设施来支持WebApp。我的其中一个存储库拥有所有的网络基础设施(VPC、子网、NAT、堡垒等)。WebApp有一个路由53 + ALB + AutoScalling组+ EC2实例。所有这些都是用Cloudformation模板编写的。我的问题是,WebApp云表单模板是否应该存储在与应用程序相同的存储库中?关于如何分离基础架构和应用程序代码,有什么最佳实践吗?

EN

回答 3

Stack Overflow用户

发布于 2020-03-05 09:09:49

这真的是一个见仁见智的问题,但我认为趋势是将应用程序/服务所需的一切都保留在代码中。也就是说,你经常会有共享的东西(例如VPC),你通常会把它们放在一个单独的repo中(这取决于你如何组织你的代码;最近似乎有一种对mono repos的推动)。

CloudFormation Best Practices有一些关于组织堆栈的很好的信息,尽管它没有解决您的问题。

票数 1
EN

Stack Overflow用户

发布于 2020-03-06 04:26:57

作为一般规则,您应该将基础架构放在应用程序代码旁边。所以,是的,你应该把它放在同一个存储库中。

当然,您可能会遇到某些资源在不同项目之间共享的情况。在这种情况下,我建议您有一个单独的存储库,其中只包含共享的基础设施部分。我在这里要做的事情如下:

用于共享基础设施的

  • one存储库: VPC、公有和专用子网、dns根区域。
  • one存储库与您的one应用程序及其相关基础设施。

这使您可以实现构建工件并同时应用新基础设施的管道。

票数 1
EN

Stack Overflow用户

发布于 2022-01-14 07:05:18

我将提出以下值得深思的建议:

包含IaC代码似乎是一个自然的过程,随着项目的发展,当您遇到以下障碍时,您可以将其拆分:

  • 已部署的项目现在具有多个源项目/存储库involved
  • Protect/prevent对

代码的意外更改,具体取决于谁有权访问存储库

需要干净的提交历史记录来观察对基础架构和部署的更改

我个人喜欢在做某件事情时遵循阻力最小的方法--当它是一个单独的开发人员,并且您正在快速构建概念验证的原型时,将TF文件和ci-cd管道都放在一个地方肯定是有好处的。一旦你共享了你的代码库,并且制定了更严格的标准,那么就是时候成熟你的标准了。

根据您的经验,如果您知道项目最终会需要它,那么从一开始就包含许多最佳实践(聚合日志记录、SAST/DAST、代码链接和发布的贡献指南)可能是有意义的。但是,如果您仍然是第一次浏览所有这些概念,那么等到它成为一个痛点可能是有意义的。有点像Technical Debt vs YAGNI

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57342553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档