Home

mikrotjenester

Mikrotjenester er en arkitekturstil der en programvare består av små, uavhengige tjenester som hver implementerer en eller flere forretningskapabiliteter. Tjenestene er eiet av små tverrfaglige team og kommuniserer over nettverk ved hjelp av veldefinerte grensesnitt. Hver tjeneste har ofte avgrensede data og egne livssykluser og kan deployeres uavhengig av de andre.

Fremgangsmåten kjennetegnes av løs kobling, tydelige kontekstgrenser (bounded contexts), og uavhengig utrulling. Kommunikasjon skjer ofte via

Fordeler inkluderer raskere og mer fleksibel utvikling, bedre skalerbarhet, isolasjon av feil, og mulighet til å

Utfordringer omfatter økt kompleksitet i distribuert systemdesign, behov for avansert overvåking og feilsøking, testing og datakonsistens,

Vanlige praksiser inkluderer å bruke API-gateway eller service-mesh for kommunikasjon, automatisert testing av grensesnitt og kontrakter,

Sammenlignet med en monolittapplikasjon gir mikrotjenester større modulær fleksibilitet, men krever betydelig mer operasjonell kompetanse og

lettvektsprotokoller
som
HTTP/REST
eller
gRPC,
og
kan
også
være
asynkron
gjennom
meldingskøer
og
hendelsesbaserte
strømmer.
Data
lagres
separat
i
hver
tjeneste
(polyglot
persistens),
noe
som
legger
til
rette
for
skalerbarhet
og
feilisolasjon,
men
også
medfører
kompleksitet
i
transaksjoner
og
konsistens.
utvikle
og
utrullere
delprosjekter
uavhengig
av
teknologi.
Mikrotjenester
passer
ofte
sammen
med
moderne
DevOps-praksiser
og
skybasert
infrastruktur,
for
eksempel
containerisering
og
orkestrering.
samt
sikkerhet
og
nettverksrelaterte
problemer.
Transaksjoner
på
tvers
av
tjenester
krever
mønstre
som
sagas
eller
eventual
consistency,
og
implementering
av
infrastruktur
som
API-gatewayer
og
service-mesh
krever
innsats
og
kompetanse.
samt
observabilitet
gjennom
logging,
tracing
og
metrics.
Organisatorisk
er
mikrotjenestearkitektur
ofte
knyttet
til
produktteam
som
tar
eierskap
for
en
tjeneste
gjennom
hele
livssyklusen.
distribuert
systemdesign.