Host-Tracker, usługa monitorowania stron internetowych, pod Windows Azure

Opublikowany: Artem Prysyazhnuk 2014-03-07 wszystkie artykuły | Słowniczek | Często zadawane pytania

Trzeba znać HostTrackera, firmę z Ukrainy, która od 2004 roku wspiera jedną z wiodących globalnych usług monitorowania stron internetowych. Jej celem jest monitorowanie zdrowia i dostępności stron w czasie zbliżonym do rzeczywistego. Wykorzystując system alertów, HostTracker pozwala na redukcję przestojów, poprawę jakości usług dla użytkowników, szybką lokalizację problemów i inne.

 

Architektonicznie HostTracker obejmuje oparty na serwerze hub, pełniący zarówno funkcję kolektora danych, jak i centrum kontroli, oraz serię agentów programowych, uruchamianych w różnych regionach – zazwyczaj z wykorzystaniem sprzętu obsługiwanego przez głównych dostawców, hosterów i podmioty stowarzyszone. Geograficznie rozproszona architektura zapewnia wspólną niezawodność systemu, a także umożliwia gromadzenie danych w zakresie szybkości dostępu, przepustowości i innych kluczowych cech wydajności na poziomie regionalnym – co jest krytycznie ważne dla międzynarodowego biznesu.

Pierwsza wersja HostTrackera, która nadal funkcjonuje i świadczy usługi dla dziesiątek tysięcy klientów, była oparta na systemie Linux. Dziś obsługuje ją dziewięć serwerów kontrolnych, zlokalizowanych i zorganizowanych w dwóch DPC na zasadzie kolokacji, oraz kilkadziesiąt agentów. Biorąc pod uwagę, że ostatecznym celem monitoringu sieci jest zwiększenie czasu pracy zasobów internetowych klienta – podczas gdy 95% klientów HostTrackera było w stanie zwiększyć go do 99% – to wydajność i dostępność samej usługi nie są jedynie krytycznymi, ale raczej fundamentalnymi parametrami wpływającymi na cały biznes. Teoretycznie HostTracker powinien wykazywać dostępność bliską 100%. Jednak intensywny rozwój serwisu sprawił, że zadanie to stało się trudne do zrealizowania.

HostTracker borykał się z ciągle rosnącym ruchem sieciowym – problemem dla płynnego działania usługi. Niemożność dodawania nowych serwerów kontrolnych w locie, trudności w utrzymaniu niejednolitego i wiekowego sprzętu były kolejnym czynnikiem ograniczającym. Ponadto chęć rozwoju usługi poprzez szerszą obsługę protokołów i usług sieciowych napotykała na pewne przeszkody. “Niestety, dla Linuksa istniał ograniczony wybór gotowych rozwiązań i bibliotek, natomiast wymyślenie czegoś zupełnie nowego było trudne” - mówi Artem Prisyazhnyuk, dyrektor HostTrackera. “Mieliśmy pomysł, aby zrewidować stos technologii, z których korzystaliśmy, na bardziej zaawansowany i po bliższym przyjrzeniu się platformie .NET, jej potencjałowi w zakresie skalowalności i obsługi sieci, zdałem sobie sprawę, że to jest dokładnie to, czego szukaliśmy.”

>.

Było pewne, że migracja na zupełnie inną platformę powinna być skomplikowanym zadaniem – projekt rozciągnął się na trzy lata. Było to jednak jak błogosławieństwo w przebraniu: w tym okresie świat ujrzał chmurę obliczeniową, która wydawała się idealnym narzędziem do rozwiązania zarówno problemu skalowalności, jak i odłożenia na bok całej własnej infrastruktury. Poza tym, model PaaS pozwalał na zdjęcie większości wysiłku związanego z administrowaniem rozwiązaniem i kontrolowanie aplikacji jako samodzielnej jednostki, do stopnia całkowitej automatyzacji, przez co Windows Azure nie miał właściwie żadnych alternatyw.

W rezultacie druga wersja HostTrackera, której komercyjna eksploatacja rozpoczęła się w maju 2012 roku, funkcjonuje już pod Windows Azure. Jego centralny składnik jest zrealizowany jako Web Role i powiązany z SQL Azure Database – zapewnia zewnętrzny portal, analitykę i generowanie raportów, kontrolę aplikacji monitorujących. Te ostatnie są zapewnione za pomocą instancji Worker Role, które również wykorzystują SQL Azure Database do przechowywania swoich danych i zapewnienia skalowalności usługi w zależności od obciążenia sieci. Agenci funkcjonują tak jak wcześniej, przy czym rozważana jest opłacalność ich przeniesienia do Windows Azure.
. Teraz HostTracker wykorzystuje protokoły HTTP/HTTPS i ICMP do monitorowania konkretnych portów, w tym różnych metod (HEAD/POST/GET), i etc.
 

 

HostTracker instant check

.



Raportowanie alarmów dostępne jest za pośrednictwem poczty elektronicznej, SMS oraz wiadomości błyskawicznych. Klient może otrzymywać raporty ze statystykami dotyczącymi kontrolowanych zasobów i ich wydajności. Na wprowadzenie ustawień monitorowania dla pięciu witryn można poświęcić zaledwie 6 minut, natomiast średni czas reakcji w przypadku awarii jest ograniczony o kilka minut, a poinformowanie klienta o problemie zajmuje jeszcze 1-3 minuty. Korzystając z tej usługi, każdy może sprawdzić dowolną witrynę, w tym dostęp z różnych regionów.

.

 W efekcie, jeśli z jednej strony samo przeniesienie na platformę .NET dało nam potencjał do unowocześnienia HostTrackera, optymalizacji architektury aplikacji i realizacji nowych funkcji wewnętrznych, to z drugiej strony migracja do chmury pozwoliła odmówić od mniej ważnych, choć czasochłonnych czynności, takich jak administrowanie rozwiązaniem, a przede wszystkim osiągnąć niezbędne wskaźniki wydajności. Microsoft, dla wszystkich podstawowych usług Windows Azure, deklaruje dostępność na poziomie 99,9% i gwarantuje comiesięczny zwrot kosztów, gdyby ten wskaźnik był niższy. Stwarza to solidne podstawy do funkcjonowania takich usług jak HostTracker, gdyż dostępność jest najbardziej krytycznym parametrem dla tych aplikacji. Wykorzystanie infrastruktury chmurowej zapewnia również lepszą ochronę usługi: nieautoryzowany dostęp do aplikacji i wiele rodzajów ataków jest skutecznie wykluczonych, a bezpieczeństwo danych zapewnia potrójna rezerwacja.

 

HostTracker otrzymał kolejną korzyść z rezygnacji z własnej infrastruktury. Charakterystyka wydajnościowa usługi’jest również dość krytyczna, bowiem bezpośrednio wpływa na działanie systemu zgłaszania awarii. Pod tym względem Windows Azure jest praktycznie bezodpływowym źródłem mocy obliczeniowej. Oznacza to, że uruchamiając w porę dodatkowe instancje monitorujące, można podtrzymać parametry funkcjonowania HostTrackera na niezbędnym poziomie. Co więcej, środowisko chmurowe jest dokładnie tym, czego potrzebujesz, aby proces ten był niemal w pełni zautomatyzowany, wykluczając dalszą potrzebę bezpośredniej kontroli.

.

Tagi: product