CDK per a Terraform millora el rendiment afegint espais de noms

HashiCorp va llançar la versió 0.13 del CDK per a Terraform (CDKTF) amb millores significatives en el rendiment. El llançament introdueix una reestructuració important de l’idioma mitjançant la introducció d’espais de noms. La millora de l’espai de noms millora dràsticament el rendiment de la infraestructura de síntesi. Aquesta versió es basa en la versió 0.12 que va veure que CDKTF va passar a la disponibilitat general.

El CDK permet escriure configuracions de Terraform en diversos llenguatges de programació com C#, Python, TypeScript, Go i Java. Inclou suport per a tots els proveïdors i mòduls de Terraform existents. El codi de l’aplicació CDKTF es sintetitza en una sortida JSON que es pot desplegar directament amb Terraform.

La versió 0.13 introdueix el concepte d’espais de noms a cada classe en els enllaços de proveïdors generats. Aquests espais de noms es deriven automàticament del recurs o font de dades de Terraform d’on s’origina. Anteriorment, les exportacions de cada proveïdor eren una llista plana de components. Això va donar com a resultat paquets grans que els diferents compiladors d’idiomes van lluitar amb el processament. Els usuaris de CDKTF van indicar que la síntesi podria ser molt lenta i, per als usuaris de Python, podria provocar que l’IDE es bloquegi.

El canvi d’espais de noms produeix una sèrie de paquets petits, que són més ràpids per processar els compiladors. Això ha donat lloc a algunes millores significatives en el temps de processament segons Nara Kasbergen Kwon, gerent d’enginyeria de Hashicorp. Kwon comparteix que les proves de benchmarking recents mostren:

  • una reducció del 96,8% del temps de sintetització cdktf quan s’utilitza Go amb el proveïdor d’Azure
  • una reducció del 83% del temps de sintetització cdktf quan s’utilitza Java amb el proveïdor de Google Cloud
  • una reducció del 36,8% del temps de sintetització cdktf quan s’utilitza C# amb el proveïdor d’AWS
  • una reducció del 61,5% en el temps de sintetització cdktf quan s’utilitza TypeScript amb el proveïdor de Kubernetes

La introducció d’espais de noms és un canvi radical, però, la versió 0.13 és compatible enrere amb els enllaços de proveïdors generats per la versió 0.12. Això permet la barreja de proveïdors amb espai de noms i sense espai de noms segons sigui necessari. Tingueu en compte que els proveïdors generats per la versió 0.13 tindran espai de noms. Aquesta compatibilitat enrere s’eliminarà a la versió 0.14 i només seran compatibles els proveïdors amb espai de noms.

El proveïdor d’AWS tenia espai de noms anteriorment, però d’una manera diferent del nou mètode d’espai de noms. Com a tal, la manera com s’importa ha canviat per alinear-se amb el nou model de ritme de noms. Anteriorment, el proveïdor d’AWS es podia importar a Go de la següent manera:

import (
 // ... other imports
 "github.com/cdktf/cdktf-provider-aws-go/aws"
)

func NewMyStack(/* ... */) cdktf.TerraformStack {
 stack := cdktf.NewTerraformStack(/* ... */)

 aws.NewAwsProvider(/* ... */)
 aws.NewCloudfrontDistribution(/* ... */)
 aws.NewAcmCertificate(/* ... */)
}

Amb el nou model d’espai de noms, ara caldrà importar-lo de la següent manera:

import (
 // ... other imports
 "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(/* ... */)
}

Segons Kwon, el proper llançament 0.14 està programat per a mitjans de novembre de 2022. Kwon comparteix que el llançament “se centrarà principalment en millores de qualitat de vida que facilitin l’ús de proveïdors preconstruïts”. L’equip va trobar que els proveïdors preconstruïts ofereixen una millor experiència de desenvolupador que la generació local utilitzant-los cdktf get.

Podeu trobar més informació sobre el contingut de la versió a la publicació del bloc i la guia d’actualització. Hashicorp allotja l’horari d’oficina de la comunitat i té un fòrum de discussió per a preguntes. Es recomana la Guia d’aprenentatge CDK per a Terraform per als usuaris nous al CDK.

.

Leave a Comment

Your email address will not be published. Required fields are marked *