Host-Tracker, служба моніторингу веб-сайтів, під Windows Azure
Опубликовано: Artem Prysyazhnuk 2014-03-07 все статьиТим, хто активно працює з Інтернетом, має бути відома українська компанія HostTracker, яка з 2004 року підтримує один з провідних світових сервісів веб-моніторингу. Його метою є моніторинг стану та доступності сайтів у режимі, близькому до реального часу. Використовуючи систему попереджувальних повідомлень, HostTracker дозволяє скоротити час простоїв, підвищити якість обслуговування користувачів, швидко локалізувати несправності тощо.
Архітектурно HostTracker включає в себе серверний хаб, що виконує функції збору даних і центру управління, і серію програмних агентів, запущених в різних регіонах - як правило, на обладнанні великих провайдерів, хостерів і афілійованих компаній. Територіально розподілена архітектура забезпечує загальну надійність системи, а також дозволяє збирати дані про швидкість доступу, пропускну здатність та інші ключові характеристики продуктивності на регіональному рівні, що є критично важливою особливістю для міжнародного бізнесу.
На сьогоднішній день він підтримується дев'ятьма серверами управління, розміщеними та організованими в двох ЦОДах за принципом колокації, та кількома десятками агентів. Враховуючи, що кінцевою метою веб-моніторингу є збільшення часу безвідмовної роботи клієнтських веб-ресурсів - а 95% клієнтів HostTracker змогли збільшити його до 99% - то продуктивність і доступність самого сервісу є не просто критично важливими, а фундаментальними параметрами, що впливають на весь бізнес. Теоретично HostTracker повинен демонструвати доступність, близьку до 100%. Однак екстенсивний ріст сервісу зробив це завдання важко вирішуваним.
HostTracker зіткнувся з постійно зростаючим мережевим трафіком - проблемою для безперебійної роботи сервісу. Неможливість додавати нові контрольні сервери "на льоту", складнощі з обслуговуванням неоднорідного та різновікового обладнання були ще одним обмежуючим фактором. Крім того, бажання розвивати сервіс за рахунок більш широкої підтримки протоколів та мережевих сервісів наштовхувалося на певні перешкоди. "На жаль, для Linux був обмежений вибір готових рішень і бібліотек, а вигадати щось абсолютно нове було складно, - розповідає Артем Присяжнюк, директор HostTracker. "У нас виникла ідея переглянути стек технологій, які ми використовували, на користь більш досконалих, і після того, як я ближче познайомився з платформою .NET, її потенціалом з точки зору масштабованості та мережевої підтримки, я зрозумів, що це саме те, що ми шукали".
Було зрозуміло, що міграція на зовсім іншу платформу має бути складним завданням - проект розтягнувся на три роки. Але це був несподіваний сюрприз: за цей час світ побачив хмарні обчислення, які здавалися ідеальним інструментом для вирішення як проблеми масштабування, так і відмови від власної інфраструктури. Крім того, модель PaaS дозволяла зняти більшу частину зусиль з адміністрування рішення і контролювати додаток як автономну сутність, аж до повної автоматизації, а отже, Windows Azure фактично не мала альтернатив.
В результаті, друга версія HostTracker, комерційна експлуатація якої розпочалася в травні 2012 року, вже функціонує під управлінням Windows Azure. Її центральна складова реалізована у вигляді Web Role і пов'язана з базою даних SQL Azure - вона забезпечує зовнішній портал, аналітику і генерацію звітів, управління додатками моніторингу. Останні забезпечуються екземплярами Worker Role, які також використовують SQL Azure Database для зберігання своїх даних і забезпечення масштабованості сервісу в залежності від навантаження на мережу. Агенти функціонують, як і раніше, при цьому розглядається доцільність їх переходу на Windows Azure.
Зараз HostTracker використовує протоколи HTTP/HTTPS та ICMP для моніторингу певних портів, включаючи різні методи (HEAD/POST/GET) тощо.
доступна за допомогою електронної пошти, SMS та миттєвих повідомлень. Клієнт може отримувати звіти зі статистикою про контрольовані ресурси та їхню продуктивність. На налаштування моніторингу для п'яти сайтів можна витратити всього 6 хвилин, при цьому середній час реакції в разі збою обмежується парою хвилин, а на інформування клієнта про проблему йде ще 1-3 хвилини. За допомогою цього сервісу будь-хто може перевірити будь-який сайт, включаючи доступ з різних регіонів.
У підсумку, якщо, з одного боку, сам перехід на платформу .NET дав нам потенціал для модернізації HostTracker, оптимізації архітектури додатку та реалізації нових внутрішніх функцій, то, з іншого боку, міграція в хмару дозволила відмовитися від менш важливих, хоча і трудомістких видів діяльності, таких як адміністрування рішення, і, в першу чергу, досягти необхідних показників продуктивності. Microsoft для всіх базових сервісів Windows Azure декларує доступність на рівні 99,9% і гарантує щомісячне повернення коштів, якщо цей показник буде нижчим. Це створює міцне підґрунтя для роботи таких сервісів, як HostTracker, оскільки доступність є найбільш критичним параметром для цих додатків. Використання хмарної інфраструктури також забезпечує кращий захист сервісу: несанкціонований доступ до додатку і багато видів атак фактично виключені, а збереження даних забезпечується потрійним резервуванням.
Відмова від власної інфраструктури дала HostTracker ще одну перевагу. Характеристики продуктивності сервісу також є досить критичними, адже вони безпосередньо впливають на роботу системи інформування про збої. У цьому плані Windows Azure є практично безвідходним джерелом обчислювальних потужностей. Це означає, що своєчасний запуск додаткових екземплярів моніторингу дозволяє підтримувати параметри роботи HostTracker на необхідному рівні. Більше того, хмарне середовище - це саме те, що потрібно для того, щоб зробити цей процес майже повністю автоматизованим, виключивши подальшу потребу в прямому контролі.