Programmering

Tilstanden for mikrotjenester og cloud computing

I henhold til en nylig O'Reilly-radarundersøgelse om væksten inden for cloud computing sagde en af ​​de mere interessante målinger, at 52 procent af de 1.283 svar siger, at de bruger mikrotjenestekoncepter, værktøjer eller metoder til softwareudvikling. Af disse har et stort mindretal (mere end 28 procent) brugt mikrotjenester i mere end tre år.

Dette var den næststørste klynge blandt brugere af mikrotjenester. Den største gruppe, på mere end 55 procent, har brugt mikrotjenester mellem et og tre år. Desuden er kun 17 procent af brugerne nye inden for mikrotjenester med mindre end et års vedtagelse og brug.

O'Reilly påpeger også nogle beviser for, at interessen for mikrotjenester kan være på eller tæt på at nå sit højdepunkt. Også bemærket nedbrydning af servicerammer - i det mindste i den grad af granularitet, der er foreskrevet i mikrotjenestearkitektur - viser sig at være vanskeligere end forventet.

Brugen af ​​mikrotjenester er virkelig en naturlig udvikling af serviceorientering og brugen af ​​skybaserede systemer. Evnen til at nedbryde kurskornede tjenester til mikrotjenester er bare en god idé. Du har flere tjenester, der har flere anvendelser, såsom en opdatering af forløbets forløbstjeneste, der kan opdeles for at læse eksisterende beholdningsdata, ændre eksisterende lagerdata til opdaterede beholdningsdata, validere opdaterede lagerdata og skrive opdaterede beholdningsdata til opbevaring.

Når denne makrotjeneste er opdelt i fire mikrotjenester, kan du bruge dem inden for denne makrotjeneste. Eller du kan genbruge dem i andre makrotjenester og sammensatte applikationer (tilgiv det alt for forenklede eksempel). Målet er at skrive en mikroservice en gang og bruge den mange gange.

Det er bedre for dig at skrive mikrotjenester på måder, der gør dem mere generiske og generelle formål, anvendelige inden for mange forskellige anvendelsesmønstre (i modsætning til eksemplerne ovenfor, der ikke er generiske og kun fokuserer på beholdningsdata). Dette er imidlertid hvor vanskeligheden kommer.

Essensen af ​​effektiv udnyttelse af mikroservices er evnen til at oprette rammer for nedbrydning af tjenester, hvor det maksimale antal mikroservices genbruges. Denne færdighed har imidlertid været vanskelig for de fleste applikationsarkitekter at udvikle.

Jeg har brugt en god del af min tid i de sidste mange år på at skubbe igennem mikrotjenester-aktiverede applikationsdesign og finde ud af, at de fleste af dem ikke har den nødvendige planlægning for fuldt ud at udnytte mikrotjenesterne. Jeg har set en hovedvægt af finkornede tjenester, der er skrevet en gang og gearet en gang, og mangler kernefordelen ved hvad mikrotjenester er til: genbrug af hærdede og testede små tjenester.

Som undersøgelsen påpeger, finder vi ud af, at korrekt nedbrydning af tjenester til mikrotjenester - og serviceorientering generelt - er en bro for langt for de fleste applikationsdesignere. Den eneste beslutning er at få lidt træning, forstå at dette er mere kunst end videnskab. Måske kan vi skubbe forbi båsen.