Programovanieexpert

Čo je Mikroslužby (Microservices)?

Mikroslužby sú architektonický štýl, v ktorom je aplikácia rozdelená na kolekciu malých, nezávisle nasaditeľných služieb. Každá služba je zodpovedná za jednu biznis schopnosť a komunikuje s ostatnými cez ľahké protokoly.

Definícia Mikroslužby (Microservices)

Čo sú mikroslužby

Mikroslužby (microservices) sú architektonický vzor, ktorý organizuje aplikáciu do kolekcie voľne previazaných, jemnozrnných služieb komunikujúcich cez ľahké protokoly. Každá mikroslužba je navrhnutá okolo špecifickej biznis schopnosti, dá sa vyvíjať a nasadzovať nezávisle od ostatných a môže používať vlastnú databázu aj technológiu.

Výhody a nevýhody

  • Nezávislé nasadzovanie — každá služba sa dá aktualizovať bez reštartu celej aplikácie
  • Škálovateľnosť — škáluje sa len služba, ktorá to potrebuje, nie celá aplikácia
  • Technologická flexibilita — každá služba môže používať iný jazyk alebo databázu
  • Zložitosť — správa distribuovaného systému, sieťová komunikácia a ladenie sú náročnejšie
  • Konzistencia dát — distribuované transakcie sú oveľa zložitejšie než v monolite

Kedy použiť mikroslužby

Mikroslužby sú vhodné pre veľké aplikácie s viacerými tímami. Pre malé projekty alebo začínajúce startupy je zvyčajne lepšie začať s monolitom a migrovať na mikroslužby až keď je to potrebné. Mikroslužby úzko súvisia s princípmi domain-driven design a bežne sa nasadzujú pomocou kontajnerov (Docker) a orchestrácie (Kubernetes).

Praktický príklad

Príklad: E-shop rozdelený na mikroslužby:

  • User Service — registrácia, prihlásenie, profily používateľov
  • Product Service — katalóg produktov, vyhľadávanie, filtrovanie
  • Order Service — vytváranie a správa objednávok
  • Payment Service — spracovanie platieb cez Stripe/PayPal
  • Notification Service — odosielanie e-mailov a push notifikácií

Počas Black Friday stačí škálovať len Product Service a Order Service — ostatné služby bežia na pôvodnej kapacite, čím sa šetria zdroje.

Často kladené otázky

Čo sú mikroslužby?

Mikroslužby sú architektonický štýl, kde je aplikácia rozdelená na malé, nezávislé služby. Každá služba má vlastnú databázu, beží vo vlastnom procese a komunikuje s ostatnými cez API.

Aký je rozdiel medzi monolitom a mikroslužbami?

Monolit je jedna veľká aplikácia, kde všetko beží spolu. Mikroslužby rozdeľujú aplikáciu na nezávislé časti — každá sa dá vyvíjať, nasadzovať a škálovať samostatne.

Kedy by som mal použiť mikroslužby?

Mikroslužby sú vhodné pre veľké projekty s viacerými tímami, kde je dôležitá nezávislá nasaditeľnosť a škálovateľnosť. Pre malé projekty je monolit jednoduchší a rýchlejší.

Aké technológie sa používajú s mikroslužbami?

Docker (kontajnerizácia), Kubernetes (orchestrácia), API Gateway (riadenie komunikácie), message brokery (RabbitMQ, Kafka) a service mesh (Istio) sú bežné technológie v ekosystéme mikroslužieb.

Súvisiace pojmy

Potrebujete pomôcť s webom?

Napíšte mi a poradím vám s vaším projektom. Prvá konzultácia je zadarmo a nezáväzná.