Træt af it-monolitten? Prøv en microservice

Virksomheder ombygger i stigende grad deres monolitiske it-arkitektur til en serie af microservices. Det er ikke en triviel opgave, men fordelene er mange, mener ekspert.

Flere og flere virksomheder skiller sig af med tunge kernesystemer, og bygger i stedet systemet op på ny som et netværk af såkaldte microservices i skyen.

Teknologien er tiltalende - både fra et organisatorisk synspunkt og et udviklersynspunkt, fortæller Deepak Singh, der er chef for AWS' container-services.

»Som økosystemerne og værktøjerne bliver bedre, tror jeg, vi vil se mange flere adoptere microservices eller lignende applikationer,« siger han i et interview med Version2.

Først en definition: Microservices kan lettest beskrives som uafhængige mini-applikationer typisk implementeret i skyen som en virtuel maskine eller en container. Hver service har et veldefineret API, så det fx kan kommunikerer med andre services.

Læs også: McKinsey: For mange klatudvikler deres it-systemer - sats på total modernisering

Virksomheder som Netflix, Amazon, Ebay og den amerikanske bank Capital One har alle omdannet deres monolitiske systemer til microservices. En af de største fordele, der opnås, er hurtighed, mener Deepak Singh.

»Capital One kører et stort antal services og kan rulle en ny service ud på en halv time,« indleder han.

»Og opdateringer kan ske på under et minut. Det er den form for produktivitet, der virkelig driver kunder til den her løsning. Det gør en kæmpe forskel.«

Skalerer individuelt

Fordi hver service er uafhængig af den næste, kan dedikerede udviklingshold opdaterer tjenesten uden at påvirke det øvrige system - så længe aftalen om API'et overholdes.

På den måde er en arkitektur baseret på microservices også en velegnet arkitektur for virksomheder, der gerne vil arbejde efter DevOps-principper, og lade det samme hold udvikle og vedligeholde en applikation i dens levetid, forklarer Deepak Singh.

Læs også: Facebook og Goldman Sachs installerer tonsvis af it-containere - andre it-chefer tøver

En anden fordel er, at hver tjeneste kan skaleres individuelt efter behov. Ligesom hver service kan køres på en instans i skyen, der er optimeret efter, hvad servicen laver - fx i form af høj CPU eller RAM.

»MyTaxi (taxi-app red.) plejede at falde på deres ansigt nytårsaften, fordi der pludselig var 300-400 procent mere trafik på en dag,« fortæller Deepak Singh.

»Nu kører de 50 microservices, og er i stand til at skalere uden problemer,« fortsætter han.

Work in progress

Rejseselskabet Expedia annoncerede tidligere på året, at firmaet ville overgå til en microservices-arkitektur.

Beslutningen udsprang af en online betalings-funktion, der havde vokset til en uhåndterlig størrelse.

Checkout-applikationen - som understøtter transaktioner med milliarder i værdi - havde et enormt antal funktioner, forklarede selskabets teknologidirektør Elizabeth Eastaugh til britiske Computerworld.

Resultatet var, at udvikling blev tynget ned af et behov for test i tusindvis.

Læs også: Nu må vi da snart forstå det der SOA...

For mange virksomheder er det dog stadig et work in progress, at finde ud af, hvordan applikationer kan omskrives til microservices, vurderer Deepak Singh.

»Der mangler forståelse og værktøjer for at gøre microservices tilgængelige for en større gruppe mennesker, i modsætning til blot selskaber som Netflix og Capital One,« siger han og fortsætter:

»Virksomheder skal se efter, hvor meget state, der er i software. Hvis det er stateless - så læg det i en microservice.«

En anden strategi er at se på, om software er opbygget i lag.

»Hvis du har en applikation med fem, seks funktionalitetslag, så overvej at splitte dem op i fem forskellige services, som kan snakke sammen. På den måde kan de udvikles uafhængigt,« forklarer Deepak Singh, der også mener at CIO's vil være interesserede i teknologien på grund af de mulige effektiviseringer.

Opbrydning af monolitten

Udbredelsen af containere har gjort det lettere at opbygge en microservice-arkitektur, men det er stadig ikke en simpel tjans, erkender Deepak Singh.

»Det er ikke trivielt,« indleder han og fortsætter:

»Der er forretningssystemer i mange virksomheder, der er 20 år gamle i mange tilfælde. Og de bliver måske aldrig lavet til microservices,« siger han.

Læs også: Er agil udvikling ikke nok? Så prøv total udryddelse

Chris Richardson - en it-konsulent, der blandt andet har specialiseret sig i microservices - skriver i en blog om emnet, at virksomheder først og fremmest kan stoppe med at grave hullet dybere - altså holde op med at bygge it-monolitten større.

Det betyder, at ny funktionalitet bør skrives som en selvstændig microservice.

Herefter kan man arbejde på at opsplitte monolitten i tre lag: et præsentationslag, et lag med forretningslogikken og et dataadgangslag.

Endelig kan man herefter begynde at ekstrahere enkelte dele af applikationen ud i microservices. I takt med at antallet af microservices stiger, vil en større del af applikationen kunne vedligeholdes agilt.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (2)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Henrik Wivel

Er selv overbevist om at Microservices er et godt værktøj art have med i værktøjskassen, men det er ikke løsningen på alt. Samtidigt er Microservices allerede så vidt et begreb, at det kan være svært at diskutere hvad det er og hvad de kan benyttes til.

Tigerteam har en fremragende artikelserie om hvad Microservices bør være og ikke mindst forslag til hvordan de skal designes og implementeres.

https://www.tigerteam.dk/2014/micro-services-its-not-only-the-size-that-...

Log ind eller Opret konto for at kommentere
Brugerundersøgelse Version2
maximize minimize