← 返回展厅
Pulumi
Pulumi2018

Pulumi

年份:2018
平台:跨平台
开发者:Pulumi

用通用编程语言写基础设施,告别HCL的繁琐与限制

浏览:7
点赞:0

简要介绍

【智能纪元厅】

2018年,Pulumi正式问世。由Pulumi主导开发,面向跨平台平台用户。

用通用编程语言写基础设施,告别HCL的繁琐与限制

技术特色:基础设施即代码、多云、开发者体验。

影响力评估:技术维度 8/10,商业维度 6/10,文化维度 5/10,用户维度 7/10。

作为智能纪元厅的经典代表,Pulumi在软件发展史上留下了深刻的印记。

详细介绍

在2010年代中后期,云计算的浪潮已经席卷了整个技术世界。AWS、Azure、Google Cloud三大巨头争相推出越来越丰富的服务,从虚拟机到无服务器计算,从托管数据库到机器学习平台,基础设施的抽象层次从未如此之高。然而,在这片繁荣景象之下,一个深刻的矛盾正在酝酿:云基础设施的复杂性爆炸式增长,而管理这些基础设施的工具却依然停留在石器时代。

那个时代,基础设施即代码(Infrastructure as Code, IaC)的概念已经深入人心,HashiCorp的Terraform是当之无愧的王者。Terraform以其声明式的配置语言HCL(HashiCorp Configuration Language)为核心,提供了一种跨云厂商的统一管理方式。但HCL本身是一种领域特定语言(DSL),这意味着开发者必须学习一套全新的语法、循环、条件判断和函数库。对于大多数习惯于Python、TypeScript、Go等通用编程语言的开发者来说,学习HCL就像是在熟悉的工具箱旁边被迫使用一把陌生的扳手。更令人沮丧的是,HCL缺乏通用语言中的类型安全、模块化、单元测试、IDE自动补全和重构能力。一个简单的拼写错误可能导致整个基础施部署失败,而调试过程往往需要反复的“apply”和“destroy”循环,既耗时又危险。

与此同时,容器化和Kubernetes的崛起进一步加剧了这种复杂性。YAML文件堆叠成山,Helm Charts的模板语法令人望而生畏。开发者们渴望一种能够将基础设施代码化、可测试、可复用,并且能够与现有软件开发生命周期无缝集成的工具。这种渴望,正是Pulumi诞生的时代背景。

Pulumi的故事始于一位名叫Joe Duffy的微软工程师。Joe在微软的职业生涯堪称辉煌,他曾是Midori项目的首席架构师,该项目是微软内部一个雄心勃勃的操作系统研究计划,探索从底层到应用层的全新计算模型。Midori虽然最终未能商业化,但它让Joe深刻理解了抽象、编译、类型系统和跨语言互操作的精髓。随后,Joe又领导了.NET Native编译器团队,负责将C#代码直接编译为原生机器码,这项技术后来成为了.NET Core高性能的重要基石。这些经历让他对编程语言的设计、编译器的优化以及开发者生产力有着近乎偏执的追求。

2017年,Joe离开了微软,与几位志同道合的伙伴——包括前微软同事Luke Hoban(曾是TypeScript团队的成员,也是Azure Functions的创始人之一)——共同创立了Pulumi。他们的灵感直接源于一个看似简单却极具颠覆性的问题:为什么管理基础设施不能像写普通软件一样?为什么我们不能用TypeScript、Python、Go这些我们已经熟练掌握的语言来定义云资源,享受IDE的智能提示、静态类型检查、单元测试框架和包管理生态?

这个想法在当时并非没有先例。AWS的CloudFormation使用JSON或YAML,Google Cloud Deployment Manager也类似。但Pulumi的团队认为,真正的突破不在于另一种DSL的变体,而在于完全拥抱通用编程语言。他们决定构建一个运行时引擎,能够将TypeScript、Python、Go等代码解析为云提供商的API调用。这个引擎需要处理状态管理、并发控制、依赖图构建和资源生命周期,而这些复杂逻辑被封装在Pulumi的“资源提供者”和“状态管理”层中,对用户完全透明。

2018年,Pulumi正式对外发布。最初的版本支持TypeScript和JavaScript,随后迅速扩展到Python、Go和.NET。这个发布在开发者社区中引起了不小的震动。一篇名为“告别HCL:用TypeScript写基础设施”的博客文章在Hacker News上引发了激烈讨论。支持者认为这是IaC领域等待已久的革命,反对者则质疑“为什么要用图灵完备的语言去做声明式配置?这会不会引入副作用和不确定性?”Pulumi的回应是:通过严格的资源模型和状态锁定机制,确保即使使用通用语言,代码的执行结果仍然是幂等的、声明式的。他们引入了“资源”(Resource)作为一等公民,每个资源对应云上的一个实体,资源的创建、更新、删除操作被抽象为对资源对象的“apply”方法调用,而底层依赖图由Pulumi引擎自动计算。

Pulumi的核心技术创新可以归纳为三个层面。首先是“通用语言作为配置语言”。这不仅仅是语法糖,而是从根本上改变了IaC的开发范式。开发者可以编写循环来动态生成一组安全组规则,可以使用条件语句根据环境变量决定是否创建某个资源,可以引入npm或PyPI上的第三方库来处理字符串、日期或加密。更重要的是,他们可以编写单元测试。Pulumi提供了\

深度研究

影响力评价

技术影响商业影响文化影响用户规模9888
8.3
综合影响力评分
评分基于技术、商业、文化、用户四个维度的综合考量
🔧技术创新
卓越9/10

对技术发展和工程实践的推动程度

💼商业影响
显著8/10

对商业模式和市场格局的影响深度

🎭文化遗产
显著8/10

在科技文化和社会层面的持久影响力

👥用户覆盖
显著8/10

用户群体的广度和普及程度

评论区 (0)

登录 后参与评论

加载中...