V rámci vývoje aplikací existují dva různé přístupy. Tvorba tzv. monolitických aplikací a tvorba prostřednictvím mikroslužeb. Monolitické aplikace představují komplexní řešení, které je programováno najednou s jasně definovaným záměrem; microservices pak rozdělují architekturu aplikace na jednotlivé služby vyvíjené samostatně.

 

Představte si, že programujete aplikaci pro evidenci faktur. V rámci monolitického přístupu provedete analýzu celého procesu a následně programujete do doby, než je vše hotovo. Místo jednotlivých funkcionalit pracujete na kompletním produktu, což je logicky časově náročné. Termín dodání hotové aplikace je tak dlouhý a navíc je složité vstupovat do již hotového řešení s novými úpravami. Co když klient potřebuje změnit logiku některé funkce? Je potřeba přepsat celou aplikaci.

 

Na rozdíl od toho jsou mikroservices souborem jednotlivých „miniprogramů“, z nichž každý řeší jeden dílčí problém a které mezi sebou komunikují přes jasně definované rozhraní. Z pohledu aplikace pro evidenci faktur by tak jednotlivé funkcionality mohly vypadat následně:

  • práce s účetním dokladem (vytvoření, editace, mazání, …)
  • správa odběratelů
  • kontrola úhrady faktury v bance
  • řízení uživatelských práv aplikace

 

Výhody vývoje prostřednictvím microservices

Výhody vývoje prostřednictvím mikroslužeb jsou pak jasné. Na aplikaci může pracovat paralelně více vývojářů – každý jednotlivec či tým řeší konkrétní funkcionalitu. To slouží jako výrazná úspora času. Navíc je možno testovat konkrétní aplikaci již dříve – jasně definovaný rozsah funkcionality je možné zprovoznit bez ohledu na ostatní funkce a klient tak může aplikace v omezeném rozsahu používat už od začátku s jejich postupným rozšiřováním.

 

Oddělení jednotlivých funkcionalit do samostatných bloků pak lépe umožňuje reagovat na případné potřebné změny – stačí změnit konkrétní funkcionalitu a není potřeba zasahovat do celé aplikace.