Ajankohtaista

Räätälöityä DevOpsia

Kirjoittanut Jani Haglund | 23.02.2018

Tämä on edelleen arkipäistä integraatiotoimittajalle, vaikka pilvialustat ovat tehneet tuloaan jo pitkään. Kaikki eivät voi tai halua siirtää järjestelmiään ulkomaille, saatika jokaiseen suomalaiseen hostauspalveluun. Silti järjestelmät on saatettava osaksi nykyaikaista mikropalveluarkkitehtuuria rakentamalla niihin API:a. Integraatioalustan on siis istuttava mahdollisimman monen palvelinympäristön päälle, olipa kyseessä Windows tai Linux ja infrastruktuurina mikä hyvänsä.

Uusien palveluiden pystyttäminen konteilla ja virtuaalipalvelimilla on moninkertaisesti rautaratkaisuja nopeampaa. Pilvialustatkaan eivät silti itsesarvoisesti takaa helppoa ylläpidettävyyttä, mikäli infrastruktuuri ja sovellukset provisioidaan käsin; jokainen sovelluksen asennuskerta on yhtä virhealtis ja hidas, puhumattakaan infrastruktuurin laajentamisesta.

Ketteryyttä DevOpsilla

Todellinen ketteryys saavutetaan vasta käyttöönottamalla DevOps-menetelmät: infrastruktuuri koodina ja jatkuva integraatio sekä jakelumenettely (CI/CD pipeline). Konttialustoihin näitä menettelyitä löytyy valmiiksi palveluihin upotettuina, esim. OpenShift ja Azure. Virtuaali- ja rautapalvelinten kanssa on hyvin todennäköistä, että joutuu hankkimaan erillisen jatkuvan jakelumenettelyn.

Ilman pilvialustaa

Tyypillinen itse hostattu ratkaisu on Jenkins, joka konfiguroidaan Git-repositoryyn sijoitetulla Jenkinsfilellä. Konfiguraation avulla perustetaan jatkuva integraatiopalvelu (CI), joka testaa ja paketoi applikaatiot automaattisesti lähdekoodista.

Lisäksi perustetaan jatkuva jakelumenettely (CD), joka kykenee virtualisoimaan kunkin rinnakkaisympäristön, esim. testaus- ja tuotantoympäristöt. Niihin jaellaan provisiointityökalulla, kuten Ansiblen Playbookilla, alusta sekä sovellus automaattisesti tai manuaalisen hyväksynnän kautta, ylentämällä (promote) artifacteja repositoryssä. 

Näin saadaan jakelukertojen nopeus ja laatu kasvamaan eksponentiaalisesti, vaikka saatavilla ei olisikaan pilvialustaa. Infrastruktuurin dokumentoinnissa koodin muotoonkaan ei ole haittaa, ylläpitoa ajatellen. 

Vaikka Linux-palvelimet ovat huomattavasti suositeltavimpia, onnistuu vastaava menettely myös Windows-palvelinten kanssa.