Infrastruktura a 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
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
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.