- CoreOS – moderní clusterovaný OS pro datová centra (1) – Úvod a instalace
- CoreOS – moderní clusterovaný OS pro datová centra (2) – Etcd, distribuovaný state
- CoreOS – moderní clusterovaný OS pro datová centra (3) – Etcd a konzistence
- CoreOS – moderní clusterovaný OS pro datová centra (4) – Fleet
- CoreOS – moderní clusterovaný OS pro datová centra (5) – pokročilý Fleet
- CoreOS – moderní clusterovaný OS pro datová centra (6) – je to Docker orchestrátor?
V předchozích článcích jsme poznali architekturu CoreOS, nainstalovali si cluster a vyzkoušeli klíčové funkce clusteru – Etcd a Fleet. Podařilo se nám spouštět aplikační Docker kontejnery v rámci celého clusteru. CoreOS si sám zvolil node a v případě jeho selhání spustil kontejner jinde. To zní jako orchestrace kontejnerů a ona vlastně je. To nás ale vede ke srovnání CoreOS s nástroji jako je Kubernetes, Swarm nebo Mesos Marathon. Konkurují si?
CoreOS vs. kontejnerové orchestrátory
Fleet je v zásadě orchestrační nástroj, ale je velmi nízkoúrovňový. Pokud jste enterprise a chcete začít psát cloud native aplikace, doporučuji nehrabat se v překotném světě kontejnerových orchestrátorů a jít do Platform-as-a-Service Cloud Foundry. Ta má krásnou a užitečnou tvář pro vývojáře. Pokud potřebujete vyšší flexibilitu a chcete se ponořit do kontejnerových orchestrátorů, Kubernetes vám dá asi nejlepší mix výborných high-level funkcí a jednoduchosti použití i nasazení. Docker Swarm toho umí méně, ale používá naprosto stejné koncepty a API jako Docker samotný, takže pokud už jste investovali čas do získání (klasických single host) Docker znalostí, bude to dobrá volba.
Fleet můžete ovlivnit v jeho rozhodování a umístění služby (stejně jako všechny zmíněné další). Pokud je ale pro vaše vidění světa zásadní mít nesmírně inteligentní scheduler, který navíc dokáže pracovat nejen s kontejnerovou aplikací, ale zahrnuje i další (často obtížně kontejnerizované) technologie jako Hadoop, Spark či Storm, podívejte se na Mesos. Je dokázáno, že škáluje na desetitisíce fyzických serverů – je to nejvíce ověřená platforma (a také, alespoň z mého pohledu, nejsložitější).
Fleet jako orchestrátor vašich kontejnerizovaných aplikací? Šel bych do vyšších nástrojů. Ty ale také potřebují běžet v nějakém OS… přemýšlíte správně, čtěte dál.
CoreOS vs. Etcd
Etcd je v kategorii distribuovaných systémů pro service discovery a sdílení state v clusteru velmi populární i zcela mimo působnost samotného CoreOS. Nechme stranou Redis, který je sice také distribuvaný Key-Value store podobného typu, ale je zaměřen spíše na sdílení aplikačního stavu, než service discovery a clustering (ale dá se použít i tak). Klasickým konkurentem Etcd je Zookeeper a ten, alespoň z mého lenivého pohledu, je nepříjemně složitý. Proto bych volil výběr mezi Etcd a Consul (o něm na cloudsvětu ještě uslyšíte). Etcd toho má víc za sebou – úspěch v CoreOS, Cloud Foundry, Kubernetes a dalších významných projektech. Consul na druhou stranu jde za rámec service discovery a sdílení stavu a nabízí v jednom nástroji i health sledování služeb (něco co Etcd neřeší a potřebuje k tomu parťáka) a je kompatiblní s DNS způsobem objevování služeb (zeptat se můžete jak přes API, tak i klasickým DNS protokolem, což se může hodit pro některé starší aplikace).
CoreOS jako ideálního hostitel vyšších nástrojů
Podkladový OS potřebujete. Asi by měl být malý a optimalizovaný pro kontejnery. Měl by se dát jednoduše a pokud možno automaticky a bez rizika často updatovat. Ideální by bylo, kdyby se daly služby a kontejnery těch vyšších nástrojů startovat a udržovat přes celou skupinu hostitelů, spíše než po jednom. Vybraný OS by měl být cloudově zaměřen, takže po startu čekat na user-data a podle nich se přizpůsobovat. Bylo by fajn, kdyby už měl od začátku připravený Docker a třeba Etcd, kam napojíme Swarm nebo něco podobného.
Připomíná vám to něco? Myslím, že přesně tohle je pro CoreOS skvělá role.