Srovnání tří hlavních platforem pro orchestraci kontejnerů — Kubernetes, Apache Mesos/Marathon a Docker Swarm. Architektura, silné stránky a kdy co zvolit.
Proč orchestrace?¶
Docker vyřešil packaging a runtime pro jednotlivé kontejnery. Ale v produkci potřebujete:
- Spouštět stovky až tisíce kontejnerů napříč clustery
- Automaticky restartovat padlé kontejnery
- Škálovat služby na základě zátěže
- Rollovat deploymenty bez downtime
- Spravovat networking a storage
Orchestrátory automatizují tyto operační úlohy.
Kubernetes — Google DNA¶
Kubernetes přináší desítky let Google zkušeností s Borgem. Silné stránky:
- Deklarativní model — popíšete požadovaný stav, K8s ho udržuje
- Rich API a extensibilita
- Největší komunita a ekosystém
- Podpora od všech major cloud providerů
Slabiny: strmá learning curve, komplexní setup pro bare-metal, vyšší operační overhead pro malé týmy.
Mesos/Marathon — datové centrum jako počítač¶
Apache Mesos je battle-tested v Twitter, Apple a Airbnb pro desítky tisíc nodů. Marathon je container orchestration framework běžící na Mesosu.
Silné stránky:
- Extrémní škálovatelnost (10,000+ nodů)
- Multi-workload — kontejnery, Hadoop, Spark na jednom clusteru
- Zralý a stabilní
Slabiny: složitější architektura (Mesos + Marathon + ZooKeeper), menší komunita kolem kontejnerů specificky.
Docker Swarm — jednoduchost¶
Docker Swarm je nativní orchestrace od Dockeru. Cíl: jednoduchost a nízká bariéra vstupu.
Silné stránky:
- Integrovaný v Docker Engine
- Docker CLI kompatibilita — žádné nové nástroje
- Nejjednodušší setup a learning curve
Slabiny: méně features než K8s, menší ekosystém, nejistá budoucnost (Docker vs Kubernetes bitva).
Pro malé týmy a jednoduché deploymenty může být Swarm nejpraktičtější volba.
Závěr: Kubernetes je safe bet¶
V roce 2015 je bitva otevřená, ale momentum Kubernetes je nezpochybnitelný. Pro enterprise projekty doporučujeme Kubernetes jako strategickou platformu. Pro malé projekty zvažte Docker Swarm. Mesos má smysl pro organizace s extrémními škálovacími požadavky.