Infrastruktura a nasazování změn

Pro informace ohledně rychlosti e-shopu navštivte náš SEO Checklist.

Nasazování změn

V rámci nasazování máme pro vývojáře zaveden systém, který umožňuje:

  • Automatický deployment (develop, release, stage a production)

    • Každý release má vlastní URL adresu pro testování klientem

  • Škálování

  • Správu kontejnerovaných aplikací

Systém je postavený na technologiích:

  • Kubernetes

  • Docker

  • Gitlab

Problém

Jelikož využíváme Headless E-commerce přístup (microservices), je nutné mít pro každý typ služby vlastní server a vlastní prostředí. V rámci klasické architektury může být relativně složité spravovat vícero oddělených aplikací v rámci jednoho projektu. Současně vyžaduje nastavení deploymentu na míru a jeho neustálou správu.

Z těchto důvodů nelze architekturu jednoduše škálovat.

V případě aktualizace aplikace vyžaduje nová verze jiné prostředí pro běh, které není se stávající verzí kompatibilní -> musí běžet v novém prostředí.

Vývojáři musí znát funkčnost a technologie celé aplikace pro různé změny:

  • Špatné rozdělení kompetencí vývojář / devops / server admin

  • Monolitický přístup neumožňuje změny technologií jednotlivých částí aplikace

Řešení

Jako řešení používáme Docker v rámci Kubernetes pro vytvoření oddělených prostředí pro jednotlivé typy služeb.

Kubernetes a Docker umožňuje velmi jednoduchou replikaci, což umožňuje:

  • Jednodušší používání aplikací

  • Škálování (i na úrovni aplikací)

  • Změnit technologie jednotlivých aplikací nezávisle -> rychlejší reakce na inovace

  • Automatický deployment

Toto řešení dále přináší:

  • Jednodušší identifikace bottlenecků a problémů s výkonem

  • Standardizaci technologií - lepší přenositelnosti a nezávislosti v rámci serverových poskytovatelů a jejich prostředí

Máme zavedené také standardizované API, takže při aktualizaci nemusí být nutné aktualizovat ostatní aplikace.