CGI:n blogi - kirjoituksia eri asiantuntijoilta

CGI Suomen asiantuntijat

Kirjoituksia asiantuntijoiltamme

Miksi ja miten IaC muuttaa kehitystiimiläisen elämää?

Viime vuosina digitaalisten palvelujen kehitys on siirtynyt valtaosaltaan pilveen. Siellä tuottavuutta lisää erityisesti PaaS/Serverless-palvelujen käyttö, koska niillä voidaan serveritason tunkkaamisen sijaan keskittyä tuottamaan bisneslogiikkaa. Samaan aikaan tiimit ovat alkaneet toimimaan enemmän DevOps-tyylisesti, eli kehitystyön lisäksi tiimi huolehtii myös palvelun eri ympäristöjen ylläpidosta tuotantoon asti. 

Perinteisten Ops-tekijöiden osaaminen ei yleensä ole PaaS/Serverless-alueella, ja jos DevOps-tiimi joutuisi siirtämään tuotoksiaan toisen osapuolen ylläpidettäväksi, muodostuisi tästä helposti pullonkaula tiimin tuottavuudelle. Lisäksi PaaS/Serverless-palvelujen käyttöönotto ja ylläpito on yleensä kohtuullisen helppoa, joten erillisen osapuolen käyttö tähän tarkoitukseen on yhä epäsuositumpaa. Näin ollen tiimeissä alkaa olemaan vaatimuksena, että niissä osataan pilvi-infran hallinta.

Jokaisella pilvikehittäjällä ja -arkkitehdillä pitää alkaa olla osaamista IaC-välineistä.

Pilvialustat ovat alusta alkaen tarjonneet API-rajapintoja ja komentorivityökaluja (CLI), joilla palveluja on voinut pystyttää ja konfiguroida. Sen lisäksi viime vuosina ovat voimakkaasti kehittyneet Infrastructure as Code -välineet (IaC), joissa pilvi-infra tuotetaan erilaisilla templaateilla. Näistä keskeisimmät esimerkit ovat AWS:n CloudFormation ja Azuren ARM sekä usean eri pilvialustan kanssa toimiva Terraform. Kaikki nämä työkalut ovat Suomessa jo täydessä käytössä lukuisissa edistyneemmissä organisaatioissa. IaC-välineillä pystyy helposti tekemään kaikista kehitettävän palvelun ympäristöistä samanlaisia. Lisäksi kun IaC-templateja on muutaman tehnyt, niitä on yleensä helppo uudelleenkäyttää seuraavissa projekteissa.

Näillä eväillä pääset alkuun IaC:n kanssa

Näin ollen jokaisella pilvikehittäjällä ja -arkkitehdillä pitää alkaa olla osaamista IaC-välineistä. Koska yllä mainittujen lisäksi välineitä on lukuisia muita, millä kriteereillä kannattaisi valita se ensimmäinen, jonka kautta voisi lähteä tutustumaan aiheeseen? Jos olet jo kehittänyt yhdellä tietyllä pilvialustalla ja etenkin jos et ole haikailemassa muulle alustalle, valitse kyseisen alustan oma IaC-väline eli ARM tai CloudFormation. Jos taas tiedät, että käytät jatkossa useampaa pilvialustaa, voi olla järkevää aloittaa Terraformista. Se näet tarjoaa providereitaan käytännössä kaikille tunnetuimmille alustoille.

IaC-välineet vaativat kokemusta pilvipalveluista

Miten sitten olisi fiksuinta aloittaa opiskelu ja mistä saa lisätietoa? Käyn seuraavassa vaihtoehtoja läpi väline kerrallaan. Huomioi kuitenkin, että IaC-välineet vaativat kokemusta pilvipalveluista, eli pilvipalvelujen käyttämisen perusteet pitäisi olla hanskassa ennen tähän aiheeseen perehtymistä.

Terraform

Hyvän peruskäsityksen välineestä saat, kun käyt läpi Terraformin tutoriaalin. Siitä löytyy versiot eri pilvialustoille (AWS, Azure, GCP). 

Yleensä tämän jälkeen pystyy jo tekemään asioita perustasolla ja enemmän huomiota kannattaa kiinnittää pilvikohtaisiin providereihin. Niiden lista löytyy täältä.

Jos siis teet palveluja esimerkiksi GCP-alustalle, edellä mainitusta provider-listasta löytyy linkki sinne

Kun kaipaat syvempää tietoa ja tosi elämän kokemuksia, kannattaa lukea tämä Gruntworkin julkaisema blogi-postauksien sarja.

Azure Resource Manager eli ARM

Microsoft tarjoaa palveluistaan eli myös ARM:stä varsin kattavan dokumentaation eli se on yksi mahdollinen aloituspaikka.

Overview’n lukemisen jälkeen kannattaa edetä sivustolla Quickstartin kautta Tutorialeihin.
Toinen vaihtoehto on tämä Microsoftin tutoriaali.

Pari muutakin löytyy samalta Microsoftin sivustolta.

AWS CloudFormation ja CDK

AWS:n IaC-väline on CloudFormation, mutta parin viime vuoden aikana AWS on kehittänyt myös Cloud Development Kit (CDK) -nimisen työkalun, jossa tavallisella ohjelmointikielellä (JavaScript, TypeScript, Python, Java ja C#) tuotetaan CloudFormation templateja. Eli CDK:ta käytettäessä on hyvä olla edes perustason ymmärrys CloudFormationista.

CloudFormationin opiskelun voit aloittaa esimerkiksi AWS:n dokumentaation avulla.

CDK:sta löytyy myös AWS:n tutoriaali, mutta suosittelen ennemmin tätä.

Muita potentiaalisia IaC-välineitä ja niiden tutoriaaleja

Pulumi: Jos haluat tehdä IaC-koodisi templaten sijaan ohjelmointikielellä ja pelkkä AWS-alustan tuki ei riitä, kannattaa tutustua Pulumiin.

Serverless framework: Jos keskityt täysin Serverless-toteutuksiin, kannattaa tutustua tähän.

Jos taas olet suuntautumassa enemmän IaaS:iin tai jopa onPremiseen, niin tässä on lista potentiaalisista välineistä tutoriaaleineen:

 

Blogin kirjoittaja Andreas Asuja on toiminut CGI:llä pilvi- ja DevOps-arkkitehtina.  

Kirjoittajasta

CGI:n blogi - kirjoituksia eri asiantuntijoilta

CGI Suomen asiantuntijat

Kirjoituksia asiantuntijoiltamme

CGI on kansainvälisesti suomalainen digitalisaatiokumppani.  Suomessa noin 3 800 asiantuntijaa konsultoivat asiakkaitamme liiketoiminnan ja ICT-ratkaisujen kehittämisessä. Tällä profiililla julkaisemme kirjoituksia CGI:n eri asiantuntijoilta.