Junior
Kas ir mikroservisi?
sobes.tech AI
Atbilde no AI
Mikropakalpojumi ir arhitektūras stils, kurā lietojumprogramma tiek būvēta kā mazs, autonomis pakalpojumu kopums, katrs no kuriem veic noteiktu biznesa funkciju.
Galvenās īpašības:
- Mazs un koncentrēts: Katrs pakalpojums risina vienu šauru uzdevumu.
- Autonomisks: Tos var izstrādāt, izvietot un mērogot neatkarīgi.
- Datu pārvaldības decentralizācija: Katram pakalpojumam var būt savs datu bāze.
- Starppakalpojumu mijiedarbība: Parasti notiek caur viegliem protokoliem (piem., REST, gRPC).
- Kļūdu izturība: Viena pakalpojuma kļūme nav obligāti jāizraisa visa lietojumprogrammas atteice.
- Tehnoloģiskā heterogēnība: Dažādi pakalpojumi var izmantot dažādas programmēšanas valodas un tehnoloģijas.
Priekšrocības:
- Ātrāka izstrāde un izvietošana.
- Labāka mērogojamība atsevišķiem komponentiem.
- Paaugstināta izturība.
- Vieglāk ieviest jaunas tehnoloģijas.
Trūkumi:
- Sistēmas kopējā sarežģītība palielinās.
- Nepieciešama izplatītu transakciju pārvaldība.
- Grūtības ar monitoringu un atkļūdošanu.
- Prasība pēc nobriedušākas DevOps kultūras.
Salīdzinājums ar monolītu:
| Raksturlielums | Mikropakalpojumi | Monolīts |
|---|---|---|
| Izmērs | Mazs, koncentrēts pakalpojums | Viena liela lietojumprogramma |
| Izvietošana | Neatkarīga izvietošana | Visa lietojumprogrammas izvietošana |
| Mērogojamība | Atsevišķu pakalpojumu mērogošana | Visa lietojumprogrammas mērogošana |
| Noturība | Augsta (viena pakalpojuma kļūme nav kritiska) | Zema (komponenta kļūme ietekmē visu) |
| Tehnoloģijas | Iespēja izmantot dažādus tehnoloģiju komplektus | Vienots tehnoloģiju komplekts |
| Izstrādes komanda | Mazas autonomas komandas | Viena liela komanda |
| Sarežģītība | Augsta (sadarbība starp pakalpojumiem) | Zema (vienkāršām lietojumprogrammām) |
| Datu pārvaldība | Decentralizēta | Centralizēta |