Microservices som fremtidens software-arkitektur?

Microservices vinder i højere grad frem som fremtidens svar på moderne softwarearkitektur. Men hvad er microservices egentlig? Hvordan adskiller de sig fra monolitter? Og hvad er fordelene? Få svarene i dette blogindlæg, der er skrevet med afsæt i AWS re:Invent 2019, der finder sted i Las Vegas fra den 2. til den 6. december, altså lige nu.

AWS_logo

Derfor er vi til AWS re:Invent

I Danmark er vi kendt for at være begejstrede for Microsoft. Derfor er det heller ikke en overraskelse, at Microsoft Azure ligger solidt på cloud-markedet i Danmark, hvor de besidder hele 60 % af cloudløsningerne. På anden pladsen ligger AWS med kun 6 % af det danske marked (Computerworld.dk). Men på verdensplan er situationen en anden. Her dominerer AWS (RightScale 2019 State of the Cloud, Flexera). Derfor er der god grund til at følge med udviklingen og deltage i årets AWS re:Invent i Las Vegas, Nevada, USA. Her bliver præsenteret den nyeste viden om blandt andet cloud, microservices og om, hvordan virksomheder kan bevæge sig fra en monolitisk softwarearkitektur til softwarearkitektur bestående af microservices. Den viden vil vi dele videre i dete blogindlæg, der vil blive opdateret i løbet af konferencen. Det er vores kollegaer Rasmus Hagemann, Director & Head of Self-service and Cloud solutions, og Jacob Dalgaard, CTO, der er budbringere.

 

Know-how fra AWS re:Invent 2019

AWS-know-how. Mandag 2. december 

”På den første dag til AWS re:Invent har vi både været helt nede i teknikken og helt oppe i de højere organisatoriske luftlag. Vi er dykket ned i komponenterne i EC2 og lært, hvordan man sammensætter sin resurse til det specifikke behov, og hvordan man optimerer sine omkostninger. Vi har hørt, hvordan Amazon har succes med at organisere deres leveranceorganisation i små såkaldte 2-pizza teams og stadig sikre høj kvalitet og en sammenhængende løsning. En anden meget interessant session var da AWS forklarede, hvordan man optimerer sine omkostninger ved at benytte de forskellige cloud-komponenter rigtigt.” – Rasmus Hagemann, Director & Head of Self-service and Cloud solutions, og Jacob Dalgaard, CTO.

 

AWS know-how. Tirsdag 3. december

”På tirsdagens sessioner var fokus i høj grad på modernisering. Vi så, hvordan AWS nedbrød en klassisk webapplikation i serverless microservices helt konkret, og vi gik derfra med en masse gode tilgange til den udfordring. Vi fik også svar på, hvorfor man overhovedet skal bruge energi på at flytte sine gamle monolitter i skyen. For det første har Microsoft meldt ud, at man i fremtiden satser på .Net core. Derfor skal man på et eller andet tidspunkt omskrive sine løsninger for at holde dem supporteret. For det andet kan der være virkelig mange penge at spare både i licenser og i driftsomkostninger, hvis man formår at vælge de rigtige komponenter i skyen”.  – Rasmus Hagemann, Director & Head of Self-service and Cloud solutions, og Jacob Dalgaard, CTO.

 

AWS know-how. Onsdag 4. december 

”I dag var vi inde i motorrummet hos både Uber og Airbnb.
Uber fortalte, hvordan de benytter AWS Batch til at køre simuleringer på den software, de udvikler til deres selvkørende biler. Selvom de har et kæmpe anlæg, hvor de kan teste bilerne i reelle situationer, ville det tage evigheder at udsætte bilerne for de mange tænkelige scenarier, de kan komme ud for. Derfor har de bygget en kæmpe simuleringsmotor, der kan teste softwaren i de forskellige situationer. Noget så simpelt som et højresving i et vejkryds kan gå galt på rigtig mange måder alt efter, hvordan andre billister opfører sig. Motoren kan simulere den samme situation med mange forskellige variabler og fortælle i hvilke tilfælde, softwaren ville fejle.
Airbnb fortalte, hvordan de havde bygget fraud detection for at reducere antallet af mistænkelige bookinger, og hvordan de brugte Amazon SQS køer til at sikre dekobling af komponenterne og dermed en skalerbar løsning. 
Selvom langt størstedelen af alle større virksomheder har en digital transformationsplan, er der fortsat en masse legacy systemer og teknisk gæld. I en paneldebat sidst på dagen blev det diskuteret, hvor meget disse systemer forhindrer virksomheden i at transformere.” - Rasmus Hagemann, Director & Head of Self-service and Cloud solutions, og Jacob Dalgaard, CTO.

 

AWS know-how. Torsdag 5. december 

"Torsdagen har budt på nye indtryk og interessante indlæg. Et af de mere tekniske af slagsen var, da to AWS løsningsarkitekter fortalte, hvordan softwarearkitektur har ændret sig med introduktionen af cloud platforme. Med udgangspunkt i "7 best practice principles for architecting the cloud” tog de os igennem helt konkrete cases fra deres egne kunder og projekter. Det er super interessant, hvor anderledes en arkitekt skal tænke, når applikationer skal bygges i skyen. 

De 7 principper er:

  • Design for failure and nothing fails
  • Build security in every layer
  • Leverage different storage options
  • Implement elasticity
  • Think Parallel
  • Loose coupling sets you free
  • Don’t fear constraints 

Vi hørte også om, hvordan LEGO transformerer sin gamle e-handelsplatform til en skalerbar serverless løsning. Motivationen for LEGO var, da de var nede i 3 timer under Black Friday 2018 pga. legacy systemer, der ikke kunne følge med. I år var flaskehalsene flyttet over i skalerbare komponenter, og selve webshoppen var 100 % serverless. Selve produktdatabasen og andre backend komponenter var fortsat placeret i den gamle løsning, men da de ikke var udfordrede i 2018, kunne de forblive der. Transformationen er et fantastisk eksempel på, at man ikke behøver at flytte en hel legacy platform på samme tid. Det er ofte mere fordelagtigt at flytte udsatte dele først og så stille og roligt flytte resten i små bidder." - Rasmus Hagemann, Director & Head of Self-service and Cloud solutions, og Jacob Dalgaard, CTO.

 

Hvad er microservices?

Microservices er en softwarearkitektur, der er opbygget af en samling af mindre tjenester, der hver især kører deres egne processer og kommunikerer med hinanden via API. Ifølge Google Trends begyndte interessen for microservices for alvor at samle sig i 2015 (Google Trends). Men det er især i takt med udbredelsen af Cloud, at microservices i endnu højere grad har fået sin berettigelse som ny softwarearkitektur. 


Monolit vs. microservices 

En monolit er det vi i dag kendetegner som en ’klassisk’ IT-løsning, hvor alle dele af softwaren er i én udelelig komponent. Alle processer hænger tæt sammen og bliver behandlet som én samlet service. Når der skal foretages forbedringer, ændringer eller opdateringer af en monolit sker det ved at opdatere hele systemet på én gang. Det modsatte gør sig gældende ved microservices. Her betyder arkitekturen, at forbedringer, ændringer og opdateringer sker i hver enkelt microservices uden at hele systemet skal opdateres. Det er smart, da det minimerer risiko for nedetid, men også i forhold til at reducere eventuel fejlfinding. Med en microservice arkitektur kan virksomheder vælge de værktøjer, der passer til hver enkelt opgave. På grund af deres individuelle tekniske set-up, kan virksomheder hyppigere levere nye features og opdateringer til slutbrugere.


Fordele ved microservices

Der er mange fordele ved at benytte microservices som softwarearkitektur. Her er et udvalg: 

  • Virksomhedens behov sættes i centrum
  • Virksomheden kan vælge det bedste værktøj til hver enkelt opgave
  • Bedre kommunikationen mellem forskellige systemer 
  • Hurtigere time-to-market for nye features 
  • Uendelig skaleringsmuligheder
  • Forretningsprocesser bliver langt mere enkle
  • Virksomheden får en fleksibel softwarearkitektur, som kan videreudvikles i årevis

Hos Kraftvaerk har vi overblikket over en lang række tilgængelige microservices i hhv. Azure, AWS og Google Cloud Platform. Vi tilbyder også at udvikle unikke microservices, der kan dække din virksomheds behov. Vil du vide mere?