Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Blue-Green Deployment — nasazování bez downtime

08. 09. 2016 1 min čtení CORE SYSTEMSai

Nasazení nové verze = maintenance window, oznámení uživatelům, modlení. Blue-green deployment eliminuje downtime: dvě identická prostředí, přepnutí load balanceru, okamžitý rollback. Konec nočních deploymentů.

Princip

Dvě prostředí: Blue (aktuální produkce) a Green (nová verze). Nasadíte na Green, otestujete, přepnete router/LB na Green. Blue zůstane jako instant rollback. Problém? Přepněte zpět na Blue za sekundy.

Implementace s Nginx

# Přepnutí z blue na green
upstream app {
    server green-server:8080;
    # server blue-server:8080;  # zakomentováno
}

# nginx -s reload

Databázové migrace

Největší výzva. Obě verze musí fungovat se stejnou databází. Pravidla: přidávejte sloupce (neodebírejte), backward-compatible změny, Flyway/Liquibase pro verzované migrace. Destruktivní změny až po úspěšném přepnutí.

S Docker a Swarm

Docker Swarm rolling update je de facto blue-green na úrovni kontejnerů. docker service update --image myapp:2.0 postupně nahrazuje instance.

Zero downtime je dosažitelné

Blue-green deployment vyžaduje investici do infrastruktury a disciplínu u databázových migrací. Ale eliminace downtime a instant rollback stojí za to.

awsdevopsec2s3