首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自动生成云形成。好是坏

自动生成云形成。好是坏
EN

Software Engineering用户
提问于 2017-08-04 19:02:34
回答 2查看 185关注 0票数 -1

在我的公司,我们使用AWS Cloudformation来管理我们的基础设施。模板是用JSON编写的。问题是,模板正在变得越来越大的一天5k线。公司的策略是在一个模板中编写特定的项目(也就是说,我无法将代码划分为单独的模板)。因此,模板变得非常庞大。

我一直在玩yaml,json和cloudformation生成器。我找到了一些不错的yaml生成器(Spiff)。使用它,我可以减少我们的模板在某些情况下几乎90%。

您认为动态生成cloudformation模板并主要使用Spiff yaml生成器是个好主意吗?否则,我将在未来几个月内支付一笔可怕的费用。请记住,Spiff有点神秘,而不是纯Yaml,所以对于那些在我之后维护模板的人来说,有一个学习曲线。

你认为如何?

EN

回答 2

Software Engineering用户

发布于 2017-08-08 00:02:40

我已经在几个项目中使用了大约9个月的金丝尔 RubyGem,并对此非常满意,原因如下:

  • 随着脚本变得更加复杂,Comments是非常宝贵的。
  • 相关项在source中是并置的--例如,资源的Output可以物理地位于该资源旁边的源文件中,而不是位于文件的另一个不相关的部分。JSON生成器确保所有定义都在适当的位置。
  • 属性files我发现我对堆栈参数的需求最小;它们只是添加了一个在源代码管理中没有跟踪的东西。
  • Ruby比Fn:Sub内部函数容易得多,尽管当我想包括帐户ID之类的东西时,我仍然使用这个函数。
  • 配置驱动的stacks --这是一个大问题:我们所有的应用程序配置(例如,自动缩放组、负载均衡器、DNS)都非常相似,可以用几行配置来表示。由于堆栈JSON是由功能齐全的编程语言生成的,所以我可以循环配置并使用if- loop语句来定义相关的资源。一个简单的100行应用模板可以为十几个或更多的应用程序生成堆栈。

CFNDSL不是唯一的选择;它恰好是我在正确的时间被介绍给大家的东西。我还听说过用Python编写的堆栈生成器,在不同的时间,我可能会更喜欢它。

底线:以编程方式生成堆栈要比维护纯声明性格式(特别是JSON )要好得多。

票数 2
EN

Software Engineering用户

发布于 2019-01-13 20:27:57

我的答案可能有点晚了,但是我已经创建了一个cfpack工具来将巨大的CloudFormation模板分割成更小的模板。这样做的想法是,当您拆分主模板时,您会创建完全兼容的、实际上是CF模板本身的小模板。然后,当您运行cfpack bulid命令时,它会组合所有模板并构建可以部署到CloudFormation的主模板文件。

另一件好事是,您可以创建可重用的插入模板并在不同的项目之间共享它。

所以,看看它,也许它也能帮到你。这里是一个示例用法,请检查templates文件夹(该项目尚未完成,但演示了如何使用cfpack)。

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

https://softwareengineering.stackexchange.com/questions/355123

复制
相关文章

相似问题

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