【51CTO.com快译】您可以在选择的编辑器中编写代码,使用标准的语言工具来处理代码格式和代码检查,它在Pulumi引擎上运行,该引擎可提供虚拟基础架构,并配置为代码做好准备的服务端点。由于Pulumi文件就是标准的C#或Python或JavaScript,甚至是Go,因此它们可以与您的应用程序代码一起加以管理,并作为任何IDE项目的一部分而添加。
在代码编辑器中构建基础架构
这是一种强大的方法;您不需要学习任何新语言,就能够以一种声明性的领域特定语言不支持的方式利用控制流。因而,单单一段Pulumi代码可以定义贵企业中任何项目使用的所有资源。您调用重要的代码,使用流控制元素来部署大批服务器,并构建软件定义网络。
您用于代码的同样的单元测试工具可用于基础架构,运行代码以查看您在实时环境中将部署什么。通过在上线之前测试基础架构定义和代码,就可以避免配置不当和错误。在大型Azure服务器上部署小型应用程序可能是代价高昂的错误,如果没有运维团队的支持,很容易被忽略。
Pulumi为架构师和运维团队提供了将架构和策略标准运用于基础架构的工具。您可以对配置的服务器或所使用服务的级别设置限制,并为开发、测试和生产定义不同特征。使用这样的架构标准,无异于在您的Azure部署周围设置防护栏,就像Visual Studio执行编程标准一样。
针对Azure的原生支持
Pulumi的最初版本是一种跨云工具。用Pulumi编写的代码可以在任何云提供商的平台上提供基础架构。但这样一来,您只能使用可以在所有云上运行的服务。您无法用它来构建依赖Azure服务和API的专门针对Azure的应用程序。
在过去几个版本中,Pulumi已开始引入对所谓的原生provider的支持,Azure最先进入到正式版,作为最近发布的Pulumi 3.0的一部分。微软一直在大力投资编制文档、为其API添加元数据,Azure为REST API提供数据。这让Pulumi可以每晚生成Azure原生provider的新版本,以跟上新功能和更新。
这并不意味着您使用的API和调用需要以同样的速度更改。Pulumi的工具支持Azure API的所有版本,因此除非Azure弃用您目前使用的版本,否则您的代码和基础架构无需更改。如果出现了您想在应用程序中使用的新服务,一旦Azure发布API,它立即可用。同样的API可自动生成文档,附有针对每种受支持语言的新版本。
这是一个有用的工具,而Pulumi显然为其功能而自豪。正如该公司指出,它开发了原生provider的279个不同构建版本,添加了166个新的Azure基础架构API。
基础架构预算即代码
这些API包括治理API和计费API,因此您可以对基础架构添加控件以管理支出和安全。基础架构代码可能包括消费预算,以帮助您跟踪成本,并将资源绑定到特定帐户。预算可以每月、每季度和每年来衡量。预算也可以基于使用量,超出配额或阈值时,通知会自动发送到电子邮件地址。
在Azure上管理成本可能很复杂,这种方法应该可以帮助您为基础架构和服务的使用设置适当的保护措施。这款工具无法面面俱到,但是您应该能够了解服务成本以及如何更有效地支出,也许可以通过在较低规格的服务器上重新配置来实现。
用代码自动化基础架构
Pulumi 3.0中比较有意思的功能之一是Automation API。这使您可以将Pulumi函数嵌入到自己的应用程序中,作为管理云基础架构的工具。这种引人入胜的方法足够灵活,有多种不同用法。
一种明显的选择是将其构建到内部门户中,用于自助式基础架构部署。可以使用批准的服务器映像及其他基础架构元素填充内部服务,而不是让所有工程师都可以访问Azure门户。需要临时测试或开发环境的工程师可以挑选所需的工具,并自动部署,无需运维支持。测试完成后,服务可以释放资源,从而将费用降到最低。
此外,可以在您选择的存储库中保留一组面向特定应用程序基础架构的Pulumi脚本。Azure Devops中构建的应用程序不仅可以编译、构建和包装代码,还可以使用管道操作来触发Pulumi Automation API,并部署为代码做好准备的Azure基础架构。
拥有面向基础架构管理的API,您可以开始编写自己的管理代码,使用来自Azure管理API的数据与Cognitive Service预测API之类的工具结合使用,从而主动部署额外的应用程序基础架构元素,以响应目前运行中实例的负载变化或故障征兆。如果仅在需要时部署基础架构,您可以将成本降至最低,同时确保应用程序保持响应能力和稳定性。
构建可自我管理的代码这一想法很诱人,尤其在难以获得运维资源的企业。自我管理的应用程序在部署之前需要经过仔细的测试,您要有良好的开发运维文化,才能成功使用这种技术,应用程序运维人员能够监控整套应用程序和工具。
这是一款越来越有用的工具的主要版本。在Azure的ARM API上动态构建可确保您的基础架构始终可以使用最新服务。一旦这些API发布,您的应用程序可以在其上构建,同时仍可以使用所选择的语言,充分利用无需操心的自动化基础结构。Pulumi还在竭力为其工具箱添加新语言,Ruby和Java目前正在开发中。
原文标题:Using Pulumi 3.0 to manage Azure infrastructure,作者:Simon Bisson
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】