Platforma Vert.X
Total Page:16
File Type:pdf, Size:1020Kb
Univerzita Hradec Králové Fakulta informatiky a managementu katedra informatiky a kvantitativních metod DIPLOMOVÁ PRÁCE Analýza výkonnosti cloud computingové infrastruktury Autor: Michael Kutý Studijní obor: Aplikovaná informatika Vedoucí práce: Ing. Vladimír Soběslav, Ph.D Hradec Králové, 2016 Prohlášení Prohlašuji, že jsem diplomovou práci vypracoval samostatně a uvedl jsem všechny použité pra- meny a literaturu. V Hradci Králové dne 29. srpna 2016 Michael Kutý ii Poděkování Rád bych zde poděkoval Ing. Vladimíru Soběslavovi, Ph.D za odborné vedení práce, podnětné rady a čas, který mi věnoval. Také bych rád poděkoval své rodině a přátelům za trpělivost a morální podporu během celého studia. iii Anotace Diplomová práce se zaměřuje na problematiku měření a porovnávání výkonnosti clou- dových platforem a poskytovatelů. Cílem této práce je představit základní kvantitativní znaky a charakteristiky cloudových služeb a následně navrhnout a implementovat soft- ware pro automatizované testování a sběr dat z libovolných platforem a poskytova- telů. Nástroj bude využit pro testování vybraných poskytovatelů veřejného cloudu a výsledná data budou použita pro následné srovnání. Annotation This master thesis focuses on performence measurement and comparison of various cloud platforms and providers. The goal of this master thesis is to introduce the prin- ciples and terminology for performence evaluation of cloud platforms on a theoretical level and in a real world examples. The first part of practical part focuses on the descrip- tion of the architecture designed solutions and in next part will be tested and compared selected cloud providers. iv Obsah 1. Úvod 1 1.1. Cíl a metodika práce ................................1 1.2. Definice a použité pojmy .............................2 2. Cloud computingové služby 4 2.1. Definice cloud computingových služeb ......................4 2.1.1. Distribuční modely cloudových služeb ..................4 2.1.2. Modely nasazení cloudových služeb ....................6 2.2. Výkon cloudových služeb .............................7 2.2.1. Oblasti měření výkonu ........................... 10 2.2.2. Problémy s měřením výkonu ....................... 13 2.3. Testovací scénáře .................................. 13 2.3.1. Poskytovatelé cloudu ........................... 14 2.3.2. Uživatelé cloudu .............................. 14 2.4. Poskytovatelé cloudových služeb ......................... 15 2.4.1. Google Cloud Platform .......................... 15 2.4.2. Amazon Web Services ........................... 15 2.4.3. OpenStack ................................. 16 2.4.4. Azure .................................... 17 3. Hodnocení výkonu cloudových služeb 18 3.1. Měření výpočetního výkonu ............................ 18 3.1.1. Testovací nástroje .............................. 19 3.1.2. Významné charakteristiky ......................... 20 3.2. Měření výkonu paměti ............................... 20 3.2.1. Testovací nástroje .............................. 20 3.2.2. Významné charakteristiky ......................... 22 3.3. Měření diskového výkonu ............................. 22 3.3.1. Testovací nástroje .............................. 22 3.3.2. Významné charakteristiky ......................... 23 3.4. Měření síťového výkonu .............................. 23 3.4.1. Testovací nástroje .............................. 23 3.4.2. Významné charakteristiky ......................... 24 3.5. Doménově specifické ............................... 24 3.5.1. Testovací nástroje .............................. 25 3.5.2. Významné charakteristiky ......................... 26 v Obsah 3.6. Orchestrátory testů ................................ 26 3.6.1. PerfKit Benchmarker ............................ 27 3.6.2. Cloud Rapid Experimentation and Analysis Toolkit ........... 27 3.6.3. Faban .................................... 28 4. Architektura testovacího řešení 29 4.1. Modul sběru dat .................................. 29 4.1.1. Jenkins ................................... 31 4.1.2. Job builder ................................. 32 4.1.3. Postup testování .............................. 34 4.1.4. Konfigurace testů ............................. 34 4.2. Modul analýzy dat ................................. 36 4.2.1. Normalizace měřených dat ........................ 37 4.3. Modul vizualizace dat ............................... 38 4.3.1. Tabulkové zobrazení ............................ 38 4.3.2. Zobrazení v grafu ............................. 38 5. Test vybraných cloudových služeb 40 5.1. Výběr testovaných instancí ............................. 40 5.2. Testovací prostředí ................................. 41 5.3. Zpracování naměřených dat ............................ 42 5.3.1. Výpočetní výkon .............................. 42 5.3.2. Síťový výkon ................................ 42 5.3.3. Diskový výkon ............................... 44 5.3.4. Výkon paměti ............................... 44 5.4. Srovnání pro vybrané scénáře ........................... 45 5.4.1. Srovnání pro aplikační servery ...................... 46 5.4.2. Srovnání pro databázové servery ..................... 47 6. Závěr 49 6.1. Možnosti dalšího výzkumu ............................ 50 6.1.1. Test více typů instancí ........................... 50 6.1.2. Srovnávací algoritmy ............................ 50 6.1.3. Podpora dalších nástrojů .......................... 50 Literatura 51 PřílohyI A. Celkový souhrn výsledků testů II vi 1. Úvod V současné době existuje na trhu velké množství cloudových platforem, poskytovatelů a nástrojů pro provoz aplikací ve virtualizovaném prostředí. Výběr vhodné platfromy z hlediska výkonu je pro softwarového inženýra nebo manažera proto velmi kompli- kovaný. Existuje množství vědeckých prací a postupů, které se zabývají problematikou srovnávání cloudových služeb [1], [7], [33]. Mnoho z nich je však založeno na složitých matematických modelech. To je také důvod, proč nejsou výrazně rozšířeny a většina z nich není používána v praxi. Výběr cloudové platformy pak ve společnostech neprobíhá systematicky a často při- pomíná spíše náhodný proces, který ve většině případů končí výběrem první možnosti z mnoha poskytovatelů, a to bez ohledu na analýzu kvalitativních znaků jednotlivých prvků výběru. 1.1. Cíl a metodika práce Cílem této práce je představit základní kvalitativních znaky a charakteristiky cloudo- vých služeb. Hlavní oblastí výzkumu jsou infrastrukturní cloudové služby (IaaS), které přímo ovládají hardwarové prostředky a mají bezprostřední vliv na výkon provozo- vané aplikace, případně ostatních virtuálních cloudových služeb, které jsou na IaaS službách závislé. Praktická část práce je zaměřena na návrh a implementaci jednoduché aplikace pro běh automatizovaných testů výkonu, které jsou schopné otestovat velké množství cloudových platforem a získat data pro další zpracování. Výstupem běhu testovací aplikace jsou strukturovaná data, které budou dále využita pro systematický popis a výběr nejvhodnější cloudové platformy. Díky těmto přístu- pům jsme schopni automatizovaně a opakovaně testovat a měřit důležité charakteris- tiky IaaS služeb. Na základě těchto dat pak lze provádět kvalifikované výběry. Druhá kapitola detailně popisuje jednotlivé cloudové služby, jejich definice, rozdě- lení a modely použití. Třetí kapitola popisuje základní kvantitativní charakteristiky in- frastrukturních cloudových služeb a nástroje, které jsou vhodné pro měření dané cha- rakteristiky. Čtvrtá kapitola popisuje architekturu a způsob realizace navržené aplikace pro opakované pouštění definovaných testovacích scénářů. Pátá kapitola pak popisuje vybrané infrastrukturní služby, naměřené testovací hodnoty a jejich analýzu. Poslední 1 Definice a použité pojmy kapitola uzavírá tuto práci návrhem dalších možností výzkumu. Cloudové platformy nemají jednotné API a postup klientského přístupu. Každá clou- dová platforma je jedinečná, liší se možnostmi použité virtualizační platformy, topolo- gií sítě, použitým diskovým úložištěm. Pro každé testování systému je nutné vytvořit testovací scénář a jedinečný model, který detailně definuje potřebné servery, sítě a soft- warové služby pro běh testu. V souvislosti s tím pak vyvstávají otázky, které jsou cílem této práce. ∙ Jak identifikovat vhodný virtuální stroj od různých poskytovatelů cloudových služeb? ∙ Který typ virtuálního stroje dokáže obsloužit největší počet uživatelských poža- davků za nejnižší cenu? Pro vypracování praktické části byl použit nástroj Jupyter, který umožňuje zápis funkcí v jazyce Python s možností okamžitého spuštění a úpravy kódu. Díky jednot- nému formátu zápisu kódu testovacích aplikací, je možné je snadno sdílet včetně kon- figurací, scénářů a ukázkových výsledků. Všechny použité skripty a výsledky jsoudo- stupné v přílohách. 1.2. Definice a použité pojmy V současné době není terminologie měření cloudových služeb dobře definována. Různé zúčastněné strany z ICT oboru používají stejné pojmy s mírně odlišnými (někdy si od- porujícími nebo překrývajícími se) významy. Na vině může být široká škála oblastí, kde se informační a komunikační technologie (software, telekomunikace, průmysl) uplat- ňují. Každá oblast má svou vlastní historii a používá vlastní jazyk pro popis věcí. Ná- sledující výčet vysvětluje základní definice a pojmy, které jsou nezbytné k porozumění textu této práce. Metrika Je pojem popisující vybranou kvantitativní charakteristiku. Spolu s vlastní nu- merickou hodnotou definuje potřebné metadata: jednotku měření, čas měření, místo sběru, informace o sběrovém agentu, transformačním agentu, atd. Jednotka