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
v2.0.0
Release notes:
Fins ara, les plantilles d’infraestructura feien ús de mòduls oficials de la comunitat. Encara que funcionals, aquests mòduls presentaven limitacions a l’hora d’adaptar-se als estàndards interns de la nostra organització i requerien configuracions complexes.
En aquesta nova versió, hem dut a terme una reestructuració completa de totes les plantilles, substituint els mòduls oficials per mòduls propis dissenyats específicament per a la nostra organització.
Aquests nous mòduls:
- Compleixen amb tots els estàndards de qualitat i seguretat definits internament.
- Són més simples d’utilitzar, la qual cosa facilita la seva adopció per part dels equips de desenvolupament i infraestructura.
- Ofereixen una major flexibilitat per a adaptar-se a canvis futurs.
Canvi a destacar: API Gateway
En versions anteriors, la plantilla de API Gateway desplegava els recursos d’un en un, la qual cosa generava una major complexitat en realitzar modificacions. Ara, s’ha redissenyat completament per a utilitzar un mòdul basat en definicions OpenAPI, la qual cosa permet una gestió molt més senzilla i centralitzada de la API, així com una major agilitat per a aplicar canvis.
v1.2.0
Release notes:
- S’han inclòs Listener Rules en el ALB per a configurar l’autenticació amb OIDC.
- S’han afegit blocs data per a la recuperació de certificat d’ACM, i KMS Customer Managed Key.
- S’ha modificat la configuració de bases de dades (Aurora i DynamoDB) per a utilitzar la clau KMS recuperada amb un bloc data.
- S’han afegit etiquetes a les bases de dades (Aurora i DynamoDB) per a incloure-les en el pla centralitzat de còpies de seguretat de l’organització.
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
v2.0.0
Release notes:
- Afegit nou template per a arquitectures de contingut estàtic, basades en Azure FrontDoor.
- Afegit nou template per a arquitectures de contingut estàtic, basades en Azure Static Web Apps.
- Reestructuració completa de la template de Azure Contenidor Apps, per a permetre múltiples funcionalitats no cobertes, com el desplegament de múltiples Contenidor Apps sota el mateix Contenidor App Environment, i per a solucionar alguns problemes de compliment o errors generats per la configuració d’exemple anterior.
- Afegida en tots els templates una configuració en tots els private endpoints que permet autoregistrar els registres DNS d’aquests en les zones DNS Privades de la NET0.
- Múltiples canvis menors de configuració en els templates existents.
v1.1.0
Release notes:
- Eliminats els mòduls per a la creació de Private DNS Zones.
- Eliminades les referències i variables a Private DNS Zones a la resta de moduls. (Això es deu al fet que per polítiques de l’organització no es permet la creació de zones DNS Privades en els resource group d’aplicació, ni la vinculació dels private endpoints amb aquestes private DNS Zones per a la creació automàtica de registres. En el seu lloc, es crearà el private endpoint i posteriorment se sol·licitarà la creació dels registres sobre les Private DNS Zones de la NET0)
v1.0.0
-
Arquitectura tipus per contenidors (CaaS)
Serveis: Azure ContainerApps, Azure CosmosDB (PostgreSQL)
Ubicació dins el repositori: template-container
-
Arquitectura tipus per funcions (FaaS)
Serveis: Azure Functions, Azure CosmosDB (MongoDB)
Ubicació dins el repositori: 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