Plantilles d’infraestructura com a codi (IaC)
Les plantilles d’infraestructura com a codi (IaC) són un conjunt de fitxers que defineixen la infraestructura necessària per a una aplicació o servei. Aquestes plantilles són utilitzades per a desplegar i gestionar la infraestructura de forma automatitzada, permetent així la creació de recursos de forma ràpida i eficient.
Les plantilles d’IaC són una eina fonamental en el desenvolupament de solucions en el núvol. En aquesta secció trobareu plantilles d’IaC per als diferents proveïdors de núvol públic: AWS, Azure, GCP. Aquestes plantilles us serviran com a punt de partida per a implementar la infraestructura com a codi de les vostres aplicacions afegint, eliminant i/o modificant el contingut que hi podeu trobar.
Terraform
Terraform és una eina d’infraestructura com a codi (IaC) de codi obert que permet als desenvolupadors i als equips d’operacions gestionar la infraestructura com a codi. Terraform permet als usuaris definir i configurar la infraestructura en un llenguatge de programació de propòsit general, i després desplegar aquesta infraestructura de forma automatitzada.
Plantilles Terraform disponibles
A continuació s’especifiquen les plantilles d’infraestructura disponibles pels diferents hiperescalars. Aquestes estan basades en serveis Cloud-Native per tal de facilitar als proveïdors d’aplicacions la seva gestió. Per cadascuna d’elles s’enumeren els serveis més rellevants que incorporen, així com l’enllaç al seu codi font.
Les plantilles es poden trobar a GitHub Enterprise Cloud (GHEC). Abans d’accedir-hi, cal que l’usuari hagi estat donat d’alta a la plataforma i s’hagi autenticat: https://github.com/enterprises/gencat
AWS
v1.1.0
Release notes:
- S’ha modificat la configuració dels recursos per a complir amb les polítiques de seguretat i estàndards definits per l’organització.
- S’ha modificat la configuració dels recursos i blocs ‘data’ per a incloure la possibilitat d’utilitzar un model de Networking amb dos rangs CIDR (Subxarxes enrutables i no enrutables)
v1.0.0
Release notes:
-
Arquitectura tipus per contenidors (Serverless container platform)
Serveis: AWS Application Load Balancer, AWS ECS Fargate, AWS Aurora Serverless (PostgreSQL)
Ubicació dins el repositori: template-fargate
-
Arquitectura tipus per contenidors (Serverless container application service)
Serveis: AWS Application Load Balancer, AWS AppRunner, AWS Aurora Serverless (PostgreSQL)
Ubicació dins el repositori: template-apprunner
-
Arquitectura tipus per funcions (FaaS)
Serveis: AWS Api Gateway, AWS Lambda, AWS DynamoDB
Ubicació dins el repositori: template-apigateway
Azure
v1.0.0
-
Arquitectura tipus per contenidors (CaaS)
Serveis: Azure ContainerApps, Azure CosmosDB (PostgreSQL)
Codi font: https://github.com/ctti-arq/iac-azure-templates/tree/master/template-container
-
Arquitectura tipus per funcions (FaaS)
Serveis: Azure Functions, Azure CosmosDB (MongoDB)
Codi font: https://github.com/ctti-arq/iac-azure-templates/tree/master/template-functions
GCP
⚠️ Les plantilles que es poden trobar en aquesta secció estan en fase de validació pel que encara no es recomana el seu ús per part de les aplicacions
-
Arquitectura tipus per contenidors (CaaS)
Serveis: Google Cloud Run, Google Cloud SQL (PostgreSQL)
Codi font: https://github.com/ctti-arq/iac-google-templates/tree/master/template-cloudrun
-
Arquitectura tipus per funcions (FaaS)
Serveis: Google Cloud Functions, Google Cloud Datastore
Codi font: https://github.com/ctti-arq/iac-google-templates/tree/master/template-cloudfunction-nosql