写点什么

CDKTF 通过增加命名空间来提升性能

  • 2022-11-15
    北京
  • 本文字数:1392 字

    阅读完需:约 5 分钟

CDKTF通过增加命名空间来提升性能

HashiCorp发布了CDK for Terraform(CDKTF)0.13版本,在性能上有了显著的改进。这个版本引入了命名空间,极大提升了基础设施的性能。这个版本基于 0.12 版本,而 0.12 版本见证了 CDKTF 的普遍可用


CDK 允许用户使用多种编程语言编写 Terraform 配置,包括 C#、Python、TypeScript、Go 语言和 Java。它支持现有所有的 Terraform提供程序模块。CDKTF 应用程序代码生成 JSON 输出,可以直接使用 Terraform 部署。


0.13 版本为生成的提供程序绑定中的每个类引入了命名空间的概念。这些命名空间是自动从 Terraform 资源或数据来源派生出来的。以前,每个提供程序的导出结果都是扁平的组件列表,其结果是各种语言编译器难以处理这些很大的包。CDKTF 的用户表示,处理过程可能非常慢,对于 Python 用户来说,可能会导致 IDE 发生崩溃。


有了命名空间,就会生成许多小的包,这样编译器处理起来会更快。根据 Hashicorp 工程经理Nara Kasbergen Kwon的说法,这已经带来了处理时间上的一些显著改善。Kwon 表示,最近的基准测试显示:


在使用 Go 语言和 Azure 提供程序时,cdktf 处理时间减少了 96.8%;在使用 Java 和谷歌云提供程序时,cdktf 处理时间减少了 83%;在使用 C#和 AWS 提供程序时,cdktf 处理时间减少了 36.8%;在使用 TypeScript 和 Kubernetes 提供程序时,cdktf 处理时间减少了 61.5%。命名空间的引入是一个突破性的变化,不过 0.13 版本也向后兼容 0.12 版本生成的提供程序绑定。这样可以根据需要混合使用命名空间和非命名空间提供程序。注意,0.13 版本生成的提供程序将包含命名空间。这种向后兼容性将在 0.14 版本中被删除,届时将只支持命名空间提供程序。


AWS 提供程序以前是有命名空间的,只是实现方式不同于新的命名空间。因此,它的导入方式已更改为与新的命名空间模型保持一致。以前,AWS 提供程序可以按如下方式导入(Go 语言):


import ( // ... 其他导入 "github.com/cdktf/cdktf-provider-aws-go/aws")
func NewMyStack(/* ... */) cdktf.TerraformStack { stack := cdktf.NewTerraformStack(/* ... */)
aws.NewAwsProvider(/* ... */) aws.NewCloudfrontDistribution(/* ... */) aws.NewAcmCertificate(/* ... */)}
复制代码


在新的命名空间模型中,现在需要按以下方式导入:


import ( // ... 其他导入 "github.com/cdktf/cdktf-provider-aws-go/aws/cloudfrontdistribution" "github.com/cdktf/cdktf-provider-aws-go/aws/provider" "github.com/cdktf/cdktf-provider-aws-go/aws/acmcertificate")
func NewMyStack(/* ... */) cdktf.TerraformStack { stack := cdktf.NewTerraformStack(/* ... */)
provider.NewAwsProvider(/* ... */) cloudfrontdistribution.NewCloudfrontDistribution(/* ... */) acmcertificate.NewAcmCertificate(/* ... */)}
复制代码


据 Kwon 透露,0.14 版本将于 2022 年 11 月中旬发布。Kwon 表示,这一版本“将主要关注易用性的改善,让使用预构建提供程序变得更容易。”开发团队发现,与在本地使用 cdktf get 在生成提供程序相比,预构建提供程序提供了更好的开发者体验。


关于这个版本更多的信息可以在博文升级指南中找到。Hashicorp 主持Community Office Hours,并提供了一个讨论问题的论坛。对于刚接触 CDK 的用户,可以参考CDK for Terraform学习指南


原文链接

https://www.infoq.com/news/2022/10/cdk-terraform-performance/


相关阅读:

Terraform 1.3,简化重构体验

为什么说 DevOps 治理是实现快速开发的关键

2022-11-15 08:004861

评论

发布
暂无评论
发现更多内容

在上海想学web前端课程如何选择

小谷哥

Optional的使用详解

echoes

开发实践丨昇腾CANN的推理应用开发体验

华为云开发者联盟

Python 人工智能

裴丹:AIOps 智能运维经验分享

华为云开发者联盟

云计算 后端

连麦直播系统软件——语音聊天系统

开源直播系统源码

软件开发 直播源码 开源源码 连麦语音直播 语音聊天直播

企事业单位建设知识管理的七条建议

Baklib

知识管理 企事业单位

在武汉学习web前端开发课程哪家比较好

小谷哥

linux远程复制文件命令小总结

入门小站

自定义spring boot starter三部曲之二:实战开发

程序员欣宸

Java springboot 7月月更

如何用Apifox 的智能Mock功能?

Liam

前端 Mock

大模型训练难于上青天?效率超群、易用的“李白”模型库来了

OneFlow

机器学习 gpu 模型训练

如何深入学习Html5前端技术知识

小谷哥

Free自由协议系统Dapp开发(锁仓复利)

薇電13242772558

智能合约 dapp

SAP Fiori 应用 Adapt UI 动态显示或者隐藏的技术设计细节解析

汪子熙

JavaScript 前端开发 web开发 SAP 7月月更

2022年智能运维企业50强,博睿数据实力入选

博睿数据

数字化 智能运维 博睿数据 性能监测

C 语言入门(五)

逝缘~

7月月更

iOS 中的代理模式

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

在线版 Python 图片转字符画

OpenHacker

Python

JavaScript基础之值和引用

已注销

7月月更

web前端开发技术前景怎么样好不好

小谷哥

自动化测试如何实施落地?

老张

软件测试 自动化测试 项目落地

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

OpenHacker

Docker

ST 端侧人工智能之视觉检测课程

贾献华

7月月更

记录一次现场 mysql 重复记录数据的排查处理

安逸的咸鱼

MySQL 实战案例 7月月更

分布式锁用 Redis 还是 Zookeeper?

C++后台开发

redis zookeeper 分布式 后端开发 C++后台开发

五分钟拿捏Python字典-Python3入门必备[字典详细操作]

迷彩

Python 字典 7月月更 入门教程

学习WEB前端去哪里培训比较好

小谷哥

SaaS应用:实现企业数字化转型的最佳途径

Baklib

在线多行文本批量正则替换添加后缀工具

入门小站

工具

CDKTF通过增加命名空间来提升性能_服务革新_Matt Campbell_InfoQ精选文章