I den spede begynnelsen, da mennesket først vandret jordkloden på jakt etter ferskt kjøtt, var jeg heldigvis langt fra tiltenkt.
Men, om jeg levde i den tiden, ville jeg nok helst vært en hulemaler. Typen som risser inn ganske utydelige skisser av bøfler og strekmennesker som hiver spyd rundt i alle retninger, og kanskje har et lite leirbål og noen tipier å bo i.
Men huleboersamfunnet rundt meg ville nok ikke vært fornøyd med en så enkel stillingsbeskrivelse. Neida, de hadde nok krevd at jeg skulle være en fullstack-hulemaler.
Mener norske utviklere må kunne enda mer for å lykkes i 2020
En som både kan speide etter huler, tilberede maling og gnisse-steiner som funker på vegg, og i tillegg vedlikeholde et hav av malerier av forskjellige typer i ymse grotter. Alt det som en veggmaler helst vil ta for gitt.
Nå er jeg jo riktignok glad for at jeg ikke er en huleboer, spesielt siden skinn og pels ikke er mine foretrukne klesmaterialer, også siden jeg foretrekker å lage nettsider, ikke hulemalerier.
Huleboeren hadde nok kanskje trivdes bedre som nettsidesnekker i 2020. For selv om man i 2020 også blir presset inn i fullstack-rollen, har tjenester som Heroku, Netlify og Zeit gjort det til levebrødet sitt å skjule alt oppsettet og konfigureringen som foregår bak teppet.
For har jeg egentlig lov til å kalle meg en fullstack-utvikler om jeg ikke forstår bæret av hvordan den moderne webben egentlig driftes?
Ingenting får meg nemlig til å føle mer på impostor-syndromet enn når jeg skal begi meg ut i ulendt farvann om drift, slik som da jeg skulle flytte over en kode24-tjeneste fra Heroku her om dagen.
«Problemet er bare at jeg ikke aner hvordan jeg bruker noen av dem, ei heller hvordan de henger sammen.»
Frykten for vårt eget oppsett
Det er ikke det at jeg ikke liker Heroku. Tvert i mot, jeg var bare blitt ekstremt lei av å sende inn utlegg for godkjenning hver måned.
- Imposter syndrome kan være vanskelig
Heroku er nemlig en tjeneste vi bruker i kode24 på eget initiativ, fordi den er lett å bruke: Du gir dem koden din, de får den til å kjøre på nettet, på magisk vis.
Det var nettopp derfor jeg kviet meg for å flytte den lille mikrotjenesten min for utlisting av Patreon-medlemmer over til Aller Media sitt interne web-serveroppsett.
Aller Media har nemlig sin egen skreddersydde greie, bygd fra skratch. På vår interne Slack får jeg stadig vekk høre om teknologiene i oppsettet. Problemet er bare at jeg ikke aner hvordan jeg bruker noen av dem, ei heller hvordan de henger sammen.
Heroku og Netlify bruker sikkert de samme underliggende tjenestene de og, men de ser jo aldri jeg noe til.
Devops på Slack
Mitt forhold til webutvikling i 2020 er litt det samme som underbukse-gnomene i den Southpark-episoden har.
Planen min for alt jeg lager er nemlig:
- Jeg lager en nett-tjeneste som kjører lokalt.
- ???
- Jeg har en kul nett-tjeneste som kjører på nettet.
Derfor var det en gudegave da Heroku og Netlify kom, og gjorde skritt 2 i planen min gjennomførbart. Men uten dem, står jeg på bar bakke.
Nå bør alle utviklere være fullstack
Heldigvis er det folk på jobben som har litt mer interesse for driftsoppsett enn meg. De kaller seg devops, og er tilgjengelig på Slack. Takk gud for det.
Jeg blir instruert om å kopiere over et standardoppsett for Kubernetes og CircleCI fra et såkalt skjelett-repository til mitt kode-repo - to mapper med konfigurasjonsfiler. Deretter må jeg registrere appen min i CircleCI. CircleCI skal nemlig bygge appen min, blir jeg fortalt.
- Det føles ikke så fryktelig langt unna slik jeg gjør det i Heroku, tenker jeg.
I ett sekund er jeg henrykt over hvor lekende lett det går. Men, så kommer utfordringene.
«Flott, enda en tjeneste jeg ikke aner hvordan funker.»
Fuckings Google Cloud
Det lyser grønt i CircleCI, men URL-en nett-tjenesten min skal dukke opp på er tom. Jeg spør om hjelp på Slack igjen, og får beskjed om at jeg må inn i en av konfigurasjonsfilene jeg har fått, og øke minnet.
Jeg bygger på nytt, men fortsatt er det ingenting på URL-en.
- Du må du øke CPU, så bør du stille ned antall replicas, og så må du inn i Google Cloud og sjekke om alt kjører, er svaret jeg får på Slack.
- Jaha, tenker jeg.
- Jeg var ikke en gang klar over at jeg kunne gjøre det, og at appen min befant seg i Google Cloud.
Derfor velger Sanity Google for det meste
Heroku spør meg aldri om minne, og forteller meg ikke hvor filene mine befinner seg. De bare bor et sted på Heroku.
Har du forresten vært i Google Cloud før, kjære leser? For en ny bruker som meg, føles det som å gå i fjerdeklasse og få utdelt matteboka for 2MX på VK2.
Overalt er det uforståelige ord, tekst i øst og vest, knapper som lyser rødt og grønt og informasjonsbokser som advarer om uforståelige ting.
- Fuckings Google Cloud, tenker jeg, og vender tilbake til Slack for tredje gang.
- Den fullstack-greia i tittelen min kan strykes ut, mumler jeg til meg selv.
Devops-eren deler tydeligvis ikke frustrasjonen min.
- Du må bare stille inn riktig port i deployment.yml som Kubernetes bruker, svarer devops-eren med den største selvfølgelighet.
- Hæ? Hvordan ser du det?, spør jeg tilbake.
- Åja, jeg har kanskje tilgang til en logg du ikke har. Men du kan lese den her, forteller han, og gir meg en lenke til enda en tjeneste: Kibana.
Jeg pusher ut en oppdatering til YML-fila, som jeg ikke har noe anelse om hva står for, og får beskjed fra devops-eren om at "alt er satt opp i Varnish".
- Flott, enda en tjeneste jeg ikke aner hvordan funker, tenker jeg, men den skal visstnok ta seg av caching og mye annet rart, ifølge devopseren.
- Jeg har lært at det ikke er så skummelt å be om hjelp
Det virker!
Heldigvis for meg lyser det nå plutselig grønt i Google Cloud. Og jaggu meg er ikke tjenesten oppe og kjører på URL-en, uten at jeg måtte sette meg inn i Kibana.
- Tusen takk! skriver jeg henrykt til devops-eren, som har holdt meg i hånden i et par timer.
Uten at han virker spesielt forbauset over at oppsettet faktisk fungerte.
Der jeg vanligvis er innom én knapp i Heroku, har jeg på få timer vært innom CircleCI, YML-konfigfiler for Kubernetes, Varnish og Google Cloud. Uten å helt forstå noen av dem.
Jeg tror nok dessverre jeg må falle til ro med at for meg stopper fullstack ved å kunne trykke seg gjennom Netlify og Heroku, og spørre en devopser om alt utenom.
Så jeg tror jeg beholder tittelen, selv om jeg ikke forstår hverken CircleCI, Kubernetes eller Google Cloud. Får bare håpe arbeidsgiveren min mener det samme.
Mener devops bør være en kultur - ikke bare folk
- Hvis løsningen din er «devops-ere», er sjansen liten for at du henter ut det beste devops har å by på, mener Christian Johansen.