Host-Tracker, služba monitorování webových stránek, pod Windows Azure
Publikováno: Artem Prysyazhnuk 2014-03-07 všechny článkyTi, kdo se aktivně zabývají webem, by měli znát společnost HostTracker z Ukrajiny, která od roku 2004 podporuje jednu z předních světových služeb monitorování webu. Jejím cílem je monitorovat stav a dostupnost webu v přístupu téměř v reálném čase. Pomocí systému výstražných zpráv umožňuje HostTracker zkrátit výpadky, zlepšit kvalitu služeb pro uživatele, rychle lokalizovat potíže atd.
Architektonicky zahrnuje HostTracker serverový hub, který funguje jako sběrač dat i řídicí centrum, a řadu softwarových agentů, spuštěných v různých regionech – obvykle využívají zařízení provozovaná významnými poskytovateli, hostiteli a pobočkami. Geograficky distribuovaná architektura zajišťuje společnou spolehlivost systému a také umožňuje sběr dat z hlediska rychlosti přístupu, šířky pásma a dalších klíčových výkonnostních charakteristik na regionální úrovni – což je pro mezinárodní obchod kriticky důležitá vlastnost.
První verze HostTrackeru, která stále funguje a poskytuje služby desítkám tisíc zákazníků, byla založena na Linuxu. Dnes je podporován devíti řídicími servery, umístěnými a organizovanými ve dvou DPC na principu kolokace, a několika desítkami agentů. Vezmeme-li v úvahu, že konečný cíl webového monitoringu je zaměřen na zvýšení doby provozuschopnosti webových zdrojů klientů – přičemž 95 % zákazníků HostTracker ji dokázalo zvýšit až na 99 % – pak výkon a dostupnost samotné služby nejsou jen kritické, ale spíše zásadní parametry, které ovlivňují celý byznys. Teoreticky by měl HostTracker vykazovat dostupnost blížící se 100 %. Rozsáhlý růst služby však tento úkol ztížil.
HostTracker se potýkal s neustále rostoucím síťovým provozem – problémem pro bezproblémový provoz služby. Nemožnost přidávat nové řídicí servery za chodu, potíže při údržbě nejednotného a víceletého hardwaru byly dalším omezujícím faktorem. Navíc snaha rozvíjet službu prostřednictvím širší podpory protokolů a síťových služeb narážela na určité překážky. “Bohužel pro Linux existoval omezený výběr hotových řešení a knihoven, zatímco vymyslet něco zcela nového bylo obtížné”, říká Artem Prisyazhnyuk, ředitel společnosti HostTracker. “Měli jsme nápad přehodnotit zásobník technologií, které používáme, na sofistikovanější a po bližším seznámení s platformou .NET, jejím potenciálem z hlediska škálovatelnosti a podpory sítí jsem si uvědomil, že to je přesně to, co jsme hledali.”
Bylo jisté, že přechod na zcela jinou platformu by měl být složitým úkolem – projekt se protáhl na tři roky. Bylo to však jako požehnání v přestrojení: během této doby spatřil světlo světa cloud computing, který se zdál být ideálním nástrojem pro řešení problému škálovatelnosti i odložení celé vlastní infrastruktury’na vedlejší kolej. Kromě toho model PaaS umožňoval odstranit většinu úsilí, pokud jde o správu řešení, a řídit aplikaci jako samostatný celek, a to až do míry úplné automatizace, a tak Windows Azure vlastně neměl alternativu.
V důsledku toho již pod Windows Azure funguje druhá verze aplikace HostTracker, jejíž komerční provoz byl zahájen v květnu 2012. Jeho ústřední složka je realizována jako webová role a je spojena s databází SQL Azure – poskytuje externí portál, analytiku a generování reportů, ovládání monitorovacích aplikací. Ty jsou zajištěny pomocí instancí Worker Role, které rovněž využívají SQL Azure Database k ukládání svých dat a k zajištění škálovatelnosti služby v závislosti na zatížení sítě. Agenti fungují stejně jako dříve, přičemž se zvažuje životaschopnost jejich přesunu do Windows Azure.
Nyní HostTracker využívá protokoly HTTP/HTTPS a ICMP pro monitorování konkrétních portů, včetně různých metod (HEAD/POST/GET) a podobně.
Hlášení alarmů je k dispozici prostřednictvím e-mailu, SMS a okamžitých zpráv. Zákazník může dostávat hlášení se statistikami o řízených prostředcích a jejich výkonech. Provedení nastavení monitorování pro pět webů zabere pouhých 6 minut, přičemž průměrná doba odezvy v případě poruchy je omezena několika minutami a informování zákazníka o problému trvá o 1-3 minuty déle. Pomocí této služby může kdokoli zkontrolovat jakýkoli web, včetně přístupu z různých regionů.
Ve výsledku, pokud nám na jedné straně samotný přechod na platformu .NET poskytl potenciál modernizovat HostTracker, optimalizovat architekturu aplikace a realizovat nové interní funkce, pak na druhé straně migrace do cloudu umožnila vzdát se méně důležitých, i když časově náročných činností, jako je správa řešení, a především dosáhnout potřebných výkonnostních ukazatelů. Společnost Microsoft u všech základních služeb Windows Azure deklaruje 99,9% dostupnost a garantuje měsíční náhrady, pokud by byl tento ukazatel nižší. To vytváří pevný základ pro provozování takových služeb, jako je HostTracker, protože dostupnost je pro tyto aplikace nejkritičtějším parametrem. Využití cloudové infrastruktury také poskytuje lepší ochranu služby: neoprávněný přístup k aplikaci a mnoho typů útoků je účinně vyloučeno, zatímco bezpečnost dat je zajištěna trojnásobnou rezervací.
HostTracker získal opuštěním vlastní infrastruktury další výhodu. Výkonnostní charakteristiky služby’jsou také poměrně kritické, protože přímo ovlivňují fungování systému hlášení poruch. V tomto ohledu je služba Windows Azure prakticky nevyčerpatelným zdrojem výpočetního výkonu. To znamená, že včasným spuštěním dalších monitorovacích instancí lze podpořit parametry fungování HostTracker na potřebné úrovni. Cloudové prostředí je navíc přesně to, co potřebujete k tomu, aby byl tento proces téměř plně automatický a vylučoval další potřebu přímého řízení.