对于AWS云中的配置基础设施,我们目前正在使用从ansible角色调用的云形成模板,但我们看到,在增加基础设施的规模之后,这段代码在GitHub中变得非结构化或没有模块化
Github有这段代码的意大利面,没有适当的结构,可读性差,不易被新技术人员挑选。
特别是在提供基础设施方面,我看到维护用特定于域的语言编写的代码,如ansible、terraform、cloudformation等.对于GitHub中的代码的长期维护来说,这不是一个好主意,因为对于完全(完全)自动化,您使用这些技术的组合。
原理是,aws代码在GitHub中看起来更结构化,因为它提供了许多隐藏实现细节的抽象。
当然,配置代码与运行在该配置基础结构上的功能代码一样重要。
我们相信,在离开Azure之后,我们将坚持AWS云
域特定语言vis编程语言,
aws方法解决了这个问题吗?我们更喜欢GoLang aws,这样任何GoLang程序员都可以获得它。
发布于 2019-06-21 12:07:18
如果我正确地理解了您的问题,您将指出,由于规模的增加,您的云形成代码已经变得难以管理,并且现在有兴趣使用AWS对其进行定义,以便您可以使用软件最佳实践来保持代码的可维护性。
AWS相对于声明性语言的缺点是,现在您有责任确保当您单击run时,它将不只是创建一个新实例。例如,当我通过AWS部署ec2机器时,下次运行该代码时,它将部署一台新的ec2机器。云形成维护已经部署到何处的状态,因此更容易将增量更改部署到基础设施和还原更改。
我建议您查看的是新的AWS-CDK,它允许您定义最终通过云形成运行的代码。它允许您编写OO样式的对象:
const vpc = new Vpc(this, 'vpc', {
cidr: '10.150.0.0/16',
natGateways: 2,
subnetConfiguration: [
{
name: 'Public',
subnetType: SubnetType.Public,
cidrMask: 20
},
{
name: 'Private',
subnetType: SubnetType.Private,
cidrMask: 22
},
{
name: 'Isolated',
subnetType: SubnetType.Isolated,
cidrMask: 22
}
]
});遗憾的是,戈朗还没有得到支持。
https://stackoverflow.com/questions/56702735
复制相似问题