I 2015 skrev jeg min egen, personlige "Internett er en flopp"-artikkel. Den het "Derfor trenger du ikke betalingstjenesten Vipps", og handla om hvorfor jeg mente det var enklere å overføre penger i nettbanken enn å satse på Vipps.
Mye har skjedd siden den gang: Vipps har i praksis fått monopol på vennebetalinger, og tjenesten er på god vei til å bli dominerende også på betaling og identifikasjon på norske nettbutikker og tjenester.
Slik bygger de Vipps
Med 3,8 millioner unike brukere per måned bare på netthandel, 40 nye butikker som implementerer Vipps-betaling hver arbeidsdag og 57 millioner innlogginger i 2021 er ikke drift og videreutvikling av tjenesten noen lek, men de har egne folk på saken: Cloud Platform-avdelingen.
- Vår oppgave i Vipps er å gjøre hverdagen enklere for egne utviklere. Ved å være på lag med de ulike produktteamene, legger vi til rette for smidig utvikling og deployment til vårt Azure cloud-native kjøremiljø, forteller avdelingsleder Sven Malvik og plattformutvikler Kaja Hannestad til kode24.
Vi tok en prat med de to til vår serie Slik Drifter Vi om hvordan de sørger for at utviklerne får ut nye Vipps-funksjoner - og hvordan funksjonene alltid er tilgjengelige for de mange millionene som bruker dem.
- Hva er det mest unike med driftsbehovene deres? ✌
- Vi jobber mot å ha “immutable” infrastruktur (som ikke kan endres) ved å blant annet benytte Azure Managed Services for mest mulig funksjonalitet «out of the box».
- Ved å sette høye krav til både oss selv og Azure, og gjøre smarte valg, klarer vi å levere sikker drift av en plattform som mange har glede av.
- Hvor hostes og driftes det dere bygger i dag? 📦
- Vi benytter Azure, da vi har meget kompetente medarbeidere på dette. Det å benytte kun én leverandør på infrastruktur, har gitt oss muligheten til å bygge opp et sterkt fagmiljø internt. Av de som jobber med infrastruktur i Vipps, har de fleste enten Azure MVP eller høye sertifiseringer innenfor sitt arbeidsområde.
- En sterk delingskultur internt hos oss og med fagmiljøet utenfor Vipps sikrer også at vi hele tiden utvikler oss. Det gir oss et godt grunnlag for å bygge en robust plattform med høy tilgjengelighet.
- Hvordan håndterer dere deploy til serverene? 🚗
- Pipelines og maler i Azure DevOps gir utviklerne muligheten til å fokusere på det de er gode på og ikke hvordan de deployer. Forenkling står i fokus for oss, både når det kommer til arkitektur og brukeropplevelse.
Sånn lærte Vipps-utviklerne Azure
- Hva bruker dere til å holde oversikt over drift? 📈
- Av verktøy bruker vi Splunk for å overvåke systemloggene i Vipps. Hver dag flytter vi store datamengder med systemlogger ut av Vipps og inn i Splunk.
- Systemloggene blir ofte store og kostbare, derfor bruker vi Grafana for metrikker. Metrikkene kan være custom metrikker, som antall brukere, eller system metrikker som CPU og minnebruk.
- Det viktigste vi gjør for å holde oversikt er å holde arkitekturen enkel. I Vipps har vi klart det og har ingen fysisk infrastruktur vi drifter selv.
- Hvordan håndterer dere caching? 💾
- Vårt hovedfokus er stabilitet og tilgjengelighet. Dette får vi gjennom Azure Availability Zones og utstrakt bruk av globalt tilgjengelige tjenester som er håndtert av Azure.
- Hva bruker dere til domener og DNS? 📚
- Vi benytter Azure DNS med Terraform på toppen for å automatisere endringer for DNS soner. Dette gjorde at vi helautomatiserte DNS endringer med Azure Pipelines og code reviews.
- Hva er det mest krevende når det kommer til drift hos dere? 😅
- Vi ønsker mest mulig autonomi i produkt-teamene, og at de tar fullt eierskap til sine tjenester. Utfordringen fra et driftsperspektiv er å legge godt nok til rette for teamene, og gi dem de riktige verktøyene som gjør det enkelt å bruke vår felles kjøre plattform i Azure.
- Balansen mellom fornying og stabilitet er også en hårfin linje vi hele tiden har i bakhodet.
Sånn takler Geodata 100.000 forespørsler i minuttet med Kubernetes
- Hva bruker dere mest tid på i hverdagen, når det kommer til drift? ⏰
- Det absolutt mest tidkrevende er å sikre stabilitet og sikkerhet på plattformen. Alt skal fungere til enhver tid, samtidig som vi vedlikeholder Infrastructure as Code, kjører oppgraderinger og tester ut ny funksjonalitet eller nye tjenester som kan enten forbedre eller forenkle.
- Hva er dere mest fornøyd med å ha gjennomført i forbindelse med drift det siste året? 💪
- Vi har jobbet veldig mye med infrastruktur som kode med Bicep, som er Azure sin nye måte å definere infrastruktur på. Når teamene trenger en ny database eller storage, så tar de i bruk våre Bicep templates, slik at alle i hele Vipps-organisasjonen definerer sine Azure-komponenter på lik måte.
- Hva har dere lyst til å teste eller bytte ut fremover? 💸
- Det skjer mye spennende innenfor Azure som vi har lyst å se nærmere på, og som forbedrer eller forenkler utvikleropplevelsen.
- Ett eksempel er Azure Chaos Studio som muligens kan hjelpe oss med å identifisere svakpunker i vårt kjøremiljø i en tidligere fase enn i dag.
- En annen ny tjeneste i Azure som vi vil gjerne se på etter hvert er Container Apps som muligens fjerner noe av kompleksiteten rundt Azure Kubernetes Service.