r   e   k   l   a   m   a
r   e   k   l   a   m   a

Rzut okiem na nową infrastrukturę i kolokację - od kuchni

Strona główna Aktualności

Jednym z głównych problemów wszystkich serwisów internetowych są... użytkownicy ;) Jest to naturalnie problem z kategorii tych, których wszystkim należałoby życzyć, niemniej problem stawiający też niemałe wyzwania.

Wzrost oglądalności dobrychprogramów w ciągu ostatnich lat był dla nas niezwykle miłym, jednak wymagającym doświadczeniem - infrastruktura do hostingu, stworzona przed kilku laty w oparciu o serwery "towerowe", wprawdzie ewoluowała wraz z serwisem, pojawiały się nowe maszyny, zmieniali się dostawcy usług internetowych, mieliśmy jednak świadomość, że osiąganie wyznaczonych sobie standardów bez rewolucyjnych zmian będzie coraz trudniejsze. Wprawdzie zbudowaliśmy niezawodny klaster maszyn działający nawet w razie awarii kilku z nich, jednak na częste ostatnio awarie prądu lub łącz poradzić nic nie mogliśmy.

Zdecydowaliśmy więc, że czas przestać jedynie nadążać za rosnącymi potrzebami i podjąć działania, które zapewnią nie tylko odpowiedni zapas wydajności infrastruktury pod dalszy rozwój, ale i zdecydowanie podniosą poziom jej niezawodności. Efektem jest zakończone w tym tygodniu przeniesienie serwisu oraz towarzyszących mu usług na zupełnie nowe serwery umieszczone w profesjonalnym centrum danych. Postanowiliśmy podzielić się informacjami od kuchni o tym, co udało się nam zrobić i jak teraz wygląda nasza infrastruktura...


Z wierzchu widać najpierw Windows Server...


Z serwisu korzysta obecnie przeszło 5 mln unikalnych użytkowników, którzy generują blisko 40 mln odsłon, a jest to jedynie wierzchołek góry lodowej. Ruch ten generuje olbrzymią liczbę wywołań do serwerów i niezwykle duże obciążenie nieuwzględnianych przez te cyfry, towarzyszących serwisowi usług dodatkowych - multimedia strumieniowe, magazyn z binariami itp.

Aplikacje obsługujące serwis i forum napisane są obecnie w PHP i od początku hostujemy je w oparciu o Windows Server i wbudowany w niego serwer WWW, który Microsoft nazwał IIS. Dostajemy mnóstwo pytań, skąd pomysł na taką kombinację i czy nie lepiej byłoby robić to inaczej. Odpowiedź jest prosta - po pierwsze, Windows Server jest jedyną platformą, która pozwala nam jednocześnie hostować aplikacje napisane w PHP, jak i w Perlu, ASP.NET i innych językach. Po drugie, na tym właśnie się znamy i wierzymy, że w oparciu o ten tandem jesteśmy w stanie zapewnić serwisowi niezbędną wydajność i niezawodność - co do tej pory udawało się z powodzeniem. Niemal wszystkie problemy, jakich doświadczaliśmy w ostatnim czasie, spowodowane były przez zewnętrznych dostawców prądu lub łącz i leżały poza naszą kontrolą.

W przeciwieństwie do wielu innych serwisów, które wraz ze wzrostem oglądalności dodają "do pieca" kolejne serwery, my od zawsze staraliśmy się myśleć nieszablonowo i szukać rozwiązań przede wszystkim w warstwie oprogramowania do hostingu. Kiedy kończyły się zasoby, pracowaliśmy nad optymalizacją aplikacji i serwerów WWW - największe efekty uzyskaliśmy dzięki zastosowaniu kompresji wysyłanych do użytkowników treści (co ogranicza potrzebne pasmo i powoduje, że strony ładują się szybciej) oraz zastosowaniu prekompilacji i buforowania skryptów przy użyciu modułów typu xcache. Więcej o naszych doświadczeniach z hostingiem i optymalizacją PHP znaleźć można na łamach innego naszego portalu - TechIT.



Konsola Windows Server 2008

r   e   k   l   a   m   a


Migracja na nowe serwery umożliwiła nam migrację na nowe wersje oprogramowania serwerowego. Obecnie pracujemy w oparciu o Windows Server 2008. Serwery IIS 7 pracują w klastrze NLB, a treści witryn replikowane są między węzłami przy wykorzystaniu technologii DFSR. Wykorzystujemy zarówno bazy MySQL, jak i Microsoft SQL Server 2008. IIS 7 pozwoli nam dodatkowo podnieść wydajność dzięki zastosowaniu mechanizmu kernel mode caching - to jednak dopiero plany, musimy to jeszcze dokładniej przetestować.



...pod spodem warstwa wirtualizacji VMware ESXi...


Największą nowością nie jest jednak dla nas nowy Windows Server, a zastosowanie technologii wirtualizacji. Wszystkie serwery poza tymi obsługującymi bazy danych pracują jako maszyny wirtualne. Każdy z serwerów fizycznych obsługuje równocześnie kilka systemów realizujących różne funkcje - przykładowo, jedna z maszyn obsługuje Windows Server 2008 pracujący jako kontroler domeny oraz linuksową dystrybucję Vyatta pracującą jako router (tak, router też zwirtualizowaliśmy, ale o tym później). Podejście to pozwala nam hostować serwis i usługi w oparciu o mniejszą liczbę urządzeń oraz w razie awarii któregoś z serwerów błyskawicznie przenieść maszyny wirtualne obsługujące np. serwery poczty na inne urządzenie.





Konsola hypervisora VMware ESXi



Jakiego rozwiązania do witrualizacji serwerów używamy? Pierwszym, naturalnym dla nas wyborem było Hyper-V, które jest częścią Windows Server 2008. Zastosowaliśmy bezpłatny Hyper-V Server i skonfigurowaliśmy kompletne środowisko, napotkaliśmy jednak poważny problem. Maszyny wirtualne obsługujące węzły klastra WWW po włączeniu na nich NLB (Network Load Balancing - usługa do klastrowania i równoważenia obciążenia) i obarczeniu ich testowym ruchem zaczęły się restartować... Próbowaliśmy poradzić sobie z tym problemem szukając rozwiązań w warstwie sterowników do kart sieciowych oraz konfiguracji parametrów IGMP Snooping switcha - niestety bez rezultatu. Dodatkowo, pod Hyper-V napotkaliśmy na spore problemy w wirtualizacji Linuksa. Microsoft teoretycznie wspiera Linuksa pod Hyper-V, wydał nawet tzw. komponenty integracyjne dla Linuksa pozwalające mu bezproblemowo i wydajnie pracować pod Hyper-V, działają one jednak wyłącznie z SuSE i to wyłącznie ze starszymi wersjami jądra. Pod Debianem na kernelu 2.6.26 (na tym opiera się Vyatta) nie udało nam się ich uruchomić.

Ponieważ czas naglił, a pomysły na walkę z tymi problemami się skończyły, sięgnęliśmy po rozwiązania ze stajni VMware, w szczególności po także bezpłatny hypervisor ESXi. Ten pomyślnie przeszedł testy obciążenia, idealnie radzi sobie także z witrualizacją zarówno Windows Server, jak i systemów linuksowych - zapewnia między innymi natywne sterowniki do kart sieciowych pozwalające routerowi przerzucać setki megabitów ruchu przy minimalnym obciążeniu procesora.



...pod nią fizyczne maszyny - serwery firmy Triline...


Wszystko to wymaga odpowiedniej mocy obliczeniowej. Zdecydowaliśmy się na serwery marki Triline. To stosunkowo nowa na polskim rynku marka, za którą stoi wrocławska firma AB - jeden z czołowych polskich dystrybutorów IT. Maszyny te oferowały najlepszą relację jakości do ceny, a producent umożliwia stworzenie konfiguracji w 100% dopasowanych do potrzeb.

Serwery Triline oparte są całkowicie o serwerowe platformy produkcji Intela, z którymi już wcześniej mieliśmy bardzo pozytywne doświadczenia. Zdecydowaliśmy się zarówno na serwery rakowe z serii MERCURY MX, jak i rozwiązanie modułowe z serii MERCURY MQ, które stanowi bardzo atrakcyjną alternatywę np. dla, także testowanych przez nas, serwerów blade marki HP z serii c3000. Rozwiązanie pozwala w jednej obudowie zmieścić wiele modułów serwerowych podpiętych do współdzielonej macierzy dysków. Intel nazywa tą platformę Modular Server System - to w dużym skrócie jedna obudowa przeznaczona do montażu w szafie stelażowej, która integruje ze sobą maks. 6 dwuprocesorowych serwerów (maks. 48 rdzeni i 192 GB RAM), 14 dyskową macierz hot-swap (SAS), a także moduł zarządzający, max. 2 moduły storage (RAID) oraz max. dwa 10 portowe switche 1Gb Ethernet.

W każdym z wykorzystanych przez nas serwerów znalazły się po dwa procesory Intel Xeon Quad-Core z serii E54xx (pracujące na szynie 1333 MHz), gigabajty ramu, kontrolery RAID i inne rzeczy, które każdy szanujący się serwer mieć powinien ;)





Docent w trakcie montażu pierwszej partii





Rzut okiem z bliska...





...i na plątaninę kabli od tyłu



Serwery wyposażone są w technologię pozwalającą na całkowite zdalne zarządzanie, co było jednym z kluczowych czynników decydujących o wyborze - fizycznie urządzenia podłączone są w Warszawie, podczas gdy siedziba redakcji mieści się we Wrocławiu. Możemy zdalnie kontrolować zasilanie maszyn, z dowolnego miejsca przekierować na notebooka konsolę (ekran, mysz i klawiaturę) aby np. wejść do BIOSu lub zreinstalować system znajdujący się na partycji fizycznej (instancjami wirtualnymi zarządza się nieco inaczej). Dodatkowo, macierz dysków pozwala elastycznie tworzyć i przypinać do poszczególnych urządzeń partycje z danymi. W połączeniu z wirtualizacją pozwala to w razie np. awarii serwera przepiąć dysk z obsługiwanymi przez niego maszynami wirtualnymi do innego serwera i uruchomić je przy minimalnej przerwie w dostępie do usług.





Konsola do zdalnego zarządzania modularem



Musimy przyznać, że konsola do zdalnego zarządzania sprzętem sprawa dużo przyjemniejsze wrażenie niż wiele z rozwiązań konkurencyjnych, które mieliśmy okazję testować - między innymi dzięki wykorzystaniu AJAXa, który likwiduje konieczność przeładowywania całych stron przy każdym kliknięciu.



...a wszystko to w Centrum Danych firmy ATM w Warszawie...


Do pracy całej infrastruktury potrzebne są odpowiednie warunki - pomieszczenia ze ścisłą kontrolą dostępu, monitoringiem, szafami rakowymi, klimatyzacją, wielotorowym zasilaniem z podtrzymaniem na wypadek awarii prądu, systemem gaśniczym wykorzystującym specjalny gaz, który w razie pożaru nie zniszczy sprzętu jak zwykła woda itd... Wszystko to, wraz z niezwykle przyjemną obsługą i pomocną dłonią znaleźliśmy w warszawskim Centrum Danych ATMAN należącym do firmy ATM. Partnera w tym zakresie wybieraliśmy w procesie bardzo wnikliwej analizy - kontaktowaliśmy się niemal ze wszystkimi kluczowymi firmami świadczącymi takie usługi i prawdę mówiąc, po zestawieniu wszystkich opcji wybór okazał się stosunkowo prosty.





Serwerownia, w której kolokujemy swoje serwery





TomekB przy szafach z zamontowanym już sprzętem





Budynek ATM w Warszawie przy ul. Grochowskiej





Wejście do budynku, bramki i kontrola dostępu





Śluzy prowadzące do pomieszczeń z serwerowniami




...wpięte do międzyoperatorskich węzłów wymiany ruchu ACX oraz PLIX



Pomieszczenia z odpowiednimi warunkami to jednak nie wszystko - równie ważne jest podpięcie infrastruktury do Internetu. Łącza także zapewnia nam ATM, dzięki któremu podłączeni jesteśmy do wielu różnych segmentów Internetu oraz do dwóch międzyoperatorskich punktów wymiany ruchu - ACX oraz PLIX. Punkty wymiany ruchu to węzły, w których niemal wszyscy ważni operatorzy telekomunikacyjni w kraju (poza TP S.A.) oraz dostawcy treści tacy jak my łączą się bezpośrednio i wymieniają ruch praktycznie bez żadnych limitów (poza sprzętowymi) na zasadach peeringu.





Switch zapewniający nam łączność ze światem




Po co to wszystko?


Mamy nadzieję, że nowa infrastruktura, łącza o znacznie większej przepustowości oraz nowe warunki, w których ją kolokujemy zapewnią przede wszystkim dużo większą niż dotychczas niezawodność serwisu oraz komfort użytkowania - choć wiadomo, że w początkowym okresie, kiedy dla nas też wszystko jest jeszcze nowe, mogą zdarzyć się drobne potknięcia (chociaż do tej pory ich nie było i - odpukać - miejmy nadzieję, że jednak nie będzie). Ponadto, nowa platforma to dla nas baza pozwalająca nie martwić się o dalszy rozwój serwisu, o obsługę nowych użytkowników i realizację nowych pomysłów. Pierwszy większy test - wywiad z siedziby AVG w HD przeszedł wyjątkowo pomyślnie - mamy nadzieję, że to dobry znak na przyszłość :)

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.