Evercloud Containers

Ketterä Kehitys – työkaluja sovelluskehitykseen ja palvelutuotantoon

Mitä ketterällä sovelluskehityksellä ja palvelutuotannolla tarkoitetaan?

Ketterän sovelluskehityksen ja palvelutuotannon synonyymiksi on muodostunut termi DevOps. Sillä tarkoitetaan työympäristöä tai paremminkin kulttuuria, jossa ohjelmistokehittäjät ja muusta IT-palvelutuotannosta vastaavat ylläpitäjät toimivat erittäin tiivisiissä yhteistyössä keskenään muodostaen pieniä tiimejä. Humoristisesti onkin todettu, että DevOps-toimintamallissa tiimin koko pitää olla sellainen, että sen ruokkii kahdella pitsalla. 

DevOps-kulttuurissa on tavoitteena saavuttaa toimintatapa, jonka avulla ohjelmistojen kehitys, testaus ja tuotantoon siirto saadaan toteutettua mahdollisimman nopeasti, ja tarvittavat korjaukset tehtyä riittävän usein.

Tällöin koko prosessi saadaan toimimaan luotettavammin kuin perinteisessä toimintamallissa missä eri IT-osastot ovat vastanneet vain omasta tekemisestään, usein ilman kunnollista kommunikaatiota keskenään.

DevOps käytännössä

DevOps-toimintamalliin ei ole yhtä ainoaa oikeaa tapaa tai työkalua, vaan se koostuu joukosta eri toimintamalleja ja välineitä. Tyypillisesti näitä ovat koodin tuottamiseen ja versionhallintaan tarkoitetut, testaamiseen käytetyt, paketointiin   ja tuotantoon siirtoon liittyvät sekä muutoshallintaan ja monitorointiin liittyvät työkalut. Vaikkakin käytetyt työkalut  vaihtelevat, on tavoitteena aina saavuttaa toimintamalli tai paremminkin toimintakulttuuri, jonka avulla pystytään julkaisemaan sovelluksia nopeammin, useammin ja luotettavammin kuin perinteisessä mallissa. Käytännön hyötyjä ovat mm.  sovellusten saaminen tuotantovalmiiksi nopeammin sekä sovelluksissa havaittujen ongelmien ripeämpi   korjaustahti, mikä taas osaltaan parantaa laatua ja johtaa korkeampaan asiakastyytyväisyyteen.

Konttitekniikan edut ketterässä sovelluskehityksessä ja palvelutuotannossa

Konttitekniikka – jota usein myös mikropalveluiksikin kutsutaan, mahdollistaa sovellusten paketoimisen ja pilkkomisen pienemmiksi, itsenäisiksi kokonaisuuksiksi,  joita on helpompi ylläpitää ja hallita. Pyrkimyksenä on nopeuttaa tietojärjestelmien kehittämistä ja parantaa vikasietoisuutta. Kontti sisältää sovelluksen lisäksi myös kaikki tarvittavat   ajokirjastot ja konfiguraatiotiedostot, jolloin yksittäisen sovelluksen kehittäminen, päivitys ja siirtäminen alustasta toiseen muuttuu helpommaksi. Konttitekniikka onkin huomattavasti kevyempi ja vähemmän resursseja kuluttava kuin esimerkiksi perinteiset virtuaalipalvelimet. 

Myös sovellusten kehitys nopeutuu koska nyt kehittäjä voi käynnistää kontin nopeammin kuin perinteisen virtuaalikoneen ja tehdä useita eri versioita samasta sovelluksesta omiin kontteihinsa. Mikropalvelut ja konttitekniikka muuttavat täysin sovellusten paketoinnin, jakelun ja käytön perinteisen toimintamallin. Perinteisessä mallissa kehittäjä asensi virtuaalikoneen käyttöjärjestelmineen jokaista sovellusta varten. Nyt konttien avulla jokainen sovelluskomponentti on oma konttinsa, joita voidaan ajaa joko samassa virtuaalipalvelimessa tai hajauttaa se useampaan palvelimeen, jopa eri konesaleihin. Virtuaalikoneen ylläpito ja mm. tietoturvapäivitykset jäävät kokonaan pois konttitekniikassa. Myös sovellusten kehitys nopeutuu koska nyt kehittäjä voi käynnistää kontin nopeammin kuin perinteisen virtuaalikoneen ja tehdä useita eri versioita samasta sovelluksesta omiin kontteihinsa. Sovelluksen testaus on nopeaa sillä kontin käynnistäminen ja pysäyttäminen kestää vain sekunteja. 

Kontit valmiina palveluna

EverCC-palvelussa asiakas saa käyttöönsä heti käyttövalmiin Kubernetes-ympäristön, joka perustuu Nutanix Kubernetes Engine (NKE) tuotteeseen. Evertech vastaa palvelun alustan toimivuudesta, ylläpidosta ja vikasietoisuudesta, joten asiakkaalle itselleen jää vain Kubernetes-ympäristön hallinta ja käyttö. Asiakkaan vastuulla oleviin hallintatoimiin sisältyy myös Kubernetes-versioiden kehityksen seuraaminen ja päivitykset. NKE:n päivitys edellyttää, että käytössä olevat kubernetes-versiot ovat päivityksessä tuettuja. Ympäristö sisältää sisäisen kuormantasaajan (metalLB), joka mahdollistaa asennukset pakettimanagerilla (Helm Charts).