Programmering

Tilstanden til mikrotjenester og cloud computing

I følge en nylig O'Reilly-radarundersøkelse om veksten i cloud computing, utpekte en av de mer interessante beregningene at 52 prosent av de 1 283 svarene sier at de bruker mikrotjenesterkonsepter, verktøy eller metoder for programvareutvikling. Av disse har et stort mindretall (mer enn 28 prosent) brukt mikrotjenester i mer enn tre år.

Dette var den nest største klyngen blant brukere av mikrotjenester. Den største gruppen, på mer enn 55 prosent, har brukt mikrotjenester mellom ett og tre år. Videre er bare 17 prosent av brukerne nye for mikrotjenester, med mindre enn ett års adopsjon og bruk.

O'Reilly peker også på noen bevis for at interessen for mikrotjenester kan være på eller nær topp. Også bemerket nedbrytning av servicerammene - i det minste i den grad granularitet som er foreskrevet i mikrotjenestearkitektur - viser seg å være vanskeligere enn forventet.

Bruk av mikrotjenester er virkelig en naturlig progresjon av tjenesteorientering og bruk av skybaserte systemer. Evnen til å dekomponere kurskornede tjenester til mikrotjenester er bare en god idé. Du vil ha flere tjenester som har flere bruksområder, for eksempel en oppdatering av varelagret tjeneste som kan brytes fra hverandre for å lese eksisterende lagerdata, endre eksisterende lagerdata til oppdaterte lagerdata, validere oppdaterte lagerdata og skrive oppdaterte lagerdata til lagring.

Når denne makrotjenesten er delt inn i fire mikrotjenester, kan du bruke dem i denne makrotjenesten. Eller du kan bruke dem i andre makrotjenester og sammensatte applikasjoner (tilgi det altfor forenklede eksemplet). Målet er å skrive en mikroservice en gang og bruke den mange ganger.

Det er bedre å skrive mikrotjenester på måter som gjør dem mer generiske og generelle formål, og som kan brukes i mange forskjellige bruksmønstre (i motsetning til eksemplene ovenfor som ikke er generiske, og som bare fokuserer på lagerdata). Dette er imidlertid der vanskeligheten kommer.

Essensen av å utnytte mikrotjenester effektivt er muligheten til å sette opp rammeverk for dekomponering av tjenester der maksimalt antall mikrotjenester blir gjenbrukt. Denne ferdigheten har imidlertid vært vanskelig for de fleste applikasjonsarkitekter å utvikle.

Jeg har brukt en god del av tiden min de siste årene på å presse gjennom mikrotjenester-aktiverte applikasjonsdesign og finne at de fleste av dem ikke har den nødvendige planleggingen for å dra full nytte av mikrotjenester. Jeg har sett en mengde finkornede tjenester som er skrevet en gang og utnyttet en gang, og mangler kjernefordelen med hva mikrotjenester er til: gjenbruk av herdede og testede små tjenester.

Som undersøkelsen påpeker, finner vi ut at riktig spaltning av tjenester til mikrotjenester - og tjenesteorientering generelt - er en bro for langt for de fleste applikasjonsdesignere. Den eneste løsningen er å få litt opplæring, og forstå at dette er mer kunst enn vitenskap. Kanskje vi kan skyve forbi båsen.

$config[zx-auto] not found$config[zx-overlay] not found