Rzut okiem na nową infrastrukturę i kolokację - od kuchni
Jednym z głównych problemówwszystkich serwisów internetowych są... użytkownicy ;) Jest tonaturalnie 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ł dlanas niezwykle miłym, jednak wymagającym doświadczeniem -infrastruktura do hostingu, stworzona przed kilku laty w oparciu oserwery "towerowe", wprawdzie ewoluowała wraz z serwisem, pojawiałysię nowe maszyny, zmieniali się dostawcy usług internetowych,mieliśmy jednak świadomość, że osiąganie wyznaczonych sobiestandardów bez rewolucyjnych zmian będzie coraz trudniejsze.Wprawdzie zbudowaliśmy niezawodny klaster maszyn działający nawet wrazie awarii kilku z nich, jednak na częste ostatnio awarie prądulub łącz poradzić nic nie mogliśmy. Zdecydowaliśmy więc, że czas przestać jedynie nadążać za rosnącymipotrzebami i podjąć działania, które zapewnią nie tylko odpowiednizapas wydajności infrastruktury pod dalszy rozwój, ale izdecydowanie podniosą poziom jej niezawodności. Efektem jestzakończone w tym tygodniu przeniesienie serwisu oraz towarzyszącychmu usług na zupełnie nowe serwery umieszczone w profesjonalnymcentrum danych. Postanowiliśmy podzielić się informacjami od kuchnio tym, co udało się nam zrobić i jak teraz wygląda naszainfrastruktura...
01.01.1999 | aktual.: 16.07.2010 17:47
Z wierzchu widać najpierw Windows Server...
Z serwisu korzysta obecnie przeszło 5mln unikalnych użytkowników, którzy generują blisko 40 mln odsłon,a jest to jedynie wierzchołek góry lodowej. Ruch ten generujeolbrzymią liczbę wywołań do serwerów i niezwykle duże obciążenienieuwzględnianych przez te cyfry, towarzyszących serwisowi usługdodatkowych - multimedia strumieniowe, magazyn z binariamiitp. Aplikacje obsługujące serwis i forum napisane są obecnie w PHP i odpoczątku hostujemy je w oparciu o Windows Server i wbudowany wniego serwer WWW, który Microsoft nazwał IIS. Dostajemy mnóstwopytań, skąd pomysł na taką kombinację i czy nie lepiej byłoby robićto inaczej. Odpowiedź jest prosta - po pierwsze, Windows Serverjest 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 tentandem jesteśmy w stanie zapewnić serwisowi niezbędną wydajność iniezawodność - co do tej pory udawało się z powodzeniem. Niemalwszystkie problemy, jakich doświadczaliśmy w ostatnim czasie,spowodowane były przez zewnętrznych dostawców prądu lub łącz ileżały poza naszą kontrolą. W przeciwieństwie do wielu innych serwisów, które wraz ze wzrostemoglądalności dodają "do pieca" kolejne serwery, my od zawszestaraliśmy się myśleć nieszablonowo i szukać rozwiązań przedewszystkim 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 kompresjiwysyłanych do użytkowników treści (co ogranicza potrzebne pasmo ipowoduje, że strony ładują się szybciej) oraz zastosowaniuprekompilacji i buforowania skryptów przy użyciu modułów typuxcache. Więcej o naszych doświadczeniach z hostingiem i optymalizacjąPHP znaleźć można na łamach innego naszego portalu -TechIT.
Konsola Windows Server 2008
Migracja na nowe serwery umożliwiłanam migrację na nowe wersje oprogramowania serwerowego. Obecniepracujemy w oparciu o Windows Server 2008. Serwery IIS 7 pracują wklastrze NLB, a treści witryn replikowane są między węzłami przywykorzystaniu technologii DFSR. Wykorzystujemy zarówno bazy MySQL,jak i Microsoft SQL Server 2008. IIS 7 pozwoli nam dodatkowopodnieść wydajność dzięki zastosowaniu mechanizmu kernel modecaching - to jednak dopiero plany, musimy to jeszcze dokładniejprzetestować.
...pod spodem warstwa wirtualizacji VMwareESXi... Największą nowością nie jest jednakdla nas nowy Windows Server, a zastosowanie technologiiwirtualizacji. Wszystkie serwery poza tymi obsługującymi bazydanych pracują jako maszyny wirtualne. Każdy z serwerów fizycznychobsługuje równocześnie kilka systemów realizujących różne funkcje -przykładowo, jedna z maszyn obsługuje Windows Server 2008 pracującyjako kontroler domeny oraz linuksową dystrybucję Vyatta pracującąjako router (tak, router też zwirtualizowaliśmy, ale o tympóźniej). Podejście to pozwala nam hostować serwis i usługi woparciu o mniejszą liczbę urządzeń oraz w razie awarii któregoś zserwerów błyskawicznie przenieść maszyny wirtualne obsługujące np.serwery poczty na inne urządzenie.
Konsola hypervisora VMware ESXi
Jakiego rozwiązania do witrualizacjiserwerów używamy? Pierwszym, naturalnym dla nas wyborem byłoHyper-V, które jest częścią Windows Server 2008. Zastosowaliśmybezpłatny Hyper-V Server i skonfigurowaliśmy kompletne środowisko,napotkaliśmy jednak poważny problem. Maszyny wirtualne obsługującewęzły klastra WWW po włączeniu na nich NLB (Network Load Balancing- usługa do klastrowania i równoważenia obciążenia) i obarczeniuich testowym ruchem zaczęły się restartować... Próbowaliśmyporadzić sobie z tym problemem szukając rozwiązań w warstwiesterowników do kart sieciowych oraz konfiguracji parametrów IGMPSnooping switcha - niestety bez rezultatu. Dodatkowo, pod Hyper-Vnapotkaliśmy na spore problemy w wirtualizacji Linuksa. Microsoftteoretycznie wspiera Linuksa pod Hyper-V, wydał nawet tzw.komponenty integracyjne dla Linuksa pozwalające mu bezproblemowo iwydajnie pracować pod Hyper-V, działają one jednak wyłącznie z SuSEi to wyłącznie ze starszymi wersjami jądra. Pod Debianem na kernelu2.6.26 (na tym opiera się Vyatta) nie udało nam się ichuruchomić. 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, wszczególności po także bezpłatny hypervisor ESXi. Ten pomyślnieprzeszedł testy obciążenia, idealnie radzi sobie także zwitrualizacją zarówno Windows Server, jak i systemów linuksowych -zapewnia między innymi natywne sterowniki do kart sieciowychpozwalające routerowi przerzucać setki megabitów ruchu przyminimalnym obciążeniu procesora.
...pod nią fizyczne maszyny - serwery firmyTriline... Wszystko to wymaga odpowiedniej mocyobliczeniowej. Zdecydowaliśmy się na serwery marki Triline. To stosunkowo nowa napolskim rynku marka, za którą stoi wrocławska firma AB - jeden z czołowych polskichdystrybutorów IT. Maszyny te oferowały najlepszą relację jakości doceny, a producent umożliwia stworzenie konfiguracji w 100%dopasowanych do potrzeb. Serwery Triline oparte są całkowicie o serwerowe platformyprodukcji Intela, z którymi już wcześniej mieliśmy bardzo pozytywnedoświadczenia. Zdecydowaliśmy się zarówno na serwery rakowe z seriiMERCURYMX, jak i rozwiązanie modułowe z serii MERCURYMQ, które stanowi bardzo atrakcyjną alternatywę np. dla, takżetestowanych przez nas, serwerów blade marki HP z serii c3000.Rozwiązanie pozwala w jednej obudowie zmieścić wiele modułówserwerowych podpiętych do współdzielonej macierzy dysków. Intelnazywa tą platformę Modular Server System - to w dużym skróciejedna obudowa przeznaczona do montażu w szafie stelażowej, któraintegruje ze sobą maks. 6 dwuprocesorowych serwerów (maks. 48rdzeni i 192 GB RAM), 14 dyskową macierz hot-swap (SAS), a takżemoduł zarządzający, max. 2 moduły storage (RAID) oraz max. dwa 10portowe switche 1Gb Ethernet. W każdym z wykorzystanych przez nas serwerów znalazły się po dwaprocesory Intel Xeon Quad-Core z serii E54xx (pracujące na szynie1333 MHz), gigabajty ramu, kontrolery RAID i inne rzeczy, którekaż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 zkluczowych czynników decydujących o wyborze - fizycznie urządzeniapodłączone są w Warszawie, podczas gdy siedziba redakcji mieści sięwe Wrocławiu. Możemy zdalnie kontrolować zasilanie maszyn, zdowolnego miejsca przekierować na notebooka konsolę (ekran, mysz iklawiaturę) aby np. wejść do BIOSu lub zreinstalować systemznajdujący się na partycji fizycznej (instancjami wirtualnymizarządza się nieco inaczej). Dodatkowo, macierz dysków pozwalaelastycznie tworzyć i przypinać do poszczególnych urządzeń partycjez danymi. W połączeniu z wirtualizacją pozwala to w razie np.awarii serwera przepiąć dysk z obsługiwanymi przez niego maszynamiwirtualnymi do innego serwera i uruchomić je przy minimalnejprzerwie w dostępie do usług.
Konsola do zdalnego zarządzania modularem
Musimy przyznać, że konsola dozdalnego zarządzania sprzętem sprawa dużo przyjemniejsze wrażenieniż wiele z rozwiązań konkurencyjnych, które mieliśmy okazjętestować - między innymi dzięki wykorzystaniu AJAXa, którylikwiduje konieczność przeładowywania całych stron przy każdymkliknięciu.
...a wszystko to w Centrum Danych firmy ATM wWarszawie... Do pracy całej infrastrukturypotrzebne 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 raziepoż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 wwarszawskim Centrum DanychATMAN należącym do firmy ATM. Partnera w tym zakresiewybieraliśmy w procesie bardzo wnikliwej analizy - kontaktowaliśmysię niemal ze wszystkimi kluczowymi firmami świadczącymi takieusługi i prawdę mówiąc, po zestawieniu wszystkich opcji wybórokazał 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 wymianyruchu ACX oraz PLIX Pomieszczenia z odpowiednimiwarunkami to jednak nie wszystko - równie ważne jest podpięcieinfrastruktury do Internetu. Łącza także zapewnia nam ATM, dziękiktóremu podłączeni jesteśmy do wielu różnych segmentów Internetuoraz 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 nowainfrastruktura, łącza o znacznie większej przepustowości oraz nowewarunki, w których ją kolokujemy zapewnią przede wszystkim dużowiększą niż dotychczas niezawodność serwisu oraz komfortużytkowania - choć wiadomo, że w początkowym okresie, kiedy dla nasteż wszystko jest jeszcze nowe, mogą zdarzyć się drobne potknięcia(chociaż do tej pory ich nie było i - odpukać - miejmy nadzieję, żejednak nie będzie). Ponadto, nowa platforma to dla nas bazapozwalająca nie martwić się o dalszy rozwój serwisu, o obsługęnowych użytkowników i realizację nowych pomysłów. Pierwszy większytest - wywiad z siedziby AVG w HD przeszedł wyjątkowo pomyślnie - mamynadzieję, że to dobry znak na przyszłość :)