Kysy konsultilta: Miten ja missä Terraformia voidaan hyödyntää?

helmik. 09, 2024

Miten ja missä Terraformia voidaan hyödyntää?

HashiCorpin Terraform on työkalu pilvi-infrastruktuurin määrittelemiseen. Terraform tukee useamman pilvialustan konfigurointia, valmiit työkalut tukevat laajalti ainakin AWS-, Azure ja GCP-resursseja ja periaatteessa näitä voi myös laajentaa omiin tarpeisiinsa, koska Terraform on julkaistu avoimena lähdekoodina rajatummalla Business Source Lisenssillä.


Terraformin resurssit kuvataan yksinkertaisena koodina deklaratiivisesti, eli määritellään mikä on haluttu tavoitetila resursseille. Ajettaessa Terraform luo ja päivittää olemassa olevat resurssit vastaamaan tätä annettua tavoitetilaa.


Terraform ja pilvialustaspesifiset vastaavat työkalut kuten AWS:n CloudFormation ovat kriittisiä työkaluja siihen, että pilvi-infrastruktuuri voidaan määritellä versioituina dokumentteina, joiden perusteella infrastruktuurista tulee hyvin määriteltyä, monistettavaa ja automatisoitavaa. Lähtökohtaisesti ajattelen, että mitään tuotannossa ajettavaa pilvi-infraa ei pitäisi tehdä ilman näitä Infra as Code (IaC) -työkaluja.


Terraform mahdollistaa myös organisaation käyttämien omien moduulien rakentamisen, jolloin organisaation kaikki tiimit voivat käyttää samalla tavalla rakennettua pilvi-infraa eikä kehitystiimien tarvitse jokaisen tehdä omaa ympäristöään. Moduulien myötä voidaan myös viedä keskitetysti uusia päivityksiä infraan ilman, että tiimien tarvitsee erikseen muuttaa mitään omassa konfiguraatiossaan.


Terraform puolustaa paikkaansa tilanteissa, joissa halutaan hallita useammassa pilvessä ajattavia palvelinympäristöjä. Se on aiemmin myös osoittautunut saavan hieman nopeammin uusia ominaisuuksia tiettyjen uusien palveluiden osalta kuin vaikka CloudFormation. Kääntöpuolena CloudFormationin kanssa AWS tarjoaa paljon palveluita, jotka tukevat CloudFormationin käyttöä ja sen tilan ylläpitoa. Terraformilla olevilla resursseilla ei ole AWS-pilvessä myöskään samanlaista stack-ryhmittelyä kuin CloudFormationilla luoduilla resursseilla.


Kaikissa näissä työkaluissa tulee vielä organisaatiotasolla käytettäessä vastaan se, että niiden lisäksi on tarpeen käyttää vielä uusia työkaluja, jotka mahdollistavat lukuisten tilien hallinnan ja kaikille tileille näiden resurssien luomisen keskitetysti. Nämä työkalut tuntuu olevan rakennettu tukemaan vain yhtä IAAS-työkalua kukin. Terraformille on ainakin TerraGrunt, CloudFormationille Sceptre ja vaikkapa Takomo.


Kaikkiaan nykyisessä pilvi-infran kehitysvaiheessa organisaatioiden pitäisi lähtökohtaisesti rakentaa kaikki infransa jollakin IaC-työkalulla, ja vain pääkäyttäjätunnusten luomisen ja 2FA-avainten hallinnan pitäisi olla manuaalinen prosessi. On hyödyllistä tarjota kehittäjille hiekkalaatikkoympäristöt, joissa pääsee kokeilemaan uusia palveluita ja tapoja käyttää resursseja, mutta kaikki hiekkalaatikkotilien ulkopuolella pitäisi rakentaa versionhallinnassa tallennettuina resurssitemplateina Terraformin kaltaisilla työkaluilla.


Ilman näitä työkaluja on nimittäin ylläpitäjillä edessä lukuisia päiviä hiusten repimistä, kun yritetään jäljittää jonkun aikaisemmin tekemiä manuaalisia muutoksia, ja ymmärtää miten ne liittyvät yhteen. Alkuun pääsy voi tuntua työläältä, mutta siinä jää voitolle työajan käytössä kun alun alkaen hyödyntää asiantuntijoiden osaamista.

Jukka Dahlbom

Head Of Data Engineering

Viimeisimmät kirjoitukset

Webscalen konsultteja.
03 May, 2024
Kysy konsultilta -blogisarjassa konsulttimme tekevät selkoa alan termeistä ja ilmiöistä. Vastaukset on mitoitettu sopimaan pieneenkin tiedonnälkään. Tällä kertaa selvitämme, miten FinOps auttaa pilvikustannuksissa?
Webscalen konsultteja.
26 Apr, 2024
Kysy konsultilta -blogisarjassa konsulttimme tekevät selkoa alan termeistä ja ilmiöistä. Vastaukset on mitoitettu sopimaan pieneenkin tiedonnälkään. Tällä kertaa selvitämme, mikä on AWS Landing Zone?
Webscalen konsultteja.
19 Apr, 2024
Kysy konsultilta -blogisarjassa konsulttimme tekevät selkoa alan termeistä ja ilmiöistä. Vastaukset on mitoitettu sopimaan pieneenkin tiedonnälkään. Tällä kertaa selvitämme, mitä on DevSecOps?
Webscalen konsultteja.
12 Apr, 2024
Kysy konsultilta -blogisarjassa konsulttimme tekevät selkoa alan termeistä ja ilmiöistä. Vastaukset on mitoitettu sopimaan pieneenkin tiedonnälkään. Tällä kertaa selvitämme, mikä on Serverless Framework?
Lisää kirjoituksia
Share by: