Blogi

DevOps- ja pilviasiantuntijoiden roolit modernissa ohjelmistokehityksessä

Nicole Lindenau Teknologia

DevOps engineer working on a laptop DevOps engineer working on a laptop

Kun yritykset siirtyvät yhä enemmän pilvipohjaisiin ratkaisuihin, DevOps- ja pilviasiantuntijoiden roolit tulevat keskiöön. Tiesitkö, että vuonna 2023 pilviteknologioiden markkinat ylittivät 500 miljardia dollaria? (Precedent Research) DevOps- ja pilviasiantuntijat voivat parhaimmillaan tuottaa merkittävää arvoa kehitysprosessiin viemällä niitä modernimpaan suuntaan. Mutta miten nämä kaksi roolia eroavat toisistaan ja miksi ne ovat niin kriittisiä nykypäivän ohjelmistokehityksessä?

Siiloista parempaan yhteistyöhön

Toimialallamme uusia teknologioita syntyy jatkuvasti – viime vuosikymmentä on leimannut erityisesti pilvipalveluiden kukoistus. 2010-luvun loppu ja 2020-luvun alku ovat olleet pilviteknologioiden nousukautta, ja niiden käyttö on lisääntynyt vuosi vuodelta. Pilvipalveluiden parissa työskenteleviin rooleihin kuuluvat muun muassa Cloud Engineer, Cloud Architect eli pilviarkkitehti ja Solutions Architect sekä monia muita.

Samaan aikaan DevOps-kulttuuri on vakiinnuttanut paikkaansa toimintamallina erityisesti ketterissä ja moderneissa IT-tiimeissä ja organisaatioissa. Yritykset haluavat välttää siiloutumista ja panostaa moderneihin tapoihin tuottaa ohjelmistoja. DevOps on muuttanut käsitystämme koko ohjelmistokehitysprosessista.

Perinteisesti toimittiin siiloissa: kehittäjät (Dev) kehittivät sovelluksen ja kun se oli valmis julkaistavaksi, he luovuttivat sen julkaisusta vastaavalle operations-tiimille (Ops/järjestelmänhallinta). DevOps-toimintamalli edistää kehitys- ja Ops-tiimien yhteistyötä läpi koko kehitysprosessin. 

DevOps-kulttuurin omaksuminen edellyttää, että yritys osaa hyödyntää jatkuvan julkaisun mallia ja toistuvien tehtävien automatisointia. DevOps tarkoittaa sekä kulttuuria ja filosofista ajattelumallia (“miksi?) että käytännön työkaluja (“miten?”). Roolit, jotka käyttävät työssään DevOps-menetelmiä ovat muun muassa DevOps Engineerit, DevOps-asiantuntijat ja DevOps-konsultit.

Kun DevOps-käytännöt ovat vakiintuneet kehitystiimeissä viime vuosien aikana, yhteistyö DevOps- ja pilviasiantuntijoiden välillä on myös lisääntynyt, ja työtehtävät ovat joissain tapauksissa sulautuneet toisiinsa. Usein DevOps- tai pilvikonsultti voikin omassa työssään hoitaa molempien roolien vastuita.

DevOps- ja pilviasiantuntijoiden vastuut

DevOps Engineer ja DevOps-konsultit

DevOpsit vastaavat ensisijaisesti saumattomasta julkaisuprosessista. DevOps-periaatteiden mukaisesti erilaiset työvaiheet tulee automatisoida mahdollisimman pitkälle, jotta julkaisuprosessi sujuu saumattomasti ja vaatii mahdollisimman vähän manuaalista työtä. Automatisoinnin avulla vältetään myös virheitä ja nopeutetaan prosessia. Julkaisuprosessin aikana otetaan huomioon palvelun loppukäyttäjät ja varmistetaan palvelun toimivuus. 

Prosessin kehittämiseen voidaan käyttää lukuisia DevOps-työkaluja. Joskus yksinkertainen bash-skripti voi ratkaista kehittäjän päivittäisen ongelman, kun taas toisinaan tarvitaan raskaampia työkaluja, kuten GitHub Actions, Ansible tai Puppet. DevOps-työn ytimessä on aina siilojen poistaminen ja tiimien välisen yhteistyön rakentaminen – työkalut vain mahdollistavat kehitystyön.

Cloud Engineer, pilviarkkitehdit ja pilvikonsultit

Pilviasiantuntijat, kuten pilviarkkitehdit ja Cloud Engineerit, keskittyvät erilaisten pilvipalveluiden hyödyntämiseen. He asentavat pilviympäristöjä palvelun tarpeiden mukaan, suunnittelevat, miten sovelluksia ajetaan pilvessä, ja optimoivat palveluiden käyttöä. Suuret pilvipalvelut tarjoavat laajan valikoiman ratkaisuja erilaisiin tarpeisiin. Pilviasiantuntijan tehtävänä onkin arvioida yrityksen vaatimukset ja valita niiden pohjalta sopivimmat vaihtoehdot ottaen huomioon myös budjetin, tietoturvakysymykset, toimittajaan sitoutumisen ja ohjelmiston kypsyyden.

Alla olevassa taulukossa on esitelty tarkemmin näiden roolien vastuut ja tehtävien erot.

 

DevOps Engineer

Cloud Engineer

Luo ohjelmistokehityksen ja julkaisuprosessin käytännöt

Arvioi palvelun ja liiketoiminnan tarpeet pilven käyttöönoton yhteydessä

Määrittelee ja luo CI/CD-putket

Suunnittelee ja luo pilviarkkitehtuurin

Korjaa virheet ja ongelmat CI/CD-putkissa

Korjaa virheet ja ongelmat pilvessä

Sparraa ja valmentaa kehittäjiä DevOps- ja SRE-käytännöissä

Perehdyttää kehittäjät projektissa käytettyihin pilvipalveluihin

Suunnittelee hälytys- ja havainnointikäytännöt

Implementoi hälytys- ja havainnointikäytännöt

Arvioi tietoturvakäytännöt

Toteuttaa tietoturvakäytäntöjen määritykset

Menetelmien omaksuminen – kuinka hyödyntää DevOpsia ja luoda ketteryyttä prosesseihin?

Pilveen siirtyminen ei automaattisesti tarkoita sitä, että yrityksesi tai projektisi hyödyntäisi DevOps-käytäntöjä. On täysin mahdollista toimia vesiputousmallilla tai siiloissa, vaikka ohjelmiston arkkitehtuuri koostuisi uusimmista pilviteknologioista. Vastaavasti voit omaksua DevOpsin ajattelutavan ja toimia ketterästi, vaikka ohjelmistosi pyörisi paikallisessa ympäristössä. DevOps-kulttuuri ja ketterät menetelmät sopivatkin erilaisiin tiimeihin ja yrityksiin – ei ole yhtä ainoaa mallia, jota pitäisi noudattaa.

Cloud Engineerit ja DevOpsit toimivat erinomaisesti yhdessä. Julkisten pilvipalvelujen tarjoajat, kuten Google, tarjoavat laajan valikoiman pilvipalveluja, joihin sisältyy hallinta ja tuki (managed cloud services). Näillä palveluilla voi toteuttaa DevOpsin menetelmiä samalla kun saa luotettavan, skaalautuvan ja budjettiin sopivan arkkitehtuurin. Pilvityökalut auttavat rakentamaan ohjelmistolle kustannustehokkaan, kehittäjäystävällisen ja nopean julkaisuprosessin. Prosessiin vaikuttaa luonnollisesti myös yrityksen tarpeet, koko, digikypsyys, ohjelmiston laajuus, loppuasiakkaat ja monet muut tekijät. 

Esimerkiksi Google Cloudissa voidaan rakentaa kustannustehokas pilviratkaisu DevOpsin parhaiden käytäntöjen mukaan. Kontitetut sovellukset voi rakentaa Cloud Buildilla, tallentaa Docker-konttikuvat Artifact Registryyn ja tarkistaa niiden tietoturvan, sekä lopuksi tarjota sovelluksen käyttäjille Cloud Runin avulla. Palvelut integroituvat toisiinsa saumattomasti, joten työnkulun orkestrointiin kuluvasta ajasta ei tarvitse huolehtia. Google Cloud hyödyntää tunnistautumisessa palvelutilejä, joten tietoturvan näkökulmasta ei tarvitse hallita SSH-yhteyksistä tai erillisiä sovellusavaimia, jotka usein tuovat hankaluuksia kehitysprosessiin.

Mistä aloittaa?

DevOps-menetelmien omaksuminen saattaa aluksi tuntua vaikealta ja isolta tehtävältä. Kannattaa kuitenkin aloittaa pienestä. Tämä onkin tyypillinen tapa toimia DevOpsissa – aloita pienillä askeleilla, testaa, kokeile ja säädä.

Fraktiolla autamme asiakkaita sekä DevOpsissa että pilvipalveluiden hyödyntämisessä. Suosimme (ja rakastamme) julkista pilveä ja keskitymme erityisesti kolmeen merkittävimpään pilvipalveluntarjoajaan (Big 3 eli AWS, Azure, GCP). Ymmärrämme DevOpsin tärkeyden toimivissa tiimissä ja edistämme DevOps-kulttuuria mielellämme tiimeissämme ja asiakkaidemme organisaatioissa. 

Pilvisertifioidut konsulttimme auttavat yrityksiä projektin alusta loppuun tai hyppäävät mukaan tarpeen tullen. Suunnittelemme ja rakennamme arkkitehtuurin, kehitämme julkaisuprosesseja, rakennamme CI/CD-putkia, valmennamme kehitystiimejä parhaissa DevOps-käytännöissä ja hoidamme palvelun julkaisun sekä pidämme sen terveenä. 

Olipa kyseessä uuden tuotteen greenfield-projekti tai vanhan monoliitin siirtäminen pilveen, autamme valitsemaan aina tarpeisiin, tavoitteisiin ja ohjelmistoon sopivat ratkaisut.