LAB OF SOFTWAREARCHITECTURES AND INFORMATION SYSTEMS FACULTY OF INFORMATICS MASARYK UNIVERSITY NÁVRHSWARCHITEKTURYWEBOVÉ SLUŽBYPRO PROVOZVCLOUDOVÉM PROSTŘEDÍ Mgr. David Gešvindr Motto • Běžná webová aplikace navržená pro provoz na vlastním serveru není schopná využít potenciálu cloudu • Její provoz bude drahý a neefektivní • Aplikace je třeba navrhovat s ohledem na vlastnosti cloudového prostředí • Široké portfolio dostupných služeb • Kdykoliv může cokoliv selhat • Třeba optimalizovat podle více kritérií: cena, škálovatelnost • Vysoké náklady na výkonnou relační databázi Definicecloudu „Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.“ - National Institute of Standards andTechnology Hlavnívlastnosticloudu • On-demand self service • Broad network access • Resource pooling • Rapid elasticity • Measured service Servisnímodel • Software as a Service (SaaS) • Platform as a Service (PaaS) • Infrastructure as a Service (IaaS) • Veřejný cloud • Privátní cloud • Hybridní cloud Modelnasazení MicrosoftAzure • Cloudová platforma poskytující bohaté spektrum služeb: • IaaS • PaaS • SaaS ArchitekturaMicrosoftAzure • Datacentrum řídí cloudový operační systém • Jádrem je komponenta Fabric Controller Windows Server Fyzický HW (server) Exchange Server SQL Server Windows Azure Datacenter Exchange Online SQL Azure Hlavnítypyslužeb • Výpočetní služby • AzureVirtual Machine • Azure Cloud Service • AzureWebsites • Datové služby • Azure Storage • Azure SQL Database • Document DB • Redis Cache Hlavnítypyslužeb • Analytické služby • HDInsight • Machine Learning • Stream Analytics • Data Factory • Event Hubs • Integrační služby • Service Bus Návrhškálovatelnéarchitektury • Jednodušší komponenty s jasným účelem • Jasně definované komunikační rozhraní • Opatrný přístup k univerzálním hotovým komponentám • Distribuce datových zdrojů • Replikace dat • Jednoduché a škálovatelné konektory bez aplikační logiky Distribucedatovýchzdrojů • StorageTiering • Rozdělení dat do různých úložišť s různými vlastnostmi • Azure SQL Database vs. No-SQL AzureTable Storage dobrá špatná velmi dobrá $0.095 per GB $0.3per GB $103per GB Škálovatelnost Cena Casestudy:VolbyvUSA • Příklad prezentován na konferenciTechEd 2014 technickým ředitelem Azure Markem Russinovichem • Celá přednáška: http://channel9.msdn.com/Events/TechEd/Europe/2014/CDP-B337 • Sledování výsledků voleb Architekturaslužby …Web Role … Azure Blob Azure DB Results Main Worker Role … … Očekávanázátěž • Ukázalo se, že každý požadavek na zobrazení stránky s výsledky vyústí v 10 dotazů do databáze • Očekávaná zátěž • Problémy: • Azure SQL škáluje přibližně do 1000 požadavků za vteřinu Expected Load Scenarios Expected PageViews TimeWindow (hrs) PageView/sec 10X/pvs DB Calls/sec Average 10,000,000 4 694 6,944 Peak Hour 6,000,000 1 1,667 16,667 ÚpravaSW architektury …Web Role … Azure Blob Azure DB Results Main Worker Role … … Cache Worker Role Jakvypadalazátěž Alokovanákapacita • S využitím databáze • S využitím cache Time Actual Page Views Time Window (sec) Page View/sec Calls/sec Difference Calls/sec Requests served 8pm+10 secs 448932 10 44893 448932 -447932 0,22% 8pm+30 secs 206925 20 10346 103463 -102463 0,97% 8:01 odp. 171231 30 5708 57077 -56077 1,75% 8:03 odp. 37835 120 3153 31529 -30529 3,17% 8:10 odp. 494423 420 1177 11772 -10772 8,49% 8:30 odp. 416379 1200 347 3470 -2470 28,82% Time Actual Page Views Time Window (sec) Page View/sec Calls/sec Difference Calls/sec Requests served 8pm+10 secs 448932 10 44893 448932 -288932 35,64% 8pm+30 secs 206925 20 10346 103463 56537 100,00% 8:01 odp. 171231 30 5708 57077 102923 100,00% 8:03 odp. 37835 120 3153 31529 128471 100,00% 8:10 odp. 494423 420 1177 11772 148228 100,00% 8:30 odp. 416379 1200 347 3470 156530 100,00% Casestudy2:Nákup naAmazonu • Víte, jak probíhá zpracování stránky při prohlížení produktu na e-shopu Amazon? • Stránka včetně doporučených produktů pro uživatele je uložená v úložišti S3 a je pouze načtena bez dalšího zpracování Architekturaslužby Windows Store Android iOS ASP.NET Administration CDN Asynchronnízávislosti • Výpočetní operace se provádějí asynchronně přes frontu Casestudy3:Chytrétermostaty HVAC Thermostat Thermostat BuildingRouter Web Role (Synchronous HTTP) Web Role Mobile User Interface Azure On-Prem Gateway WeatherWCF Service Azure Queue Email Queue SMTP Relay Zaneseníasynchronníchzávislostí HVAC Thermostat Thermostat BuildingRouter Web Role (Synchronous HTTP) Web Role Mobile User Interface Service Bus Email Queue Azure On-Prem Gateway SMTP RelayWeatherWCF Service Worker Role (write-leveling) Casestudy3:Závěr • Iniciální testování selhalo už při 35 000 připojených termostatech • Cíl byl 100 000 (150 000) termostatů • Hlavní problémy: • Synchronní HTTP handler • Aktualizace databáze po řádcích (nahrazeno dávkami) • Úprava výkonu databáze • Navýšení škálovatelnosti fronty jejím partitioningem Úpravavývojovéhocyklu • Automatizace • Testování v produkci • Velmi časté nasazení nových přírustků Novévýzvy • Jak ověřit chování služby v cloudu ještě před jejím vývojem? • Jak se bude naše stávající služba chovat po migraci? Pomůžeme si nějak? • Jak optimalizovat architekturu služby na míru očekávané zátěže podle různých kritérií? • Cena provozu • Schopnost škálovat • Odolnost proti výpadku LAB OF SOFTWAREARCHITECTURES AND INFORMATION SYSTEMS FACULTY OF INFORMATICS MASARYK UNIVERSITY NÁVRHSWARCHITEKTURYWEBOVÉ SLUŽBYPRO PROVOZVCLOUDOVÉM PROSTŘEDÍ Mgr. David Gešvindr