写点什么

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:004600

评论

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

Live Wallpaper & Themes 4K Pro for Mac(超高清4K动态壁纸)v19.9中文激活版

iMac小白

Kafka痛点专题:AutoMQ 如何实现分区持续重平衡?

AutoMQ

云计算 大数据 kafka AutoMQ

《射雕》热度不减!英特尔锐炫A750亮眼帧率展现高性价比优势!

E科讯

阿里云ACK One GitOps:轻松实现多团队多集群应用交付

阿里巴巴云原生

阿里云 云原生 容器服务

SQLPro Studio for Mac(可视化数据库管理工具)v2024.21激活版

iMac小白

淘宝/天猫按图搜索淘宝商品(拍立淘) API接口(商品标题、价格、销量、链接)

技术冰糖葫芦

API Explorer api 货币化 API 文档

阿里云首个 AI 员工入职,围观开发工程师使用反馈

阿里巴巴云原生

阿里云 AI 云原生 通义灵码

ChatGPT加持,需求分析再无难题

测吧(北京)科技有限公司

测试

为什么测试要了解系统架构

老张

软件测试 系统架构 质量保障

RocketMQ 之 IoT 消息解析:物联网需要什么样的消息技术?

阿里巴巴云原生

阿里云 RocketMQ 云原生

Media Encoder 2024 for Mac(ME2024)v24.3激活版

iMac小白

2024的财富契机,Meta Earth或在模块化赛道一展宏图

威廉META

Rectangle Pro for Mac(光标快速移动和管理窗口的工具)v3.0.22激活版

iMac小白

Bookends for Mac(文献书籍管理工具)v15.0.1注册激活版

iMac小白

捷途山海T2预售开启,安全动力更卓越,仅需18.49万元起

Geek_2d6073

Ghost Buster Pro for mac(苹果电脑内存清理专家)v3.2.1激活版

iMac小白

2024 AutoMQ 布道师计划启动!

AutoMQ

大数据 云原生 布道师 AutoMQ

硬件标准化之道:Linux社区与硬件厂商的协同创新

GousterCloud

硬件 Linux Kenel 设备

避雷指南:11个常见 Kubernetes 误区详解

SEAL安全

Kubernetes 容器 云原生

2024 年 3 月 Web3 游戏报告:市场趋势与投资动态

Footprint Analytics

gamefi\

不惜血本、重金打造的数据平台为何效果平平?

feng

数据平台 企业数据化运营

AI智能尺码引导未来决策 推动品牌业绩飙升

第七在线

AutoMQ 1.1.0-RC0 重磅更新:内核升级到 Apache Kafka 3.7.0

AutoMQ

大数据 云原生 AutoMQ

有手就会?记一次绕过防重放的漏洞挖掘

权说安全

漏洞挖掘

Yoink for mac(临时文件拖放暂存工具)v3.6.90激活版

iMac小白

Linux设备树解析:桥接硬件与操作系统的关键架构

GousterCloud

Linux Kenel 设备信息

怎么用OpenAI Sora?最全分析-新手小白必看

蓉蓉

openai ChatGPT sora

Magic Disk Cleaner for Mac(磁盘垃圾清理工具)v2.7.3激活版

iMac小白

Premiere Pro 2024 for Mac(PR 2024视频编辑软件)v24.3.0中文激活版

iMac小白

你的代码是干的还是湿的?

敏捷开发

项目管理 敏捷开发 代码 代码人生 bug管理

Acrobat Pro DC 2024 for mac (领先的PDF编辑转换器)中文激活版

iMac小白

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