Zpět na domů

Mikroslužby pohltí 40 % IT rozpočtu: výpočty

Článek analyzuje skryté výdaje mikroservisní architektury: 30–40 % IT rozpočtu na podporu při nízkých zátěžích. Srovnání TCO cloudu a serverů ukazuje rozdíl 13 mln RUB za 3 roky. Doporučuje se modulární monolit pro týmy do 40 osob.

40 % IT rozpočtu do kanálu: pravda o mikroslužbách
Advertisement 728x90

Mikroslužby versus monolit: skryté náklady na infrastrukturu, které činí až 40 % IT rozpočtu

U projektů s provozní zátěží do 30 požadavků za sekundu (RPS) vede nasazení Kubernetes, Kafka a 47 mikroslužeb k měsíčním cloudovým nákladům kolem 1 milionu rublů. Logy zabírají velké množství místa, podprocesy pravidelně končí chybou OOMKilled a vyžadují neustálý zásah DevOps inženýrů. Místo vývoje nových funkcí se proto najímají specializovaní pracovníci jen na udržování systému – toto „infrastrukturální břemeno“ spotřebuje 30–40 % celkového IT rozpočtu.

Pro týmy do 15 lidí taková architektura vytváří typický vzor: měsíčně 1 milion rublů na DevOps (2–3 inženýři s hrubým platem 450–500 tisíc rublů včetně daní). Monolit postavený na PostgreSQL s jedním part-time správcem systému je ročně o 10 milionů rublů levnější z hlediska fondu mezd.

Síťové zpoždění a pokles konverze

Požadavek na zobrazení stránky produktu v mikroslužbách prochází řetězcem: API Gateway → Služba ověření identity → Databáze produktů → Služba cen → Skladový systém → Recenze. Každý „hop“ přidává serializaci, deserializaci a síťové zpoždění – celkově 500–800 ms namísto ideálních 50 ms.

Google AdInline article slot
HTTP Request
  → Nginx (reverse proxy)          +2 ms
    → Express.js middleware #1-5   +8 ms, +45 MB RAM
      → ORM-objektová abstrakce      +12 ms (provádí 3 neoptimalizované JOINy)
        → PostgreSQL               +5 ms
      ← ORM serializace              +6 ms, +30 MB RAM
    ← JSON serializace               +3 ms
  ← Nginx gzip                     +2 ms

Celkem: ~38 ms, ~75 MB RAM na požadavek. Přímý SQL dotaz trvá 5 ms a spotřebuje méně než 1 MB. Zpoždění snižují konverzi o 5–8 %: každých 100 ms = 1 % ztráty tržeb (Amazon), 500 ms = 20 % neúspěšných požadavků (Google).

Zajištění nízké latence vyžaduje dodatečné inženýrské kapacity, což dále navyšuje náklady.

Celkové náklady na vlastnictví (TCO) cloudu: rozdíl 13 milionů rublů za 3 roky

Pro cluster s 32 vCPU, 128 GB RAM, spravovanou databází a Kafka:

Google AdInline article slot

| Položka nákladů | Veřejný cloud | Vyhrazené servery |

|----------------------|-----------------------|------------------------|

| Pronájem (měsíčně) | ~320 000 ₽ | ~100 000 ₽ |

Google AdInline article slot

| Spravované služby | +95 000 ₽ | 0 ₽ |

| Odchozí provoz | ~15 000 ₽ | Zahrnuto v ceně |

| Celkem za rok | ~5 160 000 ₽ | ~1 200 000 ₽ |

| Celkem za 3 roky | ~17 000 000 ₽ | ~4 000 000 ₽ |

Hlavní příčiny rozdílu:

  • Spravované služby Kubernetes/Kafka jsou 1,5–2× dražší než virtuální stroje.
  • HTTP volání namísto in-memory komunikace generují provoz a vyžadují load balancery.
  • Service Mesh, logování a metriky v Kubernetes spotřebují 20–30 % CPU.

Na vyhrazeném hardwaru správce systému služby nasazuje přímo – tím eliminuje nadbytečné náklady.

Atrofie prostředků a vývoj řízený životopisem (RDD)

Vrstvy abstrakcí (ORM, middleware) akumulují paměť: 75 MB na požadavek místo 1 MB. V cloudu znamená 32 GB nadbytečné paměti na 10 instancí navíc 200 tisíc rublů/měsíc.

RDD motivuje týmy nasadit Istio jen kvůli „krásné položce v životopise“: půl roku na nastavení (12–15 milionů rublů ve fondu mezd), rychlost vývoje funkcí klesne napůl a konkurence už je daleko vpředu. Autor odchází s „pokročilou technologií v CV“, zatímco obchod řeší následky.

Modulární monolit jako alternativa

Strukturu kódu organizujte do modulů s jasně definovanými hranicemi a samostatnými tabulkami v databázi – ale v rámci jednoho procesu.

| Parametr | Mikroslužby | Modulární monolit |

|-------------------------|---------------------|---------------------|

| Git repozitáře | 23 | 1 |

| Docker kontejnery | 47 | 1 proces |

| DevOps podpora | 3 inženýři | 1 správce systému |

| Latence volání | 500+ ms | <1 ms |

Výhody: přehledný kód, rychlé testování, nulový „infrastrukturální daň“. Nezávislé nasazování není kritické pro týmy 30–40 lidí. Náročné moduly (např. generování reportů) lze oddělit později.

Závislosti jsou soustředěny na jednom místě – jednodušší aktualizace a menší riziko závislostí typu left-pad nebo Log4Shell.

Inovační „žetonování“ a legacy budoucnosti

Omezte se na 2–3 nové technologie: grafová databáze = žeton → backend tedy Java/C#, databáze PostgreSQL. Běžné, dobře známé technologie s dokumentovanými chybami snižují rizika.

Dnešní hype = zítrašní legacy. Amazon Prime Video se vrátil k monolitu (úspora 90 % nákladů), Shopify používá modulární monolit, Segment zrušil mikroslužby.

Otázky CTO pro CEO:

  • Trvá cesta kliknutí uživatele až k odpovědi déle než 200 ms?
  • Platíme za cloud více než za dva fyzické servery?
  • Proč infrastruktura krade čas, který by měl jít na vývoj funkcí?

Klíčové body:

  • Mikroslužby spotřebují 30–40 % rozpočtu na DevOps a cloud při nízké zátěži.
  • Síťové zpoždění snižuje konverzi o 5–8 % bez viditelných metrik.
  • TCO cloudu je za 3 roky 4× vyšší než u vyhrazeného hardwaru.
  • Modulární monolit nabízí flexibilitu bez infrastrukturálního břemene.
  • Omezte hype na 2–3 inovační „žetony“.

— Editorial Team

Advertisement 728x90

Číst dál