Ohjelmistokehittäjiltä odotetaan koko ohjelmistotoimitusketjun hallintaa, erityisesti DevOpsissa. Tämä voi johtaa kognitiiviseen ylikuormitukseen ja tuottavuuden heikkenemiseen.
Mario Di Francesco
Mario Di Francesco is a professor in software systems with the Department of Computer Science at Aalto University and a senior DevOps consultant at Eficode. He has more than 15 years of experience with network systems and software technologies, from wireless communications to mobile and distributed computing. He has also been teaching courses on cloud software and DevOps.
Menestyvät yritykset ratkaisevat tämän ongelman rakentamalla Internal Developer Platformin eli IDP:n, tai lyhyemmin alustan. Gartner arvioi, että vuoteen 2025 mennessä 95 % yrityksistä ei pysty skaalaamaan DevOps-hankkeitaan ilman Internal Developer Platformia.
Siksi aiheesta on hyvä ymmärtää ainakin perusteet. Juuri siksi kirjoitin tämän blogikirjoituksen.
Alla vastaan näihin kysymyksiin:
Mikä on Internal Developer Platform?
Millaista sen käyttäminen on kehittäjän näkökulmasta?
Miksi tarvitset sellaisen?
Tietoni perustuvat sekä aiheeseen liittyvään laajaan tutkimukseen että havaintoihin, joita olen saanut arvioidessani joidenkin asiakkaidemme DevOps-kyvykkyyksiä.
DevOps
DevOps on ohjelmistokehityksen toimintamalli, joka edistää automaatiota ja integraatiota ohjelmistokehityksen ja tuotannon välillä. Sen keskeinen ajatus on omaksua jakamisen kulttuuri ja purkaa kehittäjien sekä IT-ylläpitäjien välisiä siiloja. Teknisesti DevOps perustuu versionhallintaan, build-putkiin ja ohjelmistokontteja hyödyntävään Cloud Native -työkalukokonaisuuteen.
Mitä termi ”Internal Developer Platform” todella tarkoittaa
Näin laajasti käytetyksi termiksi Internal Developer Platform ei kuulosta kovin kuvaavalta. Otetaan siis askel taaksepäin ja käydään sen avainsanat läpi käänteisessä järjestyksessä selkeyden vuoksi, jotta ymmärrämme, mistä siinä on kyse.
”Alusta”
Tässä yhteydessä alusta tarkoittaa sekä infrastruktuuria että ohjelmistotyökalujen kokonaisuutta. Alustan tyypilliset toiminnot liittyvät ohjelmistotoimitusputken eri vaiheisiin:
resurssien käyttöönotto;
erilaisten testien toteuttaminen;
artefaktien käyttöönotto kohdeympäristöön.
Alustan käyttäjärajapintana toimii kehittäjäportaali.
Kaikki alustan osat ovat tiiviisti integroituja ja perustuvat Cloud Native -ohjelmistoissa tyypillisiin yhteisiin abstraktioihin: kontteihin, deklaratiiviseen konfiguraatioon ja ohjaussilmukoihin.
”Kehittäjä”
Kehittäjät ovat alustan loppukäyttäjiä. Keskeistä on itsepalvelu, sillä kehittäjät:
keskittyvät arvon tuottamiseen toteuttamalla uusia ominaisuuksia nopeasti ilman riippuvuutta IT:stä resurssien käyttöönotossa;
käyttävät malleja proof of conceptin tai minimum viable productin nopeaan luomiseen;
käyttävät dashboardia saadakseen yhtenäisen näkymän eri tietolähteisiin build-putken tuloksista käynnissä olevan palvelun tilaan.
”Sisäinen”
Tämä sana korostaa, että alusta on yrityskohtainen – aivan kuin mittatilauspuku.
Et voi yksinkertaisesti ostaa sitä valmiina tuotteena, vaan sinun on rakennettava ja ylläpidettävä se itse. Se perustuu yrityksesi käyttöön ottamiin prosesseihin, hallintaperiaatteisiin ja teknisiin ratkaisuihin. Lisäksi se määrittelee selkeästi niin kutsutut kultaiset polut eli "reseptit" asioiden rakentamiseen, mukaan lukien ohjeet, joiden avulla uudet kehittäjät pääsevät nopeasti alkuun.
Hienommin ilmaistuna Internal Developer Platform pyrkii antamaan kehittäjille paremmat edellytykset luoda arvoa valitsemalla ja integroimalla huolellisesti yrityksen sisäisiä käytäntöjä tukevia ohjelmistotyökaluja.
Platform Engineering
Termejä ”Internal Developer Platform” ja ”Platform Engineering” käytetään yleensä yhdessä, mutta ne eivät tarkoita samaa asiaa. Platform Engineering tarkoittaa Internal Developer Platformin perustamista ja ylläpitämistä erityisesti kulttuurin ja tiimivaikutusten näkökulmasta. Siihen kuuluvat muun muassa kehittäjien perehdytys, alustatiimin perustaminen ja sitoutumisen varmistaminen alustaan – niin kehittäjiltä kuin koko yritykseltäkin. Internal Developer Platform puolestaan viittaa tyypillisemmin vain teknisiin näkökohtiin: valittuun työkalukokonaisuuteen ja työkalujen varsinaiseen integrointiin alustalle.
Millaista Internal Developer Platformin käyttö on: lyhyt esimerkki
Tähän mennessä lienee selvää, että alusta on ennen kaikkea kehittäjiä varten. Mutta millainen heidän kokemuksensa alustasta on käytännössä? Havainnollistetaan asiaa Amandan kokemuksen avulla.
Amanda on juuri aloittanut työnsä yrityksessä. Osana perehdytystä hän saa käyttöoikeuden yrityksen Internal Developer Platformiin. Alustalle kirjautuessaan hän näkee hallintapaneelin, jossa on tiiviit ohjeet alkuun pääsemiseksi.
Hän aloittaa tutustumalla ohjelmistoluetteloon, joka kertoo:
mitä komponentteja yrityksessä on saatavilla;
komponenttien kypsyystason – osa on tuotantokäytössä, toiset proof-of-concept-toteutuksia;
miten ne liittyvät toisiinsa.
Seuraavaksi hän siirtyy ohjelmistomallien osioon, joka tarjoaa ohjatun käyttöliittymän erilaisten projektien käynnistämiseen.
Amandalla on aiempaa kokemusta backend-kehityksestä, joten hän valitsee mallin Python-ohjelmointikielellä toteutettavan mikropalvelun luomiseen. Hän antaa komponentille nimen ja painaa luontipainiketta. Muutaman minuutin kuluttua Amanda saa käyttöönsä juuri luodun ohjelmistorepositorion, jossa on esimerkkimikropalvelu.
Alusta:
hakee lähdekoodin;
luo testausinfrastruktuurin;
kääntää ohjelmiston;
ajaa yksikkötestit;
ottaa mikropalvelun käyttöön.
Amanda näkee build-putken tuloksen ja uuden komponentin saatavuuden suoraan hallintapaneelista.
Seuraavaksi hän alkaa tarkastella ohjelmistorepositorion sisältöä. Mikropalvelu hyödyntää FastAPI-kehystä ohjelmointirajapinnan luomiseen. FastAPI on hänelle uusi, mutta lähdekoodissa on linkki alustan hallintapaneelissa saatavilla oleviin ohjeisiin.
Amanda alkaa lukea ohjeita ja onnistuu lisäämään ominaisuuksia esimerkkimikropalveluun jo ennen ensimmäisen työviikkonsa päättymistä. Ohjeet eivät ole vain selittäviä, vaan myös innostavia, joten Amanda haluaa oppia lisää siitä, miten yrityksessä kehitetään ohjelmistoja.
Alusta auttoi Amandaa saavuttamaan vahvan itsenäisyyden ja onnistumisen tunteen parantamalla sekä hänen osaamistaan että tuottavuuttaan. Useiden kuukausien jälkeenkin hän käyttää alustan hallintapaneelia päivittäin ja on jopa luonut uusia malleja ja ohjeita.
Miksi tarvitset Internal Developer Platformin
On selvää, että Developer Experiencen parantaminen on Internal Developer Platformin tärkein tavoite. Hyödyt eivät kuitenkaan rajoitu vain kehittäjiin.
Pidä työntekijäsi tyytyväisinä
Työntekijöiden tyytyväisyys on menestyvien yritysten ytimessä: se auttaa houkuttelemaan osaavaa työvoimaa, vähentämään vaihtuvuutta ja parantamaan tuottavuutta.
Onnistunut alusta on avoin ja ystävällinen ympäristö, joka tarjoaa kontekstia ohjelmistoprojektien tutkimiseen ja tukee niiden käynnistämistä ja niihin osallistumista. Se mahdollistaa myös turvallisen kokeilun laadusta tinkimättä.
Tee teknologiasta helpompaa
Teknisestä näkökulmasta alusta tarjoaa tarkoin valitun joukon toiminnallisuuksia huolellisesti integroidun työkalukokonaisuuden kautta, joka kattaa koko ohjelmistotoimituksen putken.
Tämä auttaa hallitsemaan työkalujen monimutkaisuutta ja useiden erilaisten ohjelmistotuotteiden ylläpidon aiheuttamaa kuormaa. Se myös vähentää kognitiivista kuormitusta tarjoamalla yhtenäisen ja tuetun palvelukokonaisuuden. Näin voit vähentää ylimääräistä työtä ja antaa kehittäjien keskittyä olennaiseen: asiakasarvon tuottamiseen.
Tarjoa itsepalvelua
Alusta kokoaa arkkitehtuuri- ja tekniset valinnat kehittäjäystävälliseen muotoon. Siksi kehittäjien on helpompi ottaa käyttöön koko yritystä koskevia parhaita käytäntöjä. Itsepalvelun avulla alusta myös vahvistaa luottamusta ja helpottaa kaikkia noudattamaan ohjaavia periaatteita ja vaatimustenmukaisuutta.
Säilytä hallinta
Alusta ehkäisee myös pirstaloitumista ja omien työkalujen tuomiseen perustuvaa ajattelutapaa. Näin voit sujuvoittaa käyttöoikeuksien hallintaa, tietoturvatarkistuksia ja monitorointia. Kaikki tämä onnistuu häiritsemättä kehittäjän työnkulkua juuri lainkaan.
Sisäinen kehittäjäalusta optimoi siis asiakasarvon nopeaa toimittamista. Se keskittyy Developer Experienceen ja varmistaa samalla tietoturvan ja vaatimustenmukaisuuden.
Alusta on yrityksesi työnteon perusta. Se noudattaa arvojasi ja hallintamalliasi, mutta on riittävän joustava mukautuakseen muuttuviin ympäristöihin. Se valvoo ohjelmistotoimituksen putkea, sujuvoittaa siihen liittyviä prosesseja ja mahdollistaa samalla DevOpsin skaalautumisen.
Yhteenveto
Sinulla pitäisi nyt olla selkeämpi käsitys siitä, mikä sisäinen kehittäjäalusta on, mitä se tekee ja miksi sitä tarvitaan. Tavoitteeni oli antaa lyhyt johdanto aiheeseen ja tuoda esiin sen DevOpsille tarjoama arvo erityisesti Developer Experiencen näkökulmasta. Onnistuneen alustan rakentaminen ei kuitenkaan ole helppoa. Matka on pitkä, mutta nyt on juuri oikea aika aloittaa.
- DevOps
- Cloud
- CI/CD
Subscribe to our newsletter
Related blogs