infrastruktura serwerowa

Jaka infrastruktura serwerowa?

W procesie tworzenia serwisu nie zawsze wybór środowiska hostingowego i infrastruktury serwerowej dokonywany jest we właściwym momencie i z należytą starannością. Pokutuje przekonanie, że „jakoś to będzie”, a sama kwestia infrastruktury nie jest najważniejsza. Na szczęście takie podejście jest coraz rzadziej spotykane. Nawet najbardziej dopracowany serwis internetowy bez odpowiedniej infrastruktury serwerowej będzie albo chodził powoli, albo w kulminacyjnym momencie przestanie działać w ogóle. Właściciel serwisu musi mieć świadomość, że serwis musi działać szybko i bezawaryjnie. Wybór rozwiązania hostingowego jest integralną częścią tworzenia serwisu internetowego – należy stworzyć dla niego specyfikację, wyznaczyć warunki i parametry, podobnie jak dla serwisu. Uwzględnienie tych informacji w zapytaniu ofertowym – z podaniem wymagań, czasu ładowania strony, przewidywanego ruchu – zmusza usługodawcę do złożenia przemyślanej propozycji hostingowej. Ze swojego doświadczenia wiemy, że nadal niezmiernie rzadko pojawiają się konkretne wymagania wydajnościowe dla serwisu. Określenia typu „strona ma obsługiwać co najmniej 30 zgłoszeń na sekundę przy czasie jej ładowania nie dłuższym niż 5s” to raczej wyjątek w zapytaniach, które otrzymujemy.

Rozważając wybór środowiska hostingowego, możemy dziś wybierać zarówno w platformach, jak i różnych rodzajach hostingu. Zakładając, że mamy do czynienia ze sporym serwisem, na którym spodziewamy się istotnego ruchu, powinniśmy pominąć hosting współdzielony, który pełny jest ograniczeń i limitów. Nie bez powodu jest on przeznaczony do innych celów – dla mniejszych witryn.

Zostaje nam do wyboru:

– serwer dedykowany,

– VPS – serwer wirtualny,

– chmura.

 

Czy serwer dedykowany to dobre rozwiązanie?

Serwer dedykowany wydaje się prostym wyborem. Mamy go dla siebie, zwykle ma sporą rezerwę mocy, z góry możemy przewidzieć niemal wszystkie koszty wynajmu serwera i jego zasobów. Jedynie musimy dobrze ocenić łącze, czy transfer, którego się spodziewamy. W wielu wypadkach będzie to trafny wybór. Mimo realnego marnotrawstwa przestrzeni i zasobów, zyskujemy stały koszt, zwykle bez niespodzianek (do czasu). Na tym jednak kończą się zalety. Samo ustalenie zasobów musi odbywać się na podstawie konkretnych założeń. Wiedza na temat ilości użytkowników odwiedzających serwis nie jest powszechna, wielkość serwisu na etapie prac deweloperskich również może się zmienić. Zwykle przyjmujemy „jakieś” założenia i modlimy się, żeby się spełniły. Do tego dochodzi jeszcze jakość i wydajność kodu, która może być różna. Niestety, kiedy coś się nie uda, zaczyna się szukanie winnych. Kto przyjął założenia, na jakiej podstawie, a kampania leci, serwis się nie otwiera, itd. W końcu nie po to pracujemy nad serwisami, żeby potem mieć problem z usługą, którą dodatkowo nie uznawaliśmy za najważniejszą, czyli hosting. Oczywiście pod pojęciem „serwer dedykowany” rozumiemy tutaj całą infrastrukturę – czasem będzie to jedna maszyna, a czasem wiele. W końcu chcemy wydzielić bazę danych osobno, bo stanowi obciążenie, ruch jest na tyle duży, że serwisów obsługujących stronę też musi być kilka. A co w sytuacji, gdy wdrożony serwis ma 100x większy ruch w Walentynki, Black Friday, Cyber Monday, Dzień Darmowej Dostawy i w okresie zakupowym przed Bożym Narodzeniem? Potrzebne będą kolejne serwery, które wcale nie tak łatwo wynająć na miesiąc, czy dwa. Zapewnienie wysokiej dostępności jest całkowicie w naszych rękach – trzeba ją zaprojektować i wdrożyć

 

Zalety i wady serwera VPS

Wybór serwerów VPS wydaje się być rozwiązaniem wszystkich bolączek serwera dedykowanego. Zasoby można kupić mniejsze i je lepiej dobrać. Do tego bardzo często można kupić dowolną powierzchnię dyskową. Co więcej, zakup wielu VPSów o różnych zasobach nie stanowi żadnego problemu. Zasoby te można także w miarę dynamicznie zmieniać. Niestety, tutaj kończą się zalety. Ponownie natrafiamy na problemy, o których istnieniu dowiemy się dopiero, gdy serwis przestanie działać, albo zacznie wolno pracować. Zasoby nie są nieograniczone i są współdzielone – zwykle nie mamy jasności, co dokładnie dostajemy – jaką moc obliczeniowa, jaka jest wydajność gwarantowana dysków (IOPS) itp. Dopasowanie zasobów do potrzeb też wymaga czasu. Zwykle poziom automatyzacji jest zerowy, a poza stawianiem kolejnych serwerów nie mamy żadnych fajnych usług od dostawcy, które ułatwiłyby nam utrzymanie serwisu i zapewniły spokojny sen.  No i nadal nie wiemy, co stanie się, gdy usługodawcy „padnie” dany serwer, albo miejsce gdzie znajdują się nasze pliki z danymi. Zapewnienie wysokiej dostępności często leży w naszych rękach, trzeba je przygotować, dopytać dokładnie usługodawcę, czy da się je w ogóle wykonać i czy nie ma po jego stronie pojedynczych punktów awarii (SPOF).

 

Chmura obliczeniowa

W tym zalewie wątpliwości, dobrze byłoby znaleźć jakieś konstruktywne rozwiązanie. Na szczęście jest to możliwe, ot kwestia nakładów i wyborów.

Trafiamy do chmury obliczeniowej. Pomijając samą nazwę i definicję (bo chmurą powoli nazywamy już niemal wszystko) – tu mamy na myśli platformę, na której dynamicznie możemy zmieniać wykorzystywane zasoby. Mamy tu również do wyboru szereg usług dodatkowych, które pozwalają nam stawiać niezliczoną ilości instancji (taki chmurowy VPS) oraz na której za wszystko płacimy w modelu pay-per-use – za godzinę wykorzystania zasobów. Liderzy, tacy jak AWS (Amazon Web Services) czy Azure (Microsoft) dają nam pełną automatyzację tworzenia środowiska i wiele usług, np. miejsce na pliki, load balancing. Sama konstrukcja chmury pozwala na zapewnienie wysokiej dostępności poprzez odpowiednie rozłożenie zasobów. Polscy dostawcy chmury (tej prawdziwej) są nieliczni i oferują bardzo skromny zasób usług dodatkowych, do wielu podstawowych zastosowań są jednak wystarczający. Jednak dopiero taka potęga, jak AWS czy Azure pozwala nam skorzystać ze wszystkich dobrodziejstw chmury. AWS posiada kilka centrów na świecie – dla nas (Polaków) najbliższe są we Frankfurcie i Irlandii. Z perspektywy Polski obie lokalizacje są bardzo dobre. Frankfurt sieciowo jest sporo bliżej, ale to z Irlandii swoje usługi serwują nam najwięksi gracze – Google, czy Microsoft. W każdym z tych centrów mamy co najmniej dwie strefy dostępności, czyli niezależne środowiska oddzielone od siebie fizycznie i logicznie. Odpowiednie rozłożenie usług zapewni nam wysoką dostępność.

Przechodząc do wad rozwiązań opisanych wcześniej, nie musimy się tak drobiazgowo martwić o wymagania. Oczywiście założenia trzeba przyjąć, ale całość można tak zaprojektować, aby było one łatwe do modyfikacji i to w obie strony. Przy wycenie usług warto skorzystać z usług doświadczonego partnera AWSa, który potrafi oszacować wszystkie niezbędne elementy chmury, pomoże wybrać odpowiednie usługi i podpowie, jak zaprojektować serwis/aplikację, aby płacić za jej utrzymanie w chmurze jak najmniej. Założenie wysokiej dostępności łatwo spełnić, bo ta wpisana jest w chmurę – tu przyjmujemy, że wszystko może zawieść i tak też projektujemy. Dodatkowo, zyskujemy możliwość stworzenia środowiska devel czy stage – stawianego nawet na żądanie na kilka dni miesięcznie. I naprawdę zapłacimy tylko za to, czego użyjemy – jeśli o 12:30 zmienimy jakieś zasoby na mniejsze, to od 12:30 zapłacimy za nie mniej. Jeśli mamy martwy okres, to nie zapłacimy za ruch sieciowy, czy użycie innych usług, a sporą część infrastruktury możemy po prostu wygasić. Wszystko to można w dużym stopniu zautomatyzować.– zwłaszcza proces zarządzania skalowaniem maszyn. Doświadczony partner, który sprawuje opiekę nad całością, to naprawdę rozsądny wybór.. Ma on ogromne możliwości zmiany zasobów i reakcji na ich obciążenie – takie, których nie da żadna dedykowana platforma, czy VPSy. Co więcej, w przypadku chmury nie będziemy narażeni na awarie maszyn, bądź przestoje w ich pracy. W przypadku najmniejszej awarii jednej z maszyn, która znajduje się w infrastrukturze cloudowej, jej rolę przejmuje inne sprawne urządzenie.

Chmura nie jest jednak dobra na wszystko. Znajdą się zastosowania, w których użycie serwera dedykowanego czy VPSów będzie wystarczające, czy wręcz racjonalne. Stosunkowo często będziemy mieć też do czynienia z sytuacją, w której część usług warto zlokalizować poza chmurą, a część w chmurze (infrastruktura hybrydowa, chmura hybrydowa). Czasem o wyborze zdecydują założenia – zapewnienie prawdziwej wysokiej dostępności niemal na pewno będzie lepsze w chmurze (albo chmurach).

 

Podsumowanie

Każde rozwiązanie ma swoje cienie i blaski. Hosting współdzielony to niskie koszty, ale i brak możliwości zarządzania oraz niska wydajność (choć w niektórych przypadkach będzie w pełni wystarczający). Serwer wirtualny to już większe możliwości, większa wydajność, ale wciąż współdzielone zasoby. Serwer dedykowany to już pełna kontrola i szerokie możliwości zarządzania i konfiguracji, ale przy tym większe koszty. Przy zmiennym obciążeniu i nagłym wzroście ruchu, zwyczajnie może dostać zadyszki. Chmura wydaje się ciekawym kompromisem, ale nawet i tutaj ogromne znaczenie ma wybór dostawcy cloudu oraz przemyślany projekt infrastruktury chmurowej i usług dodatkowych. Bez tego, nawet najlepsze rozwiązanie nie spełni podstawowych oczekiwań klienta.

Współpracując z nami, możesz zawsze liczyć na wsparcie w wyborze rozwiązania. Zaprojektowaliśmy tysiące infrastruktur i na bieżąco utrzymujemy setki projektów, zarówno na serwerach dedykowanych, VPSach jak i w chmurach. Wiemy dokładnie, co i w jakich sytuacjach najlepiej się sprawdza. I wraz z zespołem developerskim rekomendujemy najlepsze rozwiązania.

 

Porównaj serwer dedykowany, VPS i chmurę:

 

Serwer dedykowanyVPSChmura
Zasoby muszą być wybrane z górytakczęściowonie
Zmiana zasobów w trakcie nieczęściowotak
Czas zmiany zasobówdni lub tygodniegodziny lub dnikilka minut
Jednostka rozliczeniowa (czas)miesiąc lub miesiącemiesiąc, czasem tydzieńgodzina
Dostosowanie do skoków ruchuznikomeumiarkowaneszybkie i dowolne
Zapewnienie wysokiej dostępnościsami projektujemysami z udziałem dostawcyjest wbudowane w chmurę
Płatność z górytaknie, czasami taknie
Zakup to koszt?inwestycyjnyoperacyjnyoperacyjny
Awaryjnośćdużaśredniaznikoma
Możliwość podziału usług na elementybardzo niewielkaśrednianieograniczona

 

Zobacz również:

Migracja do Amazon Web Services aplikacji Landingi.com
Hosting WordPress w chmurze AWS z pełną redundancją
Skąd się bierze wysoka dostępność (HA) w chmurze?
Amazon Web Services ma już 10 lat