Gå til innholdet

Velg mikrotjenester ut fra uavhengige endringer

Undersøk separate tjenester når forretningsmessige grenser, dataansvar og behov for uavhengig utrulling passer sammen.

Katharina Weber1 min lesetid
Lys kube med to blå vannrette skillelinjer og en svakt blåskravert side.

Hvilken endring skal kunne skje uavhengig?

Å fordele en applikasjon på tjenester gir ikke i seg selv uavhengig utvikling. Må de samme personene endre og rulle ut alle tjenestene sammen ved hver prisregel, består samordningen. Nettverkskall og flere driftsoppgaver kommer i tillegg.

Microsoft beskriver uavhengig utrulling og eget dataansvar som viktige kjennetegn. Vi foreslår derfor å begynne med en konkret endring: Hvilket fagområde skal kunne bære den uten samtidige tilpasninger andre steder?

Eksempel: tilbud og ordrer holdes foreløpig samlet

Produktet og arbeidsmåten er oppdiktet. Ett team vedlikeholder tilbud, ordrer og rapporter. Prisregler endres samlet i tilbud og ordre. Rapportformater har andre endringsbehov.

Observert grense i eksemplet

Foreløpig beslutning

Hva som må støtte beslutningen

Tilbud og ordrer deler samme forretningsmessige prisendring.

Rull ut samlet med tydelige interne moduler.

Ansvar og tilgang mellom modulene er eksplisitt avklart.

Rapportformater kan endres uavhengig.

En egen modul; vurder separat tjeneste ved dokumentert behov.

Stabilt datagrensesnitt, driftsansvar og nødvendig dataaktualitet er avklart.

I planen forblir applikasjonen først en modulær monolitt: indre grenser, felles utrulling. Spring Modulith viser forskjellen mellom offentlig modulgrensesnitt og intern implementasjon. Å beskrive skillet er nyttig uten å velge akkurat dette verktøyet.

Ta med driften i beslutningen

En separat rapporttjeneste må kunne håndtere feil i datakilden sin. Noen må ha ansvar for utrulling, overvåking og feilavklaring. Teamet trenger også regler for gamle og nye grensesnittversjoner under en overgang. En separat prosess oppfyller ikke alene vilkårene.

Registrer grunnen til senere oppdeling, for eksempel et reelt behov for uavhengig utrulling eller en belastning som må håndteres annerledes. Vurder kobling, datatilgang og driftsinnsats på nytt. Også moduler som rulles ut sammen, kan være tydelig strukturert. En godt avgrenset tjeneste kan være begrunnet før resten deles opp. Antall tjenester måler ikke kvaliteten på denne beslutningen.

Kilder

Skrevet av

  • Katharina WeberRedaktør for programvare og teknologiKatharina Weber har ansvaret for artiklene om programvareutvikling hos ASES. Hun skriver om spørsmålene bedrifter møter når de velger programvare, utvikler nye applikasjoner og moderniserer eksisterende systemer.

Følg ASES

Les videre

Alle artikler

Programvareutvikling med ASES

Skreddersydd programvare, web- og mobilapper