Tar oppgjør med plattformene: - Må gjøre det enklere for utviklerne!

- "Vi driter i sikkerhet, vi vil bare få ut ting". Hvis du ender opp der, er det noe systematisk feil, mener Roberth Strand.

- Vi skal lage plattformtjenester som har nytteverdi for sluttbrukeren, ikke diktere hva de kan eller ikke kan gjøre, mener Roberth Strand. 📸: Mattis Vaaland
- Vi skal lage plattformtjenester som har nytteverdi for sluttbrukeren, ikke diktere hva de kan eller ikke kan gjøre, mener Roberth Strand. 📸: Mattis Vaaland Vis mer

- I dag opplever mange at hvis noe skal ut i produksjon, så må du få godkjennelse fra en person som aldri har programmert noe i hele sitt liv. Det gir ikke mening, sier Roberth Strand, "principal cloud engineer" i Amesto Fortytwo, til kode24.

Denne uka holdt Strand foredrag om hvordan man kan oppnå "secured by default", uten å hindre innovasjon, på Sikkerhetsfestivalen i Lillehammer.

Han mener at én av nøklene til å lage gode plattformer, er å innse at den aldri blir perfekt - og innse viktigheten av kultur.

Skal ikke diktere brukeren

Strand har selv erfaring fra det som før ble kalt for Cloud Operations eller tradisjonelle plattform-team.

- Jeg har opplevd hele det silobaserte systemet, der folk sitter på hver sin haug og kaster småstein på hverandre. Dette henger fremdeles litt igjen, sier han.

Ifølge Strand er tanken at "platform engineering" er et steg bort fra dette.

- Vi må få et produkt-mindset på plattformtjenester. Vi skal lage plattformtjenester som har nytteverdi for sluttbrukeren, ikke diktere hva de kan eller ikke kan gjøre. Og vi må være mer åpne for å samarbeide. Det er en konkretisering på bedriftssiden av hva DevOps egentlig betyr. For DevOps er jo noe som alle skal holde på med, sier han.

«Det viktigste er å kunne snakke sammen og ha en åpen diskusjon om hvordan man gjør ting. Ikke ha lukkede private samtaler.»

Viktig med åpen diskusjon

Strand mener at "plattform engineering" i bunn og grunn handler om hvordan driftspersonell kan hjelpe å bygge en samarbeidskultur, der folk bruker de samme verktøyene for å få en felles forståelse om hva en holder på med.

- Vi må sikre at folk har en trivelig plass å kjøre koden sin, som forenkler sikkerheten. Samtidig som det ikke hindrer å kjøre ut i produksjon seks ganger daglig.

Han mener det er viktig for utviklere av plattformen å være åpne for å få tilbakemelding på hva som funker og ikke funker.

- Det viktigste er å kunne snakke sammen og ha en åpen diskusjon om hvordan man gjør ting. Ikke ha lukkede private samtaler.

Forbedrer sikkerheten

- Hvordan kan dette hjelpe til å bedre sikkerheten?

- Med å lage en plattform som forenkler prosessen for utviklere, så vil de også ikke trenge direkte tilgang på ressurser, eller for mye tilgang.

Han legger til at utviklere ikke kan ta omveier rundt systemene, og at de heller ikke skal ha behov for å finne omveier.

Ifølge Strand finnes det to ytterpunkter innenfor hvordan produksjonslinja blir organisert.

- Du har paranoid tyrann-måten, der alt må gå via visse personer, hvis ikke går alt til helvete. Ellers så har du det motsatte: Hippien som mener at alt går greit. Begge måtene fungerer veldig dårlig.

Strand legger til at du ikke kan kaste ting ut i produksjon uten noen form for testing.

- Du er nødt til å ha noen rammer. Det er noe vi plattform-folk forsøker å sette søkelys på. Vi dikterer ikke kodingen, men bryr oss om testene sånn at det kommer tilbakemeldinger. Det handler om å ha en slagplan, sånn at du gjør en bedre jobb. En kontainer som ble bygget i går, er ikke nødvendigvis sikker i dag. Sårbarheter blir funnet konstant.

«Jobber du med noe som går over nettverk, er det fordelaktig å lære seg litt om nettverk.»

Utvikler har for mye å tenke på

Strand trekker fram at utviklere har gått fra å være noen som jobber med noe veldig konkret og spesifikt, til plutselig å få mer og mer ting å gjøre.

- Man er ikke bare lenger en fullstack-utvikler som må kjøre en full programmerings-stack. Man skal også plutselig drive med automatisering, infrastruktur, sikkerhet og datalagring. Så må de sjonglere mellom alt dette.

Han mener at det er dette som gjør at utviklere ender opp med å tenke:

- "Vi driter i det, vi vil bare få ut ting". Hvis du ender opp å bli en sånn utvikler, er det noe systematisk feil der du jobber. Hvis du får en rød test tilbake i en pipeline, burde det være en mulighet for å ha en lettere oppgave for å finne ut hva du må gjøre.

"Plattformen blir aldri perfekt"

Strand mener også det er viktig at noen har et overordnet ansvar, et slags felles samlingspunkt som samler konklusjonene og passer på at folk er involvert i utviklingen av plattformen.

- Det må være en form for styringsprinsipp og man må være åpen om at plattformen aldri blir perfekt.

Ifølge Strand burde alle lære seg litt om hva som foregår i de ulike leirene.

- Du trenger ikke være ekspert. Men jobber du med noe som går over nettverk, er det fordelaktig å lære seg litt om nettverk. Jobber du med noe som kjører på Kubernetes, bør du lære deg basisen om hvordan det henger sammen. Så når du snakker om dem som faktisk gjør det tunge løftet for deg, så har du en forståelse for hva de går igjennom.