DevOps, mikä onkaan tuo maaginen termi, ja mitä kaikkea se pitää sisällään? DevOpsin kanssa vilahtaa puheissa usein myös CI ja CD - mihin nämä liittyvät? Mikä on DevOpsin liiketoimintahyöty ja miksi jokaisen yrityksen teknologisten valintojen parissa työskentelevän tulisi olla siitä kiinnostunut?
Tässä blogissa pureudumme DevOpsin perusideaan. Käymme läpi, mitä DevOps on ja toisaalta mitä se ei ole, ja miten se hyödyttää liiketoimintaa. Jos DevOpsin parissa työskentely kiinnostaa, kannattaa vilkaista lopusta myös vinkit siihen, millainen on hyvä devopsaaja!
DevOps on palvelemista ja mahdollistamista
Yksinkertaistetusti DevOps on palvelemista. DevOps palvelee kehittäjiä niin, että he pystyvät tekemään työnsä mahdollisimman hyvin. DevOps huolehtii työkaluista ja kehitysympäristöistä. DevOpsin operaatiot astuvat kehään palveluiden ylläpitämisessä ja laadunvarmistuksessa.
DevOps on kulttuurillisesti merkittävä asia, sillä kyse on paitsi teknologisista valinnoista, myös työskentelytavoista ja mentaliteetista.
Ai ei auennut ihan vieläkään? Mennään käytännön kautta, se auttoi minuakin.
Mitä DevOps ei ole?
Eri paikoissa on erilainen käsitys DevOpsista. Termi on verrattain uusi ja tästäkin syystä määritelmät saattavat vaihdella. DevOpsiin liittyy paljon vääriä käsityksiä, joten käydään lyhyesti läpi mitä DevOps ei ole:
- DevOps ei ole valmisohjelmisto, jonka voit ostaa suoraan hyllystä.
- Jotkut toimijat toimittavat todella hyviä työkalukokonaisuuksia, jotka ottavat huomioon DevOpsin edellytykset, mutta se on vasta ensimmäinen askel kohti DevOpsia. Pelkät softat eivät vielä riitä.
- DevOps ei tarkoita devaajien ja operaatioiden yhdistämistä ja jätä sitä vain siihen.
- DevOps tuo ne yhteen, mutta se on vasta alku. DevOps on työskentelytapa ja mentaliteetti, joka yhdistää kehittäjät, softan ja infran. Se on taiteenlaji, jossa osataan kertoa selkokielellä projektista vastaaville miten palvelun operatiivinen puoli toimii.
- DevOps ei ole pelkkää automatisointia.
- Automaatio on suuri osa DevOpsia, muttei suinkaan ainoa.
- Se ei ole pelkästään pilvipalveluiden käyttämistä.
- Pilvipalveluiden hyödyntäminen ei vielä tarkoita DevOpsin hyödyntämistä.
- Se ei tarkoita, että kuka tahansa voi laittaa koodiin tehdyt muutokset tuotantoon milloin tahansa.
- DevOps nopeuttaa kehityksen vauhtia ja luo edellytykset vastata liiketoiminnan tarpeisiin hyvinkin nopeasti. DevOps yhdenmukaistaa käytännöt, jotta kaikella tekemisellä saavutetaan mahdollisimman iso hyöty ja minimoidaan tarpeettoman työn määrä.
DevOps jatkuvan kehityksen ja parantamisen katalyyttinä
DevOps ei ole siis valmisohjelmisto, pelkkää automatisointia tai pilvipalveluiden hyödyntämistä. Mitä se sitten on?
DevOps toimii jatkuvan kehityksen katalyyttinä, tarjoten työkalut ja kehitysympäristöt kehittäjille ja mentaliteetin jatkuvasta kehityksestä koko muulle organisaatiolle.
DevOpsin näkyvimpiä hyötyjä on sen merkittävä vaikutus sovellusten kehitys- ja julkaisutahtiin. DevOpsin tavoitteena on vähentää manuaalista työtä ja näin ollen laskea kehityksestä tulevia kuluja. Tässä kohtaa lyhenteet CI ja CD astuvat kehiin.
"DevOps toimii jatkuvan kehityksen katalyyttinä, tarjoten työkalut ja kehitysympäristöt kehittäjille ja mentaliteetin jatkuvasta kehityksestä koko organisaatiolle."
CI tulee sanoista continuous integration - jatkuva integrointi. CD puolestaan tulee sanoista continuous deployment - jatkuva toimitus. Näillä varmistetaan digitaalisten tuotteiden ja palveluiden korkea laatu, nopeampi julkaisutahti, nopeampi jatkuva kehitys ja näin ollen myös parempi palvelutaso ja kilpailukyky markkinoilla. Sovelluspuolella DevOps hallinnoi sovelluskauppoja ja sovellusten julkaisuja ja päivityksiä.
DevOpsin operatiivinen puoli (eli se -Ops) varmistaa, että palvelut toimivat ja tarvittavat päivitykset ajetaan ajallaan, niin automatisoituina kuin adhocina. Ops-puoli huolehtii palvelimista ja yhteyksistä, ja näin ollen myös tietoturvallisuuspuoli putoaa osin DevOpsille. Operatiivinen osuus vastaa useasti osittain service desk-työstä sekä palvelun laadunvalvonnasta.
Hyvä devopsaaja huomioi palvelun tai sovelluksen laatua heikentäviä tekijöitä; esimerkiksi sen että palvelu käyttää paljon muistia tai sama virheilmoitus tulee joka perjantai. Devopsaajan ei tarvitse itse korjata ongelmaa, mutta hänen tulee saattaa se kehittäjien tietoisuuteen ja sitä kautta korjatuksi.
DevOps mukana projektissa - askel askeleelta
Nyt mennään syvälle konkretiaan ja tech-talkkiin. Kun on käyty läpi miten DevOps voi auttaa ja mitä DevOps tekee, voidaan perehtyä prosessiin projektitasolla.
Projektin alussa DevOps määrittelee kehityksen tarpeet ja niiden laajuuden: kehityksen tuki ja syklit, päivitystiheys ja -versiointi, kapasiteettivaatimukset, service-desk -palvelu ja arviot minimi- ja maksimikäyttöasteesta. Projektin alussa myös luodaan testaus- ja kehitysympäristöt, mikä edellyttää devopsaajalta infran ymmärrystä.
Projektin edetessä DevOps huolehtii jatkuvasta integraatiosta ja toimituksesta, versionhallinnasta, dokumentaatiosta ja siitä, että infra toimii. DevOpsin tehtävä on myös löytää mahdollisia ongelmia.
Julkaisuvaiheessa DevOps tekee julkaisusuunnitelman, tukee testaamista ja tekee pohjatyön sovelluskauppojen kanssa, jotta julkaisu menisi mahdollisimman vaivattomasti. Apple Store- ja Google Play -sovelluskaupoilla on molemmilla omia erilaisia rajoituksiaan, ja nämä DevOpsin tulee ottaa huomioon. DevOps huolehtii myös service desk-tuesta julkaisun yhteydessä. DevOps suunnittelee tuotantoympäristön ja mahdollisimman identtisen kopion siitä (nk. staging-ympäristö) yhdessä kehittäjien kanssa. Kopio tarvitaan, jotta voidaan toistaa tuotannossa tapahtuvia ongelmia ja testata korjauksia ilman tuotantovaikutuksia. Kopioympäristössä suoritetaan myös varsinainen testaus ennen julkaisuja.
Kun julkaisu on nyt valmis ja sovelluksesi on sovelluskaupassa, mitäs nyt? Tästä eteenpäin DevOps huolehtii tietoturvapäivityksistä, järjestelmäpäivityksistä ja sovelluksen suorituskyvyn parantamisesta. DevOps huolehtii edelleen sovelluksen jatkuvasta toimituksesta (CD) ja service deskistä.
Palvelun pyörittyä jonkin aikaa DevOps voi kertoa toteutuneista käyttöasteista ja mikäli niissä on suuria heittoja. Tämä taas auttaa projektista vastaavaa tahoa tekemään päätöksiä kapasiteetin suhteen. Voidaanko esimerkiksi vähentää kapasiteettia arkisin pudottaen samalla infrakuluja, ja toisaalta tuplata kapasiteettia viikonloppuisin vaikka se maksaa n+1 €?
Mistä on hyvät devopsaajat tehty?
CTO:mme Christoffer kertoi kolme vinkkiä, jotka tarkistamalla voit pohtia, olisiko DevOps juuri sinulle sopiva työmaa:
- Hyvällä devopsaajalla on vähän devaajaa sielussa. Kehitysympäristöt ovat yksi asia, mutta devaajien sielunmaailman ymmärtäminen on toinen. DevOps -tehtävässä teet niin läheisesti töitä kehittäjien kanssa, että mahdollisimman saumaton ymmärrys takaa aina paremman lopputuloksen.
- Devopsaajan pitää oikeasti tykätä ylläpitotyöstä.
- Devopsaajalla on oltava halu pysyä perillä sekä siitä, mitä devaajien maailmassa tapahtuu, että siitä, mitä tapahtuu pilvimaailmassa.
Devaajatausta auttaa tehtävässä todella paljon, muttei ole ihan välttämätön. On valtavan tärkeää, että devopsaajalla on hyvä palveluasenne ja ratkaisukeskeinen suhtautuminen asioihin. Ja niin, meistä on tosi kiva, jos puhutaan ihmistä, eikä pelkästään teknologiaa.
Jos työ DevOpsin parissa kiinnostaa, pidä silmällä Työpaikat-sivuamme, jossa ilmoitamme avoimista paikoista. Mikäli haluat keskustella miten DevOps voisi hyödyntää sinun yritystäsi, ota yhteyttä ja neuvomme mielellämme!