Re:invent: Mathem har blivit AWS-veteraner

Mathem lastbil
Mathem kör stora delar av driften i AWS. (Foto: Mathem)

Det var en gång en mataffär som levererade sina varor direkt hem till kunderna efter att de lagt en beställning på nätet. Till en början fungerade allt bra, men allt eftersom företaget växte uppstod allt fler problem med ett tungrott system på egna servrar.

Historien om hur Mathem gått från egen drift av sina system till molnet och AWS har berättats ett par gånger tidigare och är vid det här laget knappast en nyhet. Deras eget .Net-bygge på egna servrar blev allt mer tungrott och svårhanterat allt eftersom verksamheten växte. Att skala upp verksamheten blev allt svårare, vilket ledde till ett stundtals instabilt system.

-  På den tiden var vi tvungna att sitta och vakta sajten manuellt om vi hade fler än 200 besökare, berättar Lars Jacobsson som är Head of Infrastructure på Mathem.

Under årets Re:Invent slog vi oss ner med honom och Mathems CTO, Daniel Forsman för att prata lite om utvecklingen.

Mathem Lars Jacobsson Head of Infrastructure Daniel Forsman CTO

Mathems Lars Jacobsson, Head of Infrastructure och Daniel Forsman, CTO (Image credit: Daniel Hessel)

Kändes som ett nytt startup

För att snabba upp utvecklingen påbörjades ett arbete med att dela upp systemet via Docker under 2016. Kort därpå lanserade AWS sina serverless-tjänster och flytten gick vidare dit. I och med AWS micro services kunde systemet delas upp i många mindre bitar samtidigt som kapaciteten kunde anpassas efter antalet besökare.

- Det blev ett nytt sätt att leverera kod, berättar Lars Jacobsson. helt plötsligt kändes vi som ett nytt startup i hur vi kunde arbeta. Nu kan vi snabbt lansera nya funktioner för att utvärdera hur de fungerar och om de är värda att fortsätta med. 2015 gjorde vi ett försök med produktrekommendationer, som tog månader att utveckla och inte blev bra. Att testa liknande funktioner kan räknas i dagar numera.

Pandemin gav andra utmaningar

Med sina egna system i molnet kom som sagt fördelen att kunna skala upp kapaciteten vid behov. Däremot var inte alla delar av organisationen förberedda för de nya utmaningarna som kom 2020.

- I februari-mars 2020 när pandemin slog på riktigt och folk uppmanades stanna hemma trodde vi först att vi blivit DDoS:ade, säger Daniel Forsman. Alla skulle jobba hemma och beställa hem mat. Medan våra system klarade av ökningen på 800 procent som det innebar uppstod istället problem med den fysiska delen som leverans och lager. Det slutade med att vi fick släppa kapacitet i vågor, så på måndagen släppte vi alla kapacitet för onsdagen och så vidare. Normalt sett fyller vi vår kapacitet på sex till åtta timmar, under den perioden gick det på nittio sekunder som snabbast.

Nu när pandemin lagt sig och mycket är tillbaka till det normala har inte ökningen legat kvar på samma nivå däremot, även om det ökat.

- Det har sjunkit nu och det märkte vi ungefär vid dos tre av vaccineringen, fortsätter Daniel Forsman. Samtidigt har det varit en fasförskjutning åt det positiva hållet.

Maskininlärning ger hållbarhet

Som svar på den ökade omsättningen har ett av Mathems lager flyttat till nya lokaler i Larsboda (Öppnas i ny flik) söder om Stockholm, som ska avhjälpa de mer fysiska begränsningarna av verksamheten. Lagret är halvautomatiserat och har utrustats med solceller på taket för att driva såväl kyl- och frysrum som laddstolpar. Utan att svära på det gissar de båda att det är Stockholms största solcellsanläggning för det ändamålet idag.

- Vi vill samtidigt undvika så mycket svinn som det går, tillägger Daniel Forsman. Där har maskininlärning gjort vår forecasting betydligt bättre. Exempelvis gjorde en ny funktion för ett par månader sedan att vi kunde förbättra den med flera procentenheter. Det i kombination med att hela systemet kan skalas upp eller ner på millisekunder gör att vi kan spara en hel del energi. Testanläggningar står ju exempelvis still nattetid och drar de ingen ström med den här skalbarheten.

Nya tjänster till kunderna

Flytten till molnet med serverless och mikrotjänster har som sagt ökat produktiviteten hos Mathem. Men blir det inte rörigt med det upplägget? Och vad har det rent praktiskt lett till för fördelar för konsumenten?

- När jag kom in kändes det lite överväldigande och det är en liten utmaning med observabilitet, berättar Daniel Forsman. Men där handlar utmaningen mer om att moderera, att sätta larm till rätt ställen och team och att få ut rätt information till rätt team.

- För utvecklarna är det fantastiskt bra, fortsätter Lars Jacobsson. Arbetssättet gör det enkelt att splitta ner olika team till specifika arbetsuppgifter. Numera kan vi ha flera team som jobbar parallellt, vilket inte gick tidigare. Innan körde vi releaser varannan vecka på schema, numera känns det konstigt om det inte kommer flera per dag.

- Det har också gjort att vi snabbt kan utveckla nya idéer och även A/B-testa i större utsträckning, säger Daniel Forsman. Ett exempel på nya funktioner är gratis frakt. Vi har satt den gränsen till 700 kronor, vilket funkar bra om du veckohandlar. Men kommer du på senare i veckan att du behöver fylla på kan kunden göra det och fortfarande befinna sig ovanför gratis frakt-spärren.

I våras lanserades även Mathem express, som vill vara lite mer som närbutiken på hörnet än den stora mataffären, något som också tillkommit på kort tid.

- Vi började med den delen i oktober förra året och kunde lansera i mars, fortsätter han. Det hade vi inte kunnat göra på den tiden innan.

Nyheter kommer till nytta

När beslutet togs att gå över till AWS upplevde de att det inte fanns någon annan leverantör med samma uppsättning tjänster, även om allt inte var där från början.

- AWS var ganska sena in på maskininlärning, menar Lars Jacobsson. Men det har de absolut kommit ikapp nu. Numera skulle vi säkert kunna bygga ett liknande system på Azure eller Google Cloud också, men samtidigt är samarbetet med AWS en nyckel här. Där upplever vi att de verkligen lyssnar och att vi snabbt får svar på eventuella frågor. Vissa funktioner som lanseras här på Re:Invent är samtidigt sådant vi har varit med och fått ge feedback på under utvecklingen, vilket känns hyfsat unikt. Samtidigt känns det välkommet, men ganska paradoxalt, att de jobbar tillsammans med oss för att sänka våra kostnader hos dem.

Även de tjänster som lanseras i år som Mathem inte haft ett finger med i spelet på verkar lockande.

- Lambda Snapstart verkar superintressant, fortsätter Lars Jacobsson. Just nu passar det inte riktigt vår modell, men det låter som att det kommer till fler runtimes inom kort. Just .Net har annars haft problem med kallstarter, så det skulle verkligen vara till nytta.

Mer från AWS Re:Invent

Daniel Hessel
Editor Techradar Pro Norden & Techradar Sverige

Daniel Hessel har arbetat som teknikskribent i (snudd på) två årtionden för några av Sveriges största publikationer. Det finns knappt en pryl han inte testat eller skrivit om, oavsett det är hörlurar, mobiler, TV-apparater eller robotdinosaurier. På Techradar hittar du honom som Sverigeredaktör och Nordisk redaktör för Techradar Pro.