Micro-hvabehar? Har du hørt flere af os IT-nørder slynge ordet ”Microservices” skødesløst rundt – men har du endnu svært ved at gennemskue begrebet? Så er du kommet til det rette sted! Her får du en simpel introduktion til den tech-faglige term.

Der er over årene kommet et stort fokus på microservices – og eftersom flere virksomheder er blevet mere og mere afhængige af store, fleksible digitale løsninger, er konceptet aktuelt som aldrig før. Men hvad er microservices egentlig? Og er det noget, der kan komme dig og din virksomhed til gode?

Hvordan er en digital løsning bygget op?

Før vi kaster os hovedkulds ud i en længere forklaring, bør vi træde et skridt tilbage og kigge på, hvad en webløsning består af, og hvordan den er er skruet sammen (sådan helt overordnet set).

En webshop, en hjemmeside og andre webapplikationer som Amazon og Uber er sammensat af mange forskellige moduler. Hvert modul varetager en bestemt opgave, funktion eller ”service”.

Tager vi – for lethedens skyld – udgangspunkt i en traditionel eCommerce-løsning, finder vi ét modul til fremvisning af produkter, ét til håndtering af kundedata, ét til kurv-funktionen, til betaling og så videre.

Enhver digital løsning har også en frontend (den visuelle del, som dine besøgende ser) og en backend (administrator-delen).

Alle elementerne er bundet sammen, så det i sidste ende opleves som én funktionel løsning. Hvordan det bindes sammen kan dog gøres på forskellige måder med udgangspunkt i forskellige webarkitekturer: Den monolitiske webarkitektur og microservices webarkitekturen.

Webarkitektur: Monolitisk vs. Microservices

 Begrebet ”Microservices” dækker altså over en hel unik webarkitektur – dvs. måden, man opbygger og sammensætter digitale løsninger. Microservices-opbygning adskiller sig markant fra den traditionelle, monolitiske struktur. Lad os lige kaste et hurtigt blik på de to typer.

Monolitisk webarkitektur

Størstedelen af nutidens løsninger er bygget op på traditionel vis som monolitter.

Ordet “monolit” bruges normalt om en skulptur, der er hugget ud af én sten – og det billede kan måske hjælpe på forståelsen.

Ved den monolitiske webarkitektur er alle moduler i webløsningen (fx kurv-funktionen, produktvisnings-modulet, betaling osv.) – samt frontend og backend – udformet via én samlet kodebase.

Man kan se det som en lidt ufleksibel ”alt-i-en”-løsning, der dog kan styles, udvikles og tilpasses den enkelte virksomhed. Og det har rigtig mange fordele – men også nogle betydelige ulemper.

Microservices webarkitektur

En nyere tilgang til udvikling af webløsninger er ved brug af microservices.

Har lever de enkelte moduler (igen: Kurv, produktvisning, betaling osv.) separat og har hver deres kodebase.  De snakker udelukkende sammen via såkaldte API’er.

Bruger vi igen analogien om en sten-skulptur, består microservices af en masse forskellige, blandede sten. Nogle kan være af granit, andre kalksten, flint- eller lersten.

Man kan derved beskrive webløsninger, der er bygget af microservices, som en slags “Pick-and-mix”-løsning, hvor man kan sammensætte forskellige komponenter og moduler – selv på tværs af kodesprog.

Også frontend og backend er opdelt og adskilt. Det betyder, at man kan udvælge og kombinere forskellige frameworks, så man benytter ét til frontend og et andet til backend (modsat en monolit som fx Magento, der giver dig én fast pakke, hvor både front- og backend er inkluderet).

Det kan have sine fordele. Men hvor der er fordele, er der også ulemper, du bør overveje og tage højde for.

Fordele og ulemper ved microservices

Overvejer du en webløsning bygget på microservices? Så bør du kende til både forsiden og bagsiden af medaljen, som vi kort ridser op her.

Fordele

  1. Bedre struktur
    På et teknisk plan er mikroservices typisk bedre organiseret, og det er nemmere for (eksterne) udviklere at hoppe ind og optimere, videreudvikle og tilføje moduler til løsningen – uden at skulle kende til eller tage hensyn til resten af set-uppet.
  2. Færre fejl og mere driftssikkerhed
    Fordi de enkelte funktioner og moduler i løsningen ikke er bundet sammen til én kodebase, påvirker de ikke hinanden. Én service kan være nede, mens resten af løsningen fungerer problemfrit. Det betyder, at risikoen for sammenbrud er langt mindre, når din løsning er bygget af microservice.
  3. Fejl er lettere at lokalisere og rette
    Skulle én microservice bryde ned, er det lettere for en udvikler at finde og rette fejlen. Det skyldes, at koden er brudt op i mindre dele – så i stedet for at læse et langt “script” igennem, kan en webudvikler gå direkte til den klump kode, som volder problemer.
  4. Kapacitet og skalerbarhed
    En af de helt store fordele ved microservices og det faktum, at hvert “modul/funktion” kan lagres i egen database, er evnen til at skalere løsningen op, hvis mængden af data, der skal håndteres, er meget stor. Det giver også mulighed for en højere hastighed og en bedre kundeoplevelse – selv ved pludselig meget trafik til sitet.
  5. Pick-and-mix
    Ved at dele løsningen op i separate microservices, har du også mulighed for at blande kodesprog, frameworks og data-storage-teknologi, så du kan vælge og vrage og benytte de komponenter, der passer dig bedst.
  6. Fremtidssikring
    Da en løsning bygget af microservices består af mange separate enkeltdele, er det nemt at fjerne, udskifte og tilføje komponenter én ad gangen. På den måde kan man løbende opdatere sin løsning i mindre bidder og sikre, at den altid er i trit med samtidens teknologi.

Ulemper

  1. Mere krævende at opbygge
    Løsninger, der er bygget om microservices webarkitekturen, er mere komplekse og tager typisk længere tid at bygge op (i modsætning til monolitterne), fordi hver funktion skal tilkobles og opsættes enkeltvis. Ved en monolitisk løsning er mere givet på forhånd (“ud-af-boksen”) – hvilket omvendt også betyder mindre fleksibilitet og frihed.
  2. Dyrere opstartspris
    Som følge af punkt 1 vil opstartsprisen for at udvikle en microservice-løsning ofte være højere end ved monolitiske løsninger. På sigt vil Microservices dog være billigere, fordi udgifter til vedligehold, fejlrettelser m.m. er mindre.

Hvilken webarkitektur skal jeg vælge?

Er du i tvivl om, hvorvidt du skal vælge den monolitiske eller microservice webarkitektur?

For langt de fleste virksomheder vil monolitten være det lette valg. Men har du behov for en løsning, der skal trække store mængder data og kommunikere med mange kilder på én gang, bør du måske kigge i retningen af microservices.

Uber, Zalando og Amazon er eksempler på virksomheder, hvis succes har været afhængig af den innovative webarkitektur. Men også mindre virksomheder med komplekse digitale løsninger kan have enorm gavn af at følge samme fremgangsmåde.

Har du spørgsmål eller lyst til at drøfte, om microservices er det rigtige for dig – så kontakt Makers på telefon 8799 0009 eller [email protected].