Horizontální škálování webové app. Překážky ve škálování • bottle-necks • blob, blackbox • statefull aplikace • absence dokumentace • nepredikovatelné chování
5
Horizontální škálování webové app. Postup při škálování • vytvoření test-suite a vývojového prostředí • performance test, stanovení cílové performance • bottle-neck analýza • optimalizace as-is • rozdělení rolí • horizontální škálování v rámci stejných rolí
6
Horizontální škálování webové app. Vytvoření test-suite • klon konfigurace produkčního systému • jeden nebo více výkonných klientů • stejné prostředí, jako bude použito po optimalizaci • nikdy netestujeme na produkčním systému
7
Horizontální škálování webové app. Performance test – metriky pro web • request per second • concurrency, maximální udržitelný počet spojení • time per request • bandwidth • user experience
8
Horizontální škálování webové app. Performance test – nástroje • YSlow • AB • httperf
Horizontální škálování webové app. Optimalizace as-is • IO intenzivní operace přesunout do paměti • lazy loading pro neklíčové elementy (FB like buttons, etc) • optimalizace kódu (rekurze, memory leaks) • code coverage test • minimalizace overload recovery time
12
Horizontální škálování webové app. Rozdělení rolí • použití http proxy • zařazení http cache pro dynamický obsah • oddělení databáze a aplikačního serveru • oddělení http statického obsahu • použití Memcached/Membased/Redis
Horizontální škálování webové app. Performance test – obecné bottle-necky • filesystem • databáze • session management • paměť • cpu • síť bandwitdth – síť, latence
15
Horizontální škálování webové app. Nástroje pro diagnostiku • free
• mysqltuner.pl
• top
• vmstat
• iotop
• netstat
• iostat
• iptraf
• collectd
• ntop
• mysql slow query log • strace
16
• mtop
DeltacloudAPI – seznámení
17
DeltacloudAPI – seznámení Infrastructure as a Service (IaaS) • kdykoli vytvářet servery • provádět akce (zapnout, vypnout, restartovat, smazat) • zjistit stav, ip adresy, hw konfiguraci, název image
Jak? • web UI - prototyping • API - integrace 18
DeltacloudAPI – seznámení „Many clouds = many APIs Many APIs = many problems”
DeltacloudAPI – seznámení Proč další API? • industry standard vyvíjeny společností RedHat • abstrakční vrstva nad cloud providery • 0 % vendor lock-in • legacy support – zpětně kompatibilní • RESTful API – podpora Ruby, Python, Java… • dostupná dokumentace
21
DeltacloudAPI – seznámení Datový model • instances – název, veřejné IP, lokální IP, možné akce • images – název • hardware profiles – ram, storage, CPU • realms, flavours – tarify, úrovně, datacentra
základní akce • vytvořit, zapnout, vypnout, restartovat a odstranit server 22