microservices-expectations-reality

Nesten ethvert digitalt prosjekt eller løsning, enten det er et nettsted, en app, et API, et CMS eller en annen tjeneste, består av kode som kjører på en server. Noen løsninger er svært enkle, som en statisk HTML-side. Andre er langt mer komplekse, med transaksjoner, forretningslogikk, personaliserte grensesnitt og mer.

Tradisjonelt har slike løsninger blitt bygget, testet og levert som en enkelt programvare, også kjent som et monolittisk system. Når det gjelder mikrotjenester, er ideen rett og slett å dele opp denne programvaren i mindre og mer håndterbare deler – derav ordet “mikrotjeneste”.

Formålet med mikrotjenester er å dele, modulere, oppgradere, utvikle og distribuere disse tjenestene uavhengig av hverandre. Denne typen systemarkitektur tillater raskere og sikrere utvikling, da du ikke lenger trenger å være avhengig av hele det integrerte monolittiske systemet.

Selv om mikrotjenester kan løse mange utfordringer og øke utviklingshastigheten, er de ikke en magisk enhjørning som vil kurere alle dine plager uten innsats.

Her er 5 forventninger om mikrotjenester og deres tilsvarende realiteter.

1. Oppdeling løser alt

Forventning: Å fragmentere og dele opp tjenestene dine vil løse alle problemene dine med utviklingstreghet, systemmessige sikkerhetsrisikoer og distribusjonsforsinkelser.

Virkelighet: Det er viktig å unngå å dele opp applikasjonen din i for mange små biter.

Et system, enten det er sydd sammen eller består av mikrotjenester, er fortsatt et system – med et formål og en planlagt funksjonalitet.

Med mikrotjenestetilnærmingen kan det imidlertid være en risiko for at systemet blir for fragmentert, med forskjellige teknologier på forskjellige tjenester, noe som gjør det vanskelig å få oversikt og vedlikeholde og håndtere koden på lang sikt.

I verste fall kan en dårlig håndtert mikrotjenestearkitektur føre til de samme problemene du prøvde å unnslippe.

Videre kan testing bli mer komplekst på grunn av antallet mikrotjenester. Selv om de er uavhengige på et vis, må det eksistere avhengigheter mellom tjenester på en eller annen måte (hvordan ellers skal det være et sammenhengende system?) – og jo flere tjenester, desto mer komplekst blir det.

Hvis du opplever nettverks- og databaseproblemer, kan det ikke alltid være lett å skille de forskjellige tjenestene. Og har du en beredskapsplan i tilfelle en mikrotjeneste er nede? Hvordan vil nedetiden påvirke resten av systemet ditt?

Mikrotjenester kan også kreve mer overvåking for å sikre at hver mikrotjeneste fungerer som den skal, da du nå har flere tjenester i stedet for én stor tjeneste.

Se også: Hvordan bygge et raskt og moderne nettsted med Next.js og headless CMS »

2. Enklere for DevOps

Forventning: Å innføre en arkitektur med mikrotjenester vil gjøre arbeidsdagen enklere for dine "developer operations" (DevOps).

Virkelighet: Mikrotjenester kan føre til en mer fragmentert stack, noe som betyr mer å administrere og oppgradere, altså mer hodepine for dine DevOps.

Dette kan igjen føre til økte infrastrukturkostnader, men samlet sett kan det være en kostnadsreduksjon – fordi utviklerne raskere kommer inn i en produktiv prosess og får ting til å skje raskere.

Husk, omfavn DevOps-kulturen, ikke ignorer den. Gi dine DevOps mulighet til å gjøre mer i produksjonen, slik at det blir lettere for organisasjonen din å distribuere fungerende digitale opplevelser raskere.

3. Intet enkelt feilpunkt

Forventning: En mikrotjenestearkitektur vil redusere risikoen for å oppleve et enkelt feilpunkt, dvs. når en del av et system svikter, vil det ikke stoppe hele systemet fra å fungere.

Virkelighet: Mikrotjenester gjør faktisk løsningen din mindre utsatt for problemer knyttet til enkelt feilpunkt, da organisasjonen din ikke lenger har en koloss å distribuere og vedlikeholde.

Men du må designe med feil i tankene, og du må være i stand til å håndtere systemnedetid, treg tjeneste og uventede responser.

En feil i én mikrotjeneste kan også påvirke en annen mikrotjeneste andre steder på grunn av uunngåelige avhengigheter i systemet ditt. Så sørg for å inkludere en ordentlig og grundig rutine for feildiagnostikk.

Lær mer: Hev kundereisen med rike web-grensesnitt »

4. Mer produktive utviklere

Forventning: En mikrotjenestearkitektur gjør det mulig for utviklerne dine å være mer produktive og effektive.

Virkelighet: Denne forventningen er også ganske mulig og sannsynlig å bli virkelighet i organisasjonen din.

Grunnen til dette er at det er lettere for utviklerne dine å bli kjent med små komponenter enn et stort system. Akkurat som det er lettere å begynne å tilegne seg kunnskap om et emne ved å lese innledende tekster i stedet for en enorm altomfattende bok, er det lettere for utviklere å begynne å kode med mindre komponenter i stedet for hele det komplekse systemet.

Når utviklere jobber med mikrotjenester, kan arbeidsprosessen bli mer smidig og føre til kontinuerlig distribusjon. Koding, testing, distribusjon og iterering blir en mye raskere prosess, og det å kunne se konkrete resultater umiddelbart vil motivere i utgangspunktet alle mennesker.

I tillegg, mens utviklerne utvikler og tester mikrotjenester, vil de – ved å oppnå viktig kunnskap og erfaring kontinuerlig – kunne velge det riktige verktøyet for den riktige oppgaven raskere.

5. Enklere å skalere

Forventning: Det er lettere å skalere en mikrotjenestearkitektur på grunn av dens modulære natur.

Virkelighet: Mikrotjenester er designet for dette formålet.

Mikrotjenestene påvirker ikke hverandre like direkte som lignende tjenester ville gjort i et monolittisk system, hvor alt er tett bundet sammen.

Skalering med mikrotjenester lar deg enkelt oppdage hvilke tjenester som trenger utvidelse før andre, og hvilke tjenester som kanskje ikke trenger å utvides i det hele tatt for øyeblikket.

For eksempel, trenger du mer prosesseringskraft mens loggetjenester er fine som de er? Da oppgraderer du førstnevnte og lar sistnevnte være.

Til slutt, med mikrotjenester er det lettere å finne flaskehalser i systemet ditt. Når alt ikke lenger er blandet sammen i et enkelt, gigantisk system, kan du raskt identifisere røde flagg i systemarkitekturen din med uavhengige tjenester.

***

Oppfyller mikrotjenester forventningene dine, eller kom virkeligheten i veien? Uansett, undersøk og forsk grundig før du velger mikrotjenester. Kjenn dine behov, kast deg ikke blindt inn i ukjent territorium bare fordi noe er populært her og nå.

Fremtidssikre dine digitale opplevelser

Først publisert 2. mai 2019, oppdatert 23. september 2022.

Relaterte blogginnlegg

Få enda mer innsikt 🤓