juggler-1216853_640.jpg

Omstrukturering av kodebasen gav ny giv i løsningen - Klarna

2020-11-20 | Skrevet av Gunn Severinsen

Med en tydelig økning i kompleksitet og teknisk gjeld så Klarna AB et behov for å endre et mønster. Ved omstrukturering av kodebasen, raskere deployment og automatiserte tester klarte de å snu trenden. Siden har det vært lettere å legge til features og drive vedlikehold.

on_the_top.jpg
Foto: Squeed

Klarna Bank er et av Europas største fintech selskaper og tilbyr betalingsløsninger til 85 millioner konsumenter over store deler av verden. De har også en banklisens, og selv om de ikke er en fullservice bank, tilbyr de en rekke ulike betalingsløsninger for handel på internett:

  • Klarna Checkout (KCO) - Løsningen er en komplett service for å utstede et kjøp online, og innebærer alt fra adresse innsamling, leveringsmuligheter, handlevogn, ulike betalingsalternativ til og med juridiske dokumenter. Denne løsningen omsetter for milliardbeløp i uken og er den mest populære betalingsløsningen. 
  • Klarna Payments (KP) - en betalingsløsning som separat produkt der du kan legge til betalingsløsninger i din kasse. Brukeren  velger selv hvilke betalingsmetoder som er øsnkelig. Klarna leverer hele betalingsløsningen og løsningen kan integreres mot andre løsninger, både mot klarnas andre løsninger og mot konkurrenter.
  • Klarna Faktura (KPM) - I likhet med Klarna Payments er nettbutikken ansvarlig for å samle inn all nødvendig informasjon, og etter kjøpet sender Klarna en faktura til kunden via e-post.
  • Klarna Mobil

Klarna Checkout leveres som et komplett produkt, som håndterer hele kjøpe flyten i nettbutikken. Dette bidrar til at butikken kan fokusere på å optimalisere produkt og butikk i stedet for selve utstede kjøpet. Klarna på sin side bruker mye tid på å optimalisere flyten for kjøp, derav optimalisere KCO til å gjøre det enklest mulig for både nettbutikk og kunde. 

Kontinuerlig arbeid drives mot å gjøre KCO bedre og Squeed var med på å forbedre løsningen i perioden 2017-2019. I tillegg var Squeed bidragsyter på Klarna payment og mobilapplikasjon. 

Da Squeed ble hentet inn, hadde Klarna opparbeidet seg en del teknisk gjeld, og forbedringer ved hjelp av robustifisering av koden var derfor noe av det første som ble gjennomført. Kodebasen ble redusert til en 25% del av den opprinnelige størrelsen, som følge av en modularisering og simplifisering av koden. Tilhørende kode ble lagt til i moduler, noe som gjorde det lettere å gjennomføre tester og muliggjorde å kunne arbeide parallelt.

Dermed ble det lagt til rette for videreutvikling på en mer robust base enn tidligere. Det ble innført DevOps metodikk og forvaltet en CI/CD pipeline i AWS for å vedlikeholde og oppnå raskere deployment. 

 

Kort sagt 

Hva vi gjorde:

  • Robustifisering
  • Modularisering

Teknologier vi brukte:

  • Javascript
  • React
  • React Native
  • Node
  • AWS
  • Kafka