>>国内基础软件,不管是数据库还是芯片上,都有哪些替代方案?>> 了解详情
写点什么

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

评论

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

react源码解析10.commit阶段

全栈潇晨

react源码

面试大厂必备六大核心技能Spring+Nginx+Redis+kafka+JVM+高并发

Java架构师迁哥

【端午节】TcaplusDB祝大家端午安康!

tcaplus

数据库 游戏 TcaplusDB

《原则》(十)

Changing Lin

6月日更

签约落地!百度、山东共建人工智能数据标注产业基地

百度大脑

人工智能 百度智能云

【FlinkSQL】Flink SQL Query 语法(一)

Alex🐒

flink 翻译 FlinkSQL flink1.13

【TcaplusDB知识库】TcaplusDB技术支持

tcaplus

数据库 游戏 TcaplusDB

时代变了,程序员の老冤家IE浏览器离场啦?!

空城机

JavaScript 微软 大前端 IE 6月日更

MySQL 亿级数据分页的优化

xcbeyond

MySQL 数据库优化 6月日更

区块链如何赋能数字城市建设?

CECBC

一周信创舆情观察(5.31~6.6)

统小信uos

百度创新发布“炫瞳活体”技术!起底金融级人脸实名认证方案背后的硬实力

百度大脑

人工智能

☕️【Java技术之旅】带你实战使用String的功能特性

洛神灬殇

Java string 字符串 6月日更

Kubernetes手记(7)- 控制器配置清单

雪雷

k8s 6月日更

从 Alpha 到 Beta,这次是 New mPaaS

蚂蚁集团移动开发平台 mPaaS

移动开发 mPaaS

MySQL基础之八:外连接

打工人!

myslq 6月日更

☕【JVM技术探索】Class字节码指令方法调用初探

洛神灬殇

Java JVM 6月日更 字节码指令

算法训练营 - 学习笔记 - 第九周

心在飞

你真的很忙么?

escray

学习 极客时间 朱赟的技术管理课 6月日更

世界海洋日 | TcaplusDB号召你一同保护海洋生物多样性

tcaplus

数据库 游戏 TcaplusDB

每日互动CTO谈数据中台(下):从演进、经验到规划

个推

5分钟速读之Rust权威指南(二十)

wzx

rust

Alibaba大佬用了3个月,把Java后端95%的技术体系都整理出来了!

Java架构师迁哥

如何在手机上保护自己的隐私?

石云升

隐私保护 数据安全 6月日更

【FlinkSQL】Flink SQL CREATE 语法

Alex🐒

flink 翻译 FlinkSQL flink1.13

Python——字符串查找/替换/分割

在即

6月日更

世界海洋日|TcaplusDB与你一同保护海洋生物多样性

数据人er

数据库 nosql tencentdb TcaplusDB

欧洲杯发布首座区块链奖杯:中国设计师创作,灵感来源小篆

CECBC

智慧组工系统搭建,组织部干部任免系统

require() 方法详解

编程三昧

nodejs modules 模块 require

绿色数据时代,全闪存与数据中心的注定邂逅

脑极体

CDKTF通过增加命名空间来提升性能_云计算_Matt Campbell_InfoQ精选文章