Zkusme se na okamžik vžít do role prodejce elektronických vstupenek, když se blíží premiéra dlouho očekávaného trháku – třeba Star Wars. Kapacita je omezená a fanoušci číhají, až se brány e-shopu otevřou a budou moct získat vzácný lístek na první promítání. Milý prodejce si mne ruce, ale zároveň se modlí, aby letos jeho web nápor návštěvníků vydržel a nespadl v prvních vteřinách po startu prodeje jako loni, když vstoupil do kin třetí díl oblíbené fantasy série. Co může udělat lépe?
Náš vystresovaný lístkař udělal to první, co ho napadlo, a zainvestoval do silnějšího hostingu. Většinu roku sice platí spoustu nadbytečného výkonu, který nevyužije, ale je alespoň klidnější. Do jeho situace bychom mohli posadit klidně provozovatele zpravodajského serveru nebo firmu s ERP systémem na virtuálních strojích, scénář je vždy velmi podobný: zákazník pokrývá nevyhnutelné nárazy výpočetním výkonem, který nevyužívá optimálně. Pojďme se podívat, jak mu můžete pomoci a posunout jeho uvažování moderním směrem.
Základem je zjistit, jaký výpočetní výkon bude v které fázi zatížení vlastně potřeba. Abyste nemuseli čekat na další Star Wars, spustíte zátěžové testy přímo z cloudu a uvidíte, kolik uživatelů utáhne slabý stroj, kolik jich zvládne průměrný a kolik silný. Pokud aplikace umí fungovat na více instancích webových serverů zároveň, je to lepší, protože ji můžete škálovat do šířky (místo jednoho silného stroje použijete tři slabé a jste flexibilnější). Podle toho potom můžete naplánovat pravidla škálování pro různé události.
U softwaru, který běží na virtuálních strojích (typicky ERP nebo tradiční účetní aplikace), je zase výhodné nastavit správně vypínání. Potřebujete účetní systém dostupný hlavně přes den, během osmihodinové pracovní doby? Tak na noc tři servery vypnete a necháte běžet jenom jeden.
Oba tyto přístupy vedou k tomu, že už se nenakupuje hardware do zásoby, ale náklady se přesouvají z investičních do provozních.
Teď změníme židli a podíváme se na cloud optikou vývojáře, jehož úkolem bude software správně přemigrovat a dál rozvíjet. Azure jde v čele otevřené politiky Microsoftu a podporuje v zásadě libovolnou technologii – v platformní vrstvě je to např. PHP, Python, .NET, Node.js nebo Java, v té infrastrukturní pak cokoli, co běží na Windows nebo na Linuxu. Pro vývojáře jsou atraktivní hlavně dva přínosy cloudu:
-
rychlost nasazení a testování,
-
možnost sáhnout si na takřka neomezený výkon.
Řekněme, že virtuální distribuce vstupenek používá API platební brány, které ale posílá odpovědi (callback) pouze přes šifrovaný kanál. Protože nechcete žádat o SSL certifikát, platit ho a rozjíždět na svém vývojovém serveru, založíte přes IDE nový web v cloudu a necháte Azure, ať vám HTTPS poskytne automaticky. Testovat pak budete na stejném hardwaru se stejnou konfigurací, kde poběží i produkční aplikace. Něco se nepovedlo? Celý webový server zrušíte a během několika minut vytvoříte znovu.
Jsou chvíle, kdy se hodí občas si sáhnout na „bestiální“ stroj. Řekněme 20 jader a 140 GB paměti. Nákup takového serveru by nejspíš obnášel spoustu přesvědčování a pádné argumentace. Ovšem s Azure je tu možnost tento proces obejít a nastartovat stroj v cloudu, kde vyjde na jednotky dolarů za hodinu. Obyčejný virtuál s Visual Studiem nebo SQL Serverem pro vývoj pak vyjde na jednotky dolarů měsíčně a můžete ho používat odkudkoli, kde je Internet. Třeba z mobilního telefonu. Jenom ho nezapomeňte důsledně vypínat, když se nepoužívá, jinak hrozí zbytečné náklady.
Paralelně s vývojem, testováním a škálováním většinou běží i diskuze se zákazníkem o spolehlivosti, bezpečnosti, zárukách úrovně služeb atd. Některé požadavky zůstávají odpovědností výrobce softwaru (například zajistit šifrování na aplikační vrstvě), s jinými dokáže cloud pomoci. Microsoft se například stará o pravidelné certifikování infrastruktury, kterou pronajímá v rámci Azure, a také garantuje službám „devítková“ SLA. Na dodavateli aplikace je potom správně propočítat, jakou úroveň služeb nabídne svému zákazníkovi (např. front end e-shopu má garantovanou dostupnost 99,95 %, zatímco databáze 99,99 %, celkem tak můžeme ze strany Azure počítat s dostupností 99,85 %).
Mnohé rozdíly plynou z povahy cloudu jako takového – expanzi e-shopu do zahraničí podpoří možnost nasadit aplikaci na různá místa po světě, ochranu před selháním datacentra zase zajišťuje automatická georedundance a zálohování do druhé lokality vzdálené stovky kilometrů.
Na závěr nesmíme opomenout nenápadnou, ale příjemnou skutečnost, že pokud bude z jakéhokoliv důvodu záhodno cloud opustit, není problém používané zdroje vzít a přenést třeba na lokální servery.
Zkusme se ještě jednou na okamžik vžít do role prodejce elektronických vstupenek, jenom o několik let později. Sága Star Wars se rozrůstá o další kousek, fanoušci šílí, objednávky se hrnou a e-shop statečně drží, všechny vstupenky jsou úspěšně prodány a doručeny – nejen na premiéru, ale rovnou i na další promítání. Během posledních let se ve spolupráci s dodavatelem podařilo vyladit škálování tak, aby přesně kopírovalo očekávanou zátěž, vývojáři hrnou nové funkce každý týden rovnou z testovacího prostředí a pomalu se připravuje spuštění elektronického obchodu na západním pobřeží USA. A když občas kus hardwaru selže? Okamžitě ho automaticky nahradí jiný a zálohy jsou po ruce.
Martin Šimeček, Filip Řehořík | Microsoft