Na stránkách cloudsvět už několikrát zaznělo jak vyvíjet cloud-native aplikace. Představme si dnes jeden z mnoha důvodů proč to udělat – automatické nafukování a sfukování podle potřeb.
Rekapitulace cloud-native z pohledu autoscale
Nejprve pojďme krátce zopakovat ty aspekty cloud-native, které potřebujeme pro automatické škálování.
- Žádný node neobsahuje nic, co není také někde jinde – není nikdy jedinečný a s jeho zánikem se běžně počítá
- Všechny aplikační a webové nody nemají žádný state
- Veškerý state aplikace je uložen výhradně v datové vrstvě (Redis, MongoDB, MySQL, sdílený file systém) a tato sama využívá distribuovaných principů (tedy běží na vícero replikovaných nodech)
Pokud tohle máme, co potřebujeme od PaaS, tedy Helion Development Platform postavené na Cloud Foundry, aby autoscaling dobře fungoval?
- Nechceme si vytvářet kontejner sami, jenom poskytneme kód s předpisem návazností a PaaS sestaví aplikační prostředí zcela automaticky, pokaždé stejně a bez chyb
- Výsledný droplet s aplikačním prostředím nechť je ve formě Docker kontejneru
- Uživatelský přístup k aplikaci ať je přes URL, které jde přes PaaS router, který zajistí load-balancing na jednotlivé nody a jejich porty
- PaaS rozprostře kontejnery přes infrastrukturu (konkrétně přes množinu VM, ve kterých je DEA, čili v zásadě Docker), drží si informace o tom kde který je a na jakém portu běží (což musí znát pro balancing)
Aplikace jako balonek
Vyjdeme-li z uvedených předpokladů, začíná to být velmi snadné. Ručně můžete změnit počet instancí třeba ze 3 na 6 a Helion Development Platform vybuilduje další tři kontejnery, někde je spustí a zařadí do load-balancing clusteru, takže se začnou používat. Stačí přece totéž udělat automaticky a je to.
Nejjednodušší scénář je využít autoscale podle zátěže CPU. Řeknete, že aplikace má běžet na minimálně 3 nodech (redundance) a maximálně na 10 (víc zdrojů už jí dát nechcete). Pokud je zátěž CPU přes třeba 70%, ať se přidá node. Pokud klesne pod 30%, ať se node ubere. PaaS už zajistí všechno ostatní. Kromě zabudované metriky CPU můžete svojí Helion Development Platform napojit na jiné monitorovací systémy a metriky a sledovat tak třeba nárůst odezvy aplikace nebo něco takového.
Podívejte se jak se to dělá v kraťoučkém videu: