基础架构即代码–从开发到运营的经验教训

发布于:2021-01-11 13:39:30

0

73

0

开发 运营 基础架构即代码

什么是基础架构即代码(IaC)?在DevOps Con上,我们与nubeGo的Emma Button讨论了IaC,需要什么敏捷方法,最好的工作工具以及她对从开发领域进入基础架构的人们的建议。

基础设施即代码(IaC)是DevOps团队的重要概念。在2019年DevOps大会的这次采访中,艾玛·巴顿(Emma Button)(nubeGo)讨论了不仅应在开发中使用敏捷方法,还应在构建IaC系统中使用敏捷方法。 

JAXenter:今天,我正在与nubeGO的Emma Button谈论基础架构即代码(IaC)。感谢您抽出宝贵时间与我们交谈Emma!让我们从一个简单的问题开始:什么是基础架构即代码?

艾玛·巴顿(Emma Button):基础架构即代码,是您定义基础架构资产所需的资源时。您用代码编写它们,然后使用基础结构供应引擎来创建和配置这些资源。

JAXenter:您能告诉我们一些与DevOps的关系吗?

艾玛·巴顿(Emma Button):因此,如果您自动创建资源并删除人工操作元素,则有助于减少交付流程中的摩擦。您可以将基础结构作为代码用作持续集成和持续交付管道的一部分。

基础设施即代码就像建立资源的基础,然后在该资源上构建应用程序。

JAXenter:随着DevOps的它总是关于怎么你这样做和如何你进行这项工作。在将基础架构作为代码工作时,您还应该记住并采用其他敏捷原则吗?

艾玛·巴顿(Emma Button):我在DevOps Con上的演讲是关于我通过软件工程学到的敏捷课程,以及我现在如何将它们应用于基础架构即代码。对我而言,最引人注目的是简单性:尽可能少地达成最终目标并最大化您不做的事情的行为。

对于IoC,我认为这是重用代码库并咨询外部注册表,因此,如果有人已经完成了您想做的事情,那么您可以利用他们的专业知识。您可以通过重用代码来减少复杂性和重复项。

JAXenter:您对开发人员有什么建议吗? 

艾玛·巴顿(Emma Button):我曾在DevOps Con上与几位来自开发背景的人交谈过。我给他们的建议是睁大你的眼睛。我们在基础设施领域面临的挑战可能与您在开发中面临的挑战截然不同。

也就是说,创造力,及时性和重构能力仍然面临着相同的挑战。挑战的形状相同,但对您的压力可能有所不同。因此,优秀的敏捷开发人员将学会检查和适应。因此,我们检查并调整了我们的工具;我们检查并调整我们的行为。

JAXenter:关于您提到的可重用代码,有哪些工具?您如何选择合适的工具?

艾玛·巴顿(Emma Button):在nubeGO,我们使用Terraform。我们使用Terraform的原因是因为它被广泛采用。我们倾向于发现,如果我们的客户从一开始就走了,那它就是最快的工具。对于我们来说,Terraform是平台无关的,因为我们在云中工作,因此我们需要能够跨多个不同的云提供商以及内部使用Terraform。

我今天讨论的工具是可以与Terraform一起使用的工具,以将质量灌输到您所做的工作中。因此,单元测试框架使用在Terraform之上的检查测试来验证服务器是否处于正确状态。

JAXenter:单元测试是您刚才提到的一个重要关键字。来自不同背景的开发人员进行测试的方式是否有所不同?

艾玛·巴顿(Emma Button):做单元测试没有正确或错误的方法,可以说,您将要在基础架构上进行的那种测试可能并不是严格的单元测试。但是挑战在于确保如何知道我的系统处于正确的状态以便我继续进行?如何确保没有犯明显的错误?

再次,这是关于软件开发的挑战与基础架构的挑战如何非常相似的。因此,我们可以从大量运行大量单元测试中吸取教训,以获得快速的反馈循环。我们也可以使用基础结构代码来做到这一点。