Jak si přinést do Cloud Foundry PaaS váš vlastní Docker kontejner?
Jen kontejner nestačí
Na stránkách cloudsvet jsme v seriálu Praktický úvod do Docker poměrně detailně prošli vlastnosti kontejnerů. Ukázali jsme si řadu velmi zajímavých vlastností, ale také odhalili slabiny. Samotný Docker neřeší, jak zajistit komunikaci mezi kontejnery v různých host systémech, nechápe, jaké aplikace v něm běží, nedokáže vám dát rollback verzí, green/blue deployment, A/B testing ani HA.
Jen Ops nestačí
Ops nástroje jako je Docker Swarn nebo Kubernetes staví nad Dockerem a přináší možnost práce s clusterem. Můžete tak spouštět kontejnery redundantním způsobem, máte řešeno HA a v případě některých síťových nadstaveb (jako je Socket Plane) i overlay networking. Ano, jsou samozřejmě vhodné pro vývojáře, ale stále pracují především s kontejnerem, ne aplikací. Aplikační image (staging) si musíte vytvořit sami.
DevOps řešením je Platform-as-a-Service
Dev část do kontejnerového světa dostanete v PaaS jako je Helion Development Platform postavené na Cloud Foundry a Docker. Na vstupu do PaaS je přímo aplikační kód a definice jeho potřeb (knihovny, návaznosti, služby, databázee, cache, message bus apod.). PaaS, podobně jako Docker orchestrátory řeší HA, distribuci v rámci clusteru a tak podobně. Navíc ale obsluhuje i jednotlivé služby, takže vám dá databázi na kliknutí (DBaaS) nebo message bus (MSGaaS) a další. Má v sobě URL balancing, takže automaticky rozhazuje zátěž na vaše běžící uzly a to včetně perliček jako je autoscaling podle zátěže. Automaticky řeší deployment nové verze za provozu (green/blue deployment) nebo dovoluje otestovat novou verzi na vzorku uživatelů (A/B testing). Podporuje verzování aplikace a možnost rollback na předchozí jedním kliknutím. Nechybí ani developerské záležitosti jako je timeline.
Přineste si svůj kontejner do PaaS aneb aplikace bez zdrojáků
Vybudování kontejneru ze zdrojáků s dodržením všech návazností je zásadní funkcí PaaS. Nicméně i pokud to nepotřebujete nebo mít nemůžete, tak se vám ostatní vlastnosti hodí. Určitě používáte databázi (a získáte hodnotu z DBaaS), určitě vás zaujme green/blue deloyment, A/B testing, zabudovaný balancer i rollback verzí.
Co když jednoduše zdroják nemáte a musíte použít hotovou binárku?
Co když pro vás vnitřek kontejneru připravila dodavatelská firma?
I přes to můžete zůstat u DevOps, místo pouhého Ops. Helion Development Platformě můžete nově na vstupu dát nejen zdrojový kód aplikace, ale i hotový kontejner. Dejte ho na váš nebo veřejný hub, řekněte jak se jmenuje a o všechno ostatní se postará PaaS a všechny její další vlastnosti máte k dispozici – rollback, green/blue, A/B testing, HA, balancing a URL routing, timeline, DBaaS, MSGaaS i autoscaling.
Podívejte se na ukázku – je to příjemně snadné !
Proč tedy vůbec Kubernetes existuje? Je to špatně? Vůbec ne! Vše je o tom, jestli má mít váš systém názor. Co tím myslím?
Pokud vezmete Docker, Kubernetes, integraci do IaaS přes OpenStack Magnum, overlay síť, nějaké Dev nástroje pro tvorbu kontejnerů, HAproxy a tak dále a tak dále, tak získáte řešení, které si naprosto vyladíte na svoje potřeby. Obrovská míra flexibility, ale také vyšší náročnost. PaaS jako je Cloud Foundry má názor – tedy přijala za vás určitá rozhodnutí, nemůžete dělat všechno jak chcete. Jsem přesvědčen, že je dobré se těmto pravidlům podvolit (je to živá učebnice 12factor.net programování) a nechat se vést do cloud native. Nicméně třeba vám to vyhovovat nebude a pak je tady senzační skládačkové řešení. Ostatně – pokud si stavíte všechno sami, klidně můžete Cloud Foundry a Kubernetes nakombinovat.