Erus Encodia AS

5 steg for å lykkes med mikrotjenester

Unngå de vanligste feilene i distribuerte systemer

Arkitektur Mikrotjenester Modernisering

Vi har sett en eksplosjon i hvor mange selskaper som utvikler systemer med mikrotjenester de siste 10 årene. Mikrotjenestearkitektur legger til rette for utvikling av komplekse applikasjoner ved å dele dem inn i mindre, uavhengige tjenester som kan utvikles, rulles ut og forvaltes individuelt. Men å implementere mikrotjenester kan være en utfordrende oppgave, og mange organisasjoner opplever problemer. I denne artikkelen presenterer vi 5 steg for å lykkes med mikrotjenester.

1: Forstå forretningsfunksjonene dine

Før du går i gang med mikrotjenester, er det viktig å ha en god og tydelig forståelse av forretningsfunksjonene dine. Identifiser kapabilitetene som din virksomhet trenger og definer dem tydelig. Slik kan du avgjøre hvilke tjenester som skal utvikles og hvilke som allerede kan gjenbrukes. Å definere forretningsfunksjoner- og kapabiliteter hjelper også med å håndtere størrelsen av tjenestene dine. En vanlig feil er å lage tjenester som tar innover seg for mye kompleksitet, eller tjenester som blir så små at de ikke kan operere autonomt og i isolasjon.

Vi anbefaler ofte metodikk og tilnærminger forankret i domene-drevet design for lettere å identifisere og definere avgrensninger. Du kan dra nytte av verktøy og rammeverk som Event Storming og Context Mapping for å samkjøre og ordne forretningskapabilitetene dine med deres tekniske implementasjon.

2: Velg riktig teknologi

Når vi beveger oss over i ny arkitektur vil vi alltid stå ovenfor nye teknologivalg. Det er lett å bli blendet av alle alternativene, og det er ikke alltid like enkelt å vite på forhånd hva du faktisk trenger. Når mange organisasjoner omfavner nye trender som mikrotjenester, vil det alltid komme et stort tilbud av nye produkter fra leverandører som forsøker å kapitalisere på trenden. Ofte skaper disse mer problemer enn de løser.

Du må selvsagt velge den teknologien som er best egnet for dine forretningsbehov. Teknologisettet du velger skal støtte utvikling og distribusjon av tjenestene, men du må også vurdere faktorer som skalerbarhet, sikkerhet og brukervennlighet.

Når du velger teknologi, kan det være utfordrende å balansere autonomi med ensretting på tvers av team. En høy grad av autonomi kan føre til et fragmentert teknologilandskap, mens tvungen ensretting kan føre til begrensninger som bremser eller hindrer innovasjon og tjenesteleveranse. En løsning er å bruke verktøy som en teknologiradar eller et bibliotek av Golden Paths for å vise frem beste praksis og hjelpe teamene med å ta informerte beslutninger.

3: Skap en DevOps-kultur

Det er vanskelig å lykkes med mikrotjenestebasert arkitektur uten en god DevOps-kultur. Utviklere og driftsteam må samarbeide tett for å sikre at mikrotjenester utvikles, rulles ut, driftes og vedlikeholdes på en god og vellykket måte. Dette krever en endring i kultur, der utviklere og driftsteam samarbeider fra starten av utviklingen.

Med en godt fungerende DevOps-kultur tar utviklerne større eierskap og ansvar for tjenestene i deres domene. Dette skjer dog bare når de også får mulighet og myndighet til å ta de riktige valgene og beslutningene for sin tjeneste.

4: Kontinuerlig integrasjon og leveranse

Kontinuerlig integrasjon og leveranse (CI/CD) er avgjørende for å gå i produksjon med mikrotjenester. CI/CD gjør at utviklingsteamet kan teste og rulle ut nye tjenester raskt og effektivt. Med riktige verktøy og prosesser kan utviklere automatisere testing og utrulling av sine tjenester, og samtidig redusere risikoen for feil og nedetid.

En godt utformet plattform kan akselerere utvikling og produksjonssetting av tjenester, slik at utviklere kan styre og administrere sine mikrotjenester uavhengig.

For å implementere en vellykket plattform må plattformingeniører involveres i design og utvikling av arkitekturen fra begynnelsen. Ved å investere i plattformingeniørarbeid kan du akselerere utvikling og utrulling av mikrotjenester samtidig som du sikrer at de er skalerbare, sikre og vedlikeholdbare.

5: Overvåk og mål ytelse

Uten tilstrekkelig overvåkning vil teamene dine favne i blinde. Når vi innfører distribuert arkitektur øker vi ofte avstanden mellom komponenter, og blir sårbare for dårlig ytelse.

Mikrotjenester stiller langt høyere krav til overvåkning enn hva du kanskje er vant til fra mer monolittiske applikasjoner. Det er viktig å arbeide med utviklerne helt fra starten for å implementere god instrumentering og måling av tjenestene. Dette hjelper deg med å identifisere eventuelle potensielle problemer og sette inn korrigerende tiltak før de blir store.

Tradisjonelt har utviklere fokusert på å overvåke bare teknisk ytelse. Vi anbefaler å bruke de samme overvåkingsverktøyene for å spore og vurdere forretningsmål og verdi. Slik får vi langt større innsikt i forretningsverdien hver enkelt tjeneste leverer.

For å oppsummere

Å implementere mikrotjenester kan være utfordrende. Ved å følge de fem ovenstående tipsene kan du øke sjansene dine for å oppnå fordelene de gir, som økt skalerbarhet, fleksibilitet og smidighet.

Husk imidlertid på at det ikke finnes noen sølvkule. Mikrotjenester er ikke en “one size fits all”-løsning, og egner seg ikke til å løse alle problemer. Det er en arkitektur som krever en moden utviklingsorganisasjon hvor man kan hente optimaliseringseffekter fra å dele opp systemet i uavhengige komponenter.

Vi har gjort det før

Sliter du med å implementere en arkitektur basert på mikrotjenester? Våre erfarne konsulenter kan hjelpe deg med å lykkes på din reise bort fra monolitten. Med vår ekspertise innen domene-drevet design, distribuert systemarkitektur, teknologisk utvikling, DevOps og kontinuerlig leveranse, kan vi hjelpe deg med å oppnå fordelene med distribuerte systemer. Kontakt oss i dag for å lære mer.

Thomas Presthus
Thomas Presthus

Thomas har 15 års erfaring innen utvikling og arkitektur. Han er en typisk håndgranat som baner vei for endring og nye måter å jobbe og tenke på. Utover bistandsarbeid hos våre kunder er Thomas også kjent som foredragsholder i både inn- og utland.

Neste innlegg

Å omfavne et inkluderende digitalt miljø

Hvis du er en del av IT-verdenen, om du jobber som utvikler, designer, eller mer indirekte som en produkteier eller selger, har du trolig vært borti temaet som omhandler universell utforming (UU) og WCAG. Det er også veldig sannsynlig at du har brukt verktøy for UU uten at du har vært klar over det, f.eks zoom-funksjonaliteten til nettleseren.

Les mer →