Neplaťte zbytečně–efektivní využití Microsoft Azure
Financování cloudových řešení se může na první pohled jevit komplexně a nepřehledně, ale ve skutečnosti není až tak složité. Jenom se liší od tradičních modelů a má své způsoby optimalizace nákladů – používat cloud neefektivně jde velmi snadno a může se výrazně projevit na ceně.
Nejste si jisti, jak se financuje zvolené cloudové řešení? Nebo nevíte, pro jakou situaci je která služba vhodná? Pak je tento návod určen právě vám. Připravili jsme přehled specialit služeb Microsoft Azure a základní tipy a triky, jak začít a na co si dát pozor.
Nabízíme přehled těchto služeb:
- Web Sites (provoz webových aplikací)
- Virtual Machines (vývoj, testování nebo provoz hotových aplikací)
- SQL Database (databáze)
Web Sites
K čemu slouží
Platforma pro provoz webových aplikací. Zákazník má kontrolu nad aplikací a daty, nestará se o infrastrukturu, na které web běží.
Dá se použít například v těchto situacích:
- Jednorázový web s omezenou platností (např. pro flexibilní marketingovou kampaň).
- Komplexní webová aplikace s potřebou vykrývat nárazovou zátěž (např. e-shop).
- Větší množství malých webů (např. pro své zákazníky).
Pro nasazení webové aplikace si můžete zvolit jeden ze čtyř režimů:
- Free – maximálně 10 webů zdarma. Hodí se hlavně na testování, dema nebo jednoduché služby, u kterých příliš nezáleží, jaká bude URL a že se nedají škálovat.
- Shared – klasický sdílený hosting, takže web sdílí infrastrukturu s aplikacemi ostatních zákazníků.
- Basic a Standard – běží na vlastním dedikovaném stroji a nabízejí plnou podporu škálování. Ideální pro web v produkčním nasazení, ale také nejdražší.
Na co si dát pozor
Při vývoji a nasazení aplikace je potřeba myslet na specifika provozu v cloudu.
- Aby se daly přidávat instance a aplikace fungovala bez problémů, musí být bezstavová. Informace o uživatelských relacích (Session State) je potřeba ukládat do odděleného stálého úložiště (Table Storage, Azure SQL Database, Windows Azure Cache).
- Stejně tak nebude při škálování fungovat lokální databáze (např. SQL Server Compact). Opět je vhodné využít oddělenou databázi (Azure SQL Database, případně SQL Server ve virtuálním stroji).
- Basic a Standard instance se platí, i když jsou zastavené (Stopped).
Jak se platí
Mimo separátní ceny pro každý ze čtyř režimů se v rámci Web Sites platí také za:
- Objem dat v připojené SQL databázi.
- Data přenesená ven z Azure směrem k uživateli webu.
- Každou přidanou instanci.
- Lokalitu – datacentra (regiony) mají mírně odlišné ceny.
Jednotlivé weby lze sdružovat do tzv. Web Hosting plánů. Všechny aplikace v rámci jednoho plánu sdílejí lokalitu a nastavení režimu.
Hromadění více webů do Basic/Standard instance začíná být finančně zajímavé, pokud jich máte 8 a více.
Srovnejte 8 Shared webů:
S jednou Small instancí v režimu Standard:
Takový způsob se hodí třeba pro firmy, které nasazují spousty jednoduchých webů (reklamní agentury), nebo pro všechny, kdo provozují jednoúčelové microsites. Small instance možná vypadá, že není moc silná (1,6 GHz, 1,75 GB RAM), ale vydrží docela dost.
Aktuální ceny a další informace: https://azure.microsoft.com/en-us/pricing/details/web-sites/
Tipy pro větší efektivitu
- Není nutné vždy volit nejvýkonnější režim (Standard) nebo silnou konfiguraci instancí. Jakmile zvolená konfigurace nebude stačit na zvyšující se zátěž, dá se jednoduše přidat více instancí (škálovat do šířky) nebo upgradovat instance na vyšší výkon.
- Pro dočasné nebo testovací weby, které nepotřebují škálování nebo vlastní doménu, se hodí režim Free.
- Neškálujte instance, pokud nemusíte. Díky funkci auto-scale může cloud přidávání výkonu řídit automaticky (navýší kapacitu, kdykoliv je to nutné, a sníží ji, jakmile už není potřeba).
Virtual Machines
K čemu se hodí
Slouží primárně jako výpočetní kapacita pro vývoj, provoz i testování hotových aplikací. Platforma je vhodná především pro hotová komplexní řešení, jejichž převod na PaaS (rozložení do jednotlivých služeb Azure) by byl neefektivní nebo dokonce technicky neproveditelný.
Dá se použít ve všech těchto situacích:
- Server pro zpracování dat (např. pro online služby v oblasti analýzy nebo konvertování).
- Vývojářská pracovní stanice (např. pro vývoj na výkonném stroji přes vzdálený přístup).
- Hostování vlastích SW řešení (např. vlastní databázový server, autentizace, Apache Tomcat).
- Testování aplikací (díky rychlému vytvoření a spuštění virtuálního stroje s různými operačními systémy).
VM se neomezují pouze na software od Microsoftu a vedle Windows Serveru a klientských Windows podporují i Linux. Licence vybraných operačních systémů jsou součástí předplatného a není nutné je pořizovat zvlášť.
Na co si dát pozor
Virtuální stroje v Azure s sebou nesou jistá omezení:
- OS disky mají strop 127 GB.
- Data disky mají strop 1 TB, ale platí se jen za využitou kapacitu (takže je lepší je nastavit na maximum).
- Pokud se VM vypne přes OS, tak je ve stavu „Shutdown“, ale pořád se účtuje. Je potřeba vypnout přes portál na „Shutdown (Deallocated)“.
- SLA zaručující dostupnost 99,95 % platí pouze pro dvě a více instancí ve stejném Availability Setu.
Jak se platí
Ceny závisí na několika parametrech:
- konfigurace VM – A0-A9, liší se počtem jader a velikostí paměti,
- software – Windows, Linux, Oracle,
- typ instance – Basic nebo Standard,
- umístění (region) – každý region má mírně odlišné ceny.
Virtuální stroje se platí po minutách běhu, v ceníku jsou však uvedeny hodinové hodnoty (přepočítávají se). Šikovným vypínáním a zapínáním tak lze výrazně ušetřit.
V přehledu billingu reflektuje graf „Compute hours“ všechna jádra za celkový hodinový čas běhu virtuálního stroje.
Na obrázku je vidět graf spotřeby dvou virtuálních strojů s celkem pěti jádry a non-stop provozem.
Dále se platí za:
- Objem dat uložených na virtuálním disku každého stroje – počítá se OS disk a jakýkoliv další připojený disk.
- Oracle VM a software. Nedá se hradit z kreditu (MSDN nebo Free Trial) a je potřeba registrovat platební kartu.
Neplatí se:
- Zvlášť za licence operačního systému (cena je obsažena v předplatném).
- Vypnuté a delokované virtuální stroje – je potřeba VM vypnout přes portál (tlačítko „Shutdown“) a ujistit se, že je ve stavu „Stopped (Deallocated)“. Pouze „Stopped“ při vypnutí zvnitřku VM znamená, že výpočetní prostor je stále alokován a tedy i účtován.
- Temporary disk (D:\), který má každá VM připojený.
- Nevyužitou kapacitu datových disků (přestože mají nastavenou maximální velikost).
Také je potřeba mít na paměti, že ceny uvedené na webu jsou bez daně.
Aktuální ceny a další informace: https://azure.microsoft.com/en-us/pricing/details/virtual-machines/
Tipy pro větší efektivitu
- Zbytečně nepřemršťujte konfiguraci virtuálních strojů – není potřeba nechávat na začátku rezervy, dodatečný výkon se dá přidat (i odebrat) kdykoliv přes Azure portál.
- Vypínejte virtuální stroje, které nepoužíváte. Pokud to uděláte přes portál nebo PowerShell a virtuální mašina bude ve stavu Stopped (Deallocated), neplatí se za ni.
- Řízení spotřeby jde i automatizovat pomocí služby Azure Automation a PowerShell skriptů (http://gallery.technet.microsoft.com/scriptcenter/).
- Pamatujte, že s větším počtem jader a paměti roste spotřeba.
- Rozmyslete, zda se nevyplatí upravit aplikaci a využít kombinace PaaS služeb.
SQL Database
K čemu se hodí
Služba Azure SQL Database poskytuje tradiční SQL databázi s vysokou dostupností, škálovatelností a zabezpečením. Hodí se převážně pro nové aplikace, založené na cloudu, případně pro existující software, který pouze změní datový zdroj.
Základy a jak na to
https://azure.microsoft.com/en-us/documentation/articles/sql-database-dotnet-how-to-use/
Služba odděluje logickou a fyzickou administraci – zákazník má pod kontrolou uživatele, databáze, tabulky apod., ale o disky, servery a úložiště se stará Microsoft.
Alternativou je nasadit plnohodnotný SQL Server do virtuálního stroje (na to je ale potřeba mít patřičnou licenci). Klíčová kritéria pro posouzení, která z variant je vhodná:
- kompatibilita s krabicovým SQL Serverem (pokud například aplikace využívá některé specifické funkce, které nejsou v cloudu k dispozici),
- kontrola (Azure SQL Database nenabízí takové možnosti správy),
- potřeba škálování (ať už v současnosti pro pokrytí špiček, nebo výhledově do budoucnosti).
SQL ve VM |
SQL jako služba |
migrace existující aplikace nebo hybridní řešení |
nové, cloud-based aplikace |
platí se výpočetní výkon |
platí se za velikost databáze |
plná kontrola nad OS |
žádná kontrola nad OS |
ruční správa a aktualizace |
automatické aktualizace |
vertikální škálování |
horizontální škálování |
Existuje několik možností, jak migrovat existující databáze ze SQL Serveru do Azure SQL Database. Shrnuje je tento článek v dokumentaci: https://msdn.microsoft.com/library/azure/ee730904.aspx
Na co si dát pozor
Je třeba mít na paměti, že přestože základem cloudové databáze je SQL Server a podporuje většinu jeho funkcí, jedná se o mírně odlišnou verzi, která má svá omezení:
- V současné době podporuje pouze SQL Authentication (nikoliv Windows Authentication).
- USE nepřepíná mezi databázemi, je potřeba se připojit přímo.
- Nepodporuje distribuované transakce (XA).
- Limit počtu databází pro každý server je 150 včetně databáze master (tzn. že v rámci jednoho serveru je možné vytvořit 149 databází).
- Škálovat do šířky (scale-out) nelze prostým přidáním instancí jako u ostatních služeb, ale je potřeba použít jiné způsoby.
- Nepodporuje některé T-SQL příkazy:
Omezení Azure SQL Database: https://msdn.microsoft.com/en-us/library/azure/ee336245.aspx
Jak se platí
Platí se za velikost databáze v GB (zaokrouhleno nahoru) a dny provozu (zaokrouhleno na celý den).
Pokud například vytvoříte databázi, která bude velká 1,4 GB a ve stejný den ji zrušíte, zaplatíte částku odpovídající 2 GB a jednomu dni.
Dále se platí za:
- Objem přenesených dat z databáze k uživateli aplikace. Přenosy opačným směrem účtovány nejsou.
- Interní přenosy dat mezi datacentry. Pokud například webová aplikace sídlí v US regionu a využívá SQL databázi v Evropě, účtují se datové přenosy podle standardního ceníku.
- Export databáze – funkce Export vytvoří dočasnou kopii databáze (best-practice pro zachování konzistence) a tu teprve vrátí jako soubor BACPAC. A protože jsou databáze účtovány po dnech, je dočasná DB v daném dni naúčtována.
Aktuální ceny a další informace: https://azure.microsoft.com/en-us/pricing/details/sql-database/
Jak sledovat a řídit spotřebu?
Platba podle aktuální spotřeby je specifikum cloudu, které může působit komplexněji, než ve skutečnosti je. Azure má v sobě zabudované mechanismy, jak spotřebu sledovat a řídit.
Aktuální přehled
Na aktuální přehled spotřeby se můžete podívat kdykoliv. Kromě počtů jednotek a množství peněz tu najdete i odhad, zda zbývající kredit vydrží do konce zúčtovacího období.
Preferujete-li přesná čísla a Excel, stačí v pravém panelu kliknout na „Download usage details“ a vybrat období, které vás zajímá:
Kudy tam:
- https://account.windowsazure.com
- Subscriptions
- zvolit subscription
Spending Limit
Pokud používáte některou z kreditových nabídek (Free Trial, MSDN...), Azure má nastavený limit útraty 0 €. To znamená, že pokud vaše spotřeba v daném měsíci překročí kredit, který máte k dispozici, všechny služby se automaticky deaktivují až do začátku dalšího zúčtovacího období. Předejde se tak nechtěným platbám.
Takhle to vypadá, když si nedáte pozor a rozjedete víc virtuálek, než na kolik máte kredit:
Spending limit lze odebrat, ale potom už není možné ho znovu aktivovat.
Kudy tam:
- https://account.windowsazure.com
- Subscriptions
Alerts
Zatím v Preview je šikovná služba Alerts, která umožňuje nastavit až pět e-mailových upozornění v případě, že kredit dosáhne stanovené hodnoty nebo účet vyšplhá na stanovenou částku.
Kudy tam:
- https://account.windowsazure.com
- Subscriptions
- zvolit subscription
- Alerts
Pro aktivaci je potřeba vybrat Billing Alert Service v Preview Features.
Poznámka: Jistě jste postřehli, že výčet služeb není vyčerpávající. Tento článek jsme se rozhodli povýšit na živoucí organizmus, který se bude průběžně vyvíjet, růst a aktualizovat. Postupně bychom rádi pokryli další součásti Microsoft Azure a přidali více praktických tipů.
Martin