Com transformar amb Terraform la teva infraestructura en el Cloud?
Actualment, en el món Cloud existeixen grans desafiaments a afrontar, com la capacitat de creixement de les aplicacions i la definició d’una arquitectura vàlida per al servei que vulguem desenvolupar. Per a resoldre aquests i un altre tipus de problemes disposem d’eines com Terraform, que facilita la codificació d’una infraestructura en funció de les nostres necessitats i dels serveis que hàgim de prestar, comptant a més amb una gran varietat de proveïdors on col·locar la nostra infraestructura.
Però què és terraform exactament, com funciona i quines solucions ofereix? Aquestes i altres preguntes ens les resol Daniel Mas, Chief Technology Officer de FHIOS, que ens explica tot el que necessites saber sobre aquesta eina. Pren nota i descobreix tot el que et pot aportar!
Què és Terraform?
Sabies que, com més creix un servei, més complexa es fa la gestió i l’operació del mateix de manera manual? Pot ser que hi hagi un servei concret que sigui necessari per a l’aplicació i que hagi de recolzar-se en un altre servei existent d’un proveïdor de cloud diferent d’on estem desplegant l’aplicació. O que, simplement, vulguem crear i destruir entorns sota demanda en diferents clouds per a una mateixa aplicació. Aquests problemes es resolen amb una eina: Terraform.
El programa, desenvolupat per HashiCorp, serveix per a gestionar la infraestructura com a codi (IaC, Infrastructure as Code) de manera segura i eficient, és a dir, s’usa per a definir i aprovisionar la infraestructura mitjançant un llenguatge de programació declaratiu i simple.
A més, Terraform té suport per a una gran quantitat de proveïdors d’infraestructura local com, per exemple, Amazon Web Services (AWS), Digital Ocean, Microsoft Azure, i VMware vSphere, per la qual cosa els problemes sempre podran ser resolts fàcilment.
Les terminologies i el cicle de vida del programa
Els core concepts o terminologies centrals que has de conèixer abans d’utilitzar la plataforma són els següents:
- Variables: La clau-valor utilitzada pels mòduls Terraform que permeten la personalització.
- Provider: És un complement per a interactuar amb les API de servei i accedir als seus recursos relacionats.
- Mòdul: És una carpeta amb plantilles Terraform on es defineixen totes les configuracions.
- Estat: Consisteix en informació en caché sobre la infraestructura administrada per Terraform i les configuracions relacionades.
- Recursos: Es refereix a un bloc d’un o més objectes d’infraestructura que s’utilitzen per a administrar-la.
- Font de dades: Els proveïdors ho implementen per a retornar informació sobre objectes externs a Terraform.
- Valors de sortida: Aquests són valors de retorn d’un mòdul Terraform que poden ser utilitzats per altres configuracions.
- Planificar: És una de les etapes en la qual es determina què s’ha de crear, actualitzar o destruir per a passar de l’estat actual de la infraestructura a l’estat desitjat.
- Aplicar: És l’etapa on s’apliquen els canvis de l’estat actual de la infraestructura a l’estat desitjat.
Ara que ja coneixes els core concepts, endinsem-nos en el cicle de vida del programa! El procés comença quan Terraform posa en marxa el directori de treball que inclou tots els arxius de configuració, i segueix amb el pla Terraform que s’utilitza per a crear un projecte d’execució per a aconseguir l’estat desitjat de la infraestructura. En aquesta fase, els canvis en els arxius de configuració es realitzen per a aconseguir l’estat desitjat. Després, Terraform Apply fa els canvis en la infraestructura tal com es defineix en el pla. I finalment, la destrucció de Terraform s’utilitza per a eliminar tots els recursos d’infraestructura antics que estan marcats com contaminats després de la fase d’aplicació.
Quins són els beneficis d’utilitzar Terraform?
Els principals avantatges que ens aporta Terraform són:
- Realitza la gestió de configuració i orquestració.
- Admet crear infraestructures en múltiples proveïdors.
- Permet administrar infraestructures grans com una sola aplicació.
- Utilitza un llenguatge senzill d’entendre (llenguatge de configuració de HashiCorp), que facilita l’administració de gairebé qualsevol recurs independentment de la plataforma i servei.
- No és necessari administrar la configuració addicional en un servidor, ja que admet arquitectura de sol client.
- Els fitxers poden ser compartits i reutilitzables per a crear nous entorns i ser exportables a altres clients fàcilment.
- Permet una senzilla observació del progrés del nostre servei gràcies a que els models de dades poden ser versionats.
- Possibilita controlar els canvis en la infraestructura de manera àgil i simple.
En definitiva, Terraform és una eina moderna centrada en el desplegament de la infraestructura i la seva orquestració en els diferents proveïdors. El fet de poder traçar els canvis de la nostra infraestructura en un sistema de control de versions, fa que sigui més fàcil poder controlar els canvis que hagin fet millorar o empitjorar el rendiment del mateix i fins i tot poder traslladar una solució arquitectònica d’un servei per a un altre projecte de característiques semblants. A part, redueix costos i temps derivats de l’operació i manteniment del servei.
Aquest programari està adquirint molta més rellevància en els últims anys i és una tendència que seguirà creixent. Per això, a FHIOS tenim un equip que realitza frameworks d’automatització de la configuració i desplegament amb Terraform, així que si és el que estàs buscant, no dubtis a contactar-nos, t’ajudarem pas a pas!