从代码构建基础设施:云基础设施管理的新浪潮

基础设施即代码(Infrastructure-from-Code, IfC)概述

基础设施即代码(IfC)是一种通过理解软件应用程序的源代码来创建、配置和管理云资源的方法,无需显式描述。IfC的主要方法包括四种:基于SDK的方法、基于代码注释的方法、两者结合的方法以及引入新编程语言的方法。

IfC的主要方法

基于SDK的方法

这种方法允许开发者使用自己的代码,在部署时,工具通过分析服务代码如何使用SDK来生成基础设施。基于SDK的方法使得从代码中推断使用情况更加可预测,但SDK在利用新云特性时往往滞后。典型的工具包括Ampt和Nitric。

基于纯注释的方法

这种方法仅依赖于代码中的注释,专注于理解开发者对框架和工具的使用。Klotho是该方法的领先工具,它通过引入如exposepersiststatic_unit等关键注释,使现有编程语言具备云原生能力。

注释与SDK结合的方法

开发者通过注释代码,工具将这些注释整合到框架中。Encore和Shuttle是该类别的主要工具。这些工具可以托管在IfC供应商的平台上,也可以与第三方云提供商(如GCP、AWS或Azure)集成。AWS Chalice是另一个有趣的工具,它允许创建和部署使用AWS Lambda的Python应用程序。

基于新编程语言的方法

这种方法引入了新的编程语言,旨在以云为中心。Wing和DarkLang是两个最常用的编程语言。这种方法允许引入在现有编程语言中难以实现的概念,但开发者需要先学习新语言,并将其整合到现有工具和服务中,且招聘具备新语言专业知识的开发者可能需要时间和精力。

基础设施即代码(IaC)的发展

Chef、Ansible、Puppet和Terraform是第一批基础设施即代码(IaC)工具,它们开始支持云基础设施的创建和管理。第二波IaC工具使用现有编程语言(如Python、Go、TypeScript)来表达与第一波工具相同的理念。Pulumi和AWS CDK是第二代工具的代表。

总结

IfC通过多种方法简化了云资源的管理和配置,使得开发者能够更高效地构建和部署应用程序。不同的方法各有优缺点,开发者可以根据具体需求选择合适的方法和工具。更多关于IfC的详细信息,可以参考Klotho的《2023年基础设施即代码现状》报告。

阅读 27
0 条评论