Hlavní navigace

Souboj s časem: Jak jsme nasadili aplikaci za týden

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?
22. 4. 2021

Sdílet

Tým Cisco se s touto výzvou zkusil poprat. „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ází na virtuálních serverech, služby aplikační logiky ve formě Java mikroslužeb zase na kontejnerovém clusteru Kubernetes.

„Základem infrastruktury je samozřejmě síť. Zvolili jsme nejčastěji používanou dvouvrstvou topologii s leaf – spine architekturou, postavenou na Nexus 9000 s trojicí APIC kontrolérů,“ vysvětluje Venzhöfer. Celé nastavení sítě bylo jednoduché a zcela automatizované. „Využili jsme na to Ansible skripty. Jde o open source konfigurační nástroj, 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 vyklikat 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. 

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ž na infrastrukturu lze 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é open source řešení, 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 CI/CD postupu, 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š.