Nasadit aplikaci už dávno neznamená jen její nahrání na server a spuštění. Vyžaduje to vytvoření vyladěné infrastruktury, spolehlivé sítě a nastavení politik tak, aby pokryly všechny možné scénáře. Dá se vůbec něco takového stihnout za týden?
Tým společnosti Cisco se s touto výzvou zkusil poprat. Jak se mu to s pomocí moderních technologií podařilo, si můžete prohlédnout na záznamu webináře Den ze života aplikace: Reloaded. „Naším cílem bylo otestovat nasazení aplikace od úplného začátku až po její spuštění za co nejkratší čas. Využili jsme přitom automatizaci a přístup infrastruktury jako kódu, aby byl celý proces opakovatelný a dal se integrovat do CI / CD postupu. A abychom si to ještě ztížili, kromě virtuálních serverů jsme se rozhodli ukázat i moderní, cloudově nativní přístup a část jsme proto nasadili v kontejnerech,“ vysvětluje zadání Josef Venzhöfer, Technical Solutions Specialist společnosti Cisco. Jelikož aplikace nebývají statické, součástí nasazení jsou i monitorovací nástroje.
Základem je síť
Zkušební aplikací byl poměrně jednoduchý e-shop se dvěma databázemi – Mongo DB na objednávky a MySQL na seznam sortimentu. Databázové služby se nacházejí na virtuálních serverech, služby aplikační logiky ve formě mikroslužeb Java zase na kontejnerovém clusteru Kubernetes.
„Základem infrastruktury je samozřejmě síť. Zvolili jsme nejčastěji používanou dvouvrstvou topologii s architekturou leaf – spine, postavenou na Nexus 9000 s trojicí kontrolérů APIC,“ vysvětluje Venzhöfer. Celé nastavení sítě bylo jednoduché a zcela automatizované. „Využili jsme na to skripty Ansible. Jde o konfigurační nástroj open source, který pomocí textové definice umožňuje nastavovat konfigurační postupy a lze s ním spravovat celou paletu služeb,“ říká.
Virtualizace z cloudu
O kompletní řízení konektivity a výpočetních prostředků se stará platforma Cisco UCS. „Její obrovskou výhodou je, že díky úvodnímu nastavení později při řešení případných problémů hned víme, kam se máme dívat,“ říká Miloš Pavlík, Technical Solutions Architect společnosti Cisco. UCS spolu se softwarově definovaným úložištěm vytváří hyperkonvergovanou platformu Hyperflex. „Na její nasazení jsme využili službu Cisco Intersight,“ říká Pavlík. „Celé nasazení probíhá automaticky z cloudu, nic se neřeší lokálně, stačí jen naklikat základní nastavení. Pokud bychom později chtěli aplikaci škálovat pomocí Intersightu, jednoduše klastr rozšíříme nebo si zvolíme hybridní prostředí,“ popisuje instalaci výpočetní a úložného infrastruktury. Kapacity lze od největších dodavatelů dokupovat přímo ze služby automaticky za nejvýhodnější cenu.
Na platformě Intersight běží i nástroj Intersight Workload Optimizer. „Umožňuje nám monitorovat stav a výkon všech komponent řešení, počínaje virtualizací přes vytížení infrastruktury až po stav sítě či diskových úložišť,“ říká Pavel Hanousek, Product Sales Specialist Cisco. IWO nejen upozorňuje na problémy, ale také předvídá a uživateli nabízí doporučení, jak infrastrukturu a aplikaci vyladit tak, aby fungovaly co nejefektivněji.
Na co myslet při kontejnerech
V takovém stavu už lze na infrastrukturu nasadit aplikaci. „Protože však chceme ukázat i moderní, cloud-native workload, využili jsme i orchestrace řešení Cisco Container Platform. To umožňuje řešit kompletní životní cyklus kontejnerového clusteru, postaveného nad Kubernetes,“ vysvětluje rozhodnutí Venzhöfer.
Nasazení je opět jednoduché a automatizované. Přestože jsou k dispozici i mnohá řešení open source, odborník upozorňuje na jejich úskalí. „Nejde totiž jen o kontejnerovou platformu, ale i o správu služeb, load balancing, propojení se sítěmi a podobně. Při otevřených řešeních bývá problém s podporou a integracemi,“ říká Miloš Pavlík. S CCP získává zákazník úplný ekosystém Kubernetes s plnou podporou Cisco. Pokud ji navíc zkombinuje s platformou Cisco Hyperflex, získá podporu na všechno. „Od prvního ,šroubku´ hardwaru, přes servery, konfigurace, až po samotné kontejnery a aplikace, které na nich běží,“ zdůrazňuje odborník.
Velké finále: aplikace
Způsob nasazení, tak aby se dal využít při postupu CI/CD, musí být opakovatelný, aby se při každé nové verzi nemuselo nic vytvářet nanovo. S tím souvisí parametrizace, která nasazování pro testovací a produkční prostředí zjednoduší.
„Cílem však není jen aplikaci nasadit, ale i produkčně monitorovat,“ říká Martin Diviš. „Na to právě slouží nástroj Cisco AppDynamics. Dokáže aplikace sledovat do značné hloubky, až do úrovně kódu.“ AppDynamics v moderním prostředí mikroslužeb lze nasadit, aniž se muselo jakkoli zasahovat do kódu, buildu nebo kontejnerů. Pro vlastní nasazení aplikace a vytvoření jejího prostředí jsme využili Terraform. „Jde o podobný nástroj jako Ansible, Terraform si však pamatuje stav nasazení i lokálně a umožňuje jednoduše aplikaci včetně jejího prostředí zase zrušit. V CI/CD prostředích proto dostává přednost,“ vysvětluje Diviš.
Přesný postup nasazení krok po kroku byl tématem webináře Den ze života aplikace: Reloaded.