Hosting

Oferowana platforma hostingowa opiera się na uznanych komponentach oprogramowania opensource oraz platformie systemowej Linux. Wybór dobrze znanych komponentów zapewnia stabilną pracę systemu oraz jego bezpieczeństwo zarówno w zakresie kompatybilności z aplikacjami webowymi wykorzystywanymi przez klientów jak i zachowanie integralności, wysokiej dostępności oraz – przy wykorzystaniu mechanizmów izolacji zasobów należących do poszczególnych klientów – poufności danych. Projektując system, który mógłby spełniać wymagania klientów, których serwisy, ze względu na relatywnie małe obciążenie, nie wymagają jeszcze budowania dedykowanej infrastruktury, a więc działające w oparciu o architekturę shared hosting, gdzie dany serwer fizyczny jednocześnie realizuje obsługę serwisów należących do wielu klientów, priorytetowo traktujemy podstawowe wymagania biznesowe i wizerunkowe korzystających z naszych usług firm, dostarczając rozwiązanie, które realizuje identyczne cele, jak te stawiane “dużym serwisom”, a głównym czynnikiem różnicującym jest mniejsza skala rozwiązania.

Wysoka dostępność

Począwszy od komponentów sieciowych, przez Load Balancery dystrybuujące ruch oraz działające w nadmiarowej konfiguracji (n+1) serwery aplikacyjne i bazodanowe oraz nośniki danych platforma działa w trybie wysokiej dostępności (HA), a więc pozbawiona jest pojedynczych punktów awarii (SPoF). Dzięki zastosowaniu oprogramowania klastrowego oraz współdzielonych systemów plików (iscsi) awaria lub przeciążenie pojedyńczego serwera jest automatycznie wykrywana, a odpowiedni ruch przekierowywany na pozostałe elementy systemu, przy zachowaniu spójności danych klienta oraz transakcji bazodanowych. Wszystkie komponenty platformy są proaktywnie monitorowane przez centralny system i zespół administratorów, co gwarantuje, że w przypadku wystąpienia problemu z częścią infrastruktury, jej pozostałe elementy nadal pozostają bezpieczne, a potencjalne “wąskie gardła” są eliminowane zanim zdążą zagrozić stabilności działania całego systemu.

Izolacja zasobów

Ze względu na współistnienie na serwerach wielu aplikacji mających różne wymagania dotyczące dostępności i poufności danych oraz w różnym stopniu realizujące środki bezpieczeństwa i ochrony danych kluczowym wymaganiem stawianym platformie jest separacja środowisk klientów, której celem jest ochrona samej platformy oraz aplikacji innych klientów w przypadku wystąpienia incydentów bezpieczeństwa w innej aplikacji działającej w ramach współdzielonej infrastruktury. Serwery aplikacji są więc izolowane poprzez uruchamianie ich w oddzielnej przestrzeni systemu plików, bez możliwości dostępu do plików na innych kontach. Każdy taki serwer działa również w kontekście uprawnień konta danego klienta, co zabezpiecza przed dostępem do katalogów i plików systemowych oraz chroni przed problemami z brakującymi uprawnieniami do plików znajdujących się na koncie klienta. Ruch przychodzący podlega inspekcji oraz ochronie na poziomie warstwy aplikacji protokołu (L7 WAF) zabezpieczając przed typowymi zagrożeniami typu web bugs czy atakami mającymi na celu wyczerpanie zasobów klienta (DoS). Również ruch wychodzący z serwera jest limitowany: wychodzące zapytania HTTP przechodzą przez serwer proxy, który korzystając z Safe Browsing API oraz inspekcji ruchu HTTPS stara się zapobiegać automatycznym atakom na znane podatności aplikacji webowych mającym na celu instalację na koncie klienta złośliwego kodu, zaś limitowanie wysyłki poczty jedynie dla prawidłowo skonfigurowanych domen (sender callout, SPF, DK) zabezpiecza przed możliwością nieświadomego lub złośliwego wysyłania spamu z konta użytkownika systemu. Każde konto jest zabezpieczone poprzez limit dyskowy (quota), dostępnej pamięci RAM, operacji IOPS oraz limit transferu danych w zależności od wykupionego przez klienta planu. Dzięki temu nawet przy wystąpieniu wybuchowej charakterystyki ruchu jednego serwisu (np. kampania wirusowa, “wykop efekt”) platforma jako całość jest chroniona przed przeciążeniem, a administratorzy oraz klient mogą być pewni, iż w przypadku wykorzystania zasobów ponad oferowany limit dostępna będzie możliwość migracji na platformę dedykowaną.

Dostępne rozwiązania

Wśród wykorzystywanych na platformie hostingowych rozwiązań dostępne są takie popularne technologię jak Apache 2.3 oraz PHP 5.cośtam działające w trybie serwera aplikacji fastcgi, bazy danych MySQL 5.5, Postgresql 8.4, SQLite 3, Memcache cośtam. Izolacja oraz spójność środowisk jest realizowana z wykorzystaniem systemu plików unionfs. Wśród komponentów frontendowych wykorzystujemy serwery cache varnish oraz load balancery haproxy, wspomniane backendowe rozwiązania inspekcji ruchu wychodzącego zbudowane są w oparciu o serwery squid oraz exim. W przypadku konieczności zapewnienia integralności i poufności danych end-to-end proponujemy terminowanie ruchu SSL (HTTPS) na centralnych wysokowydajnych akceleratorach.

Zarządzanie i raportowanie

Do dyspozycji klientów pozostaje zespół administratorów do spraw utrzymania sieci i systemów (NOC) – problemy oraz zlecenia zmian można zgłaszać poprzez email lub telefonicznie. Odpowiednio zgłoszenia są rejestrowane oraz realizowane przy użyciu systemu ticketowego, co gwarantuje odpowiedni czas odpowiedzi oraz pewność rozwiązania każdego zgłoszonego problemu. Kadra IT klienta może również korzystać z “niskopoziomowych” narzędzi administracji znanych z “dużych systemów”, takich jak możliwość logowania i administracji systemem poprzez ssh czy dostęp do danych i logów serwera WWW oraz aplikacji za pomocą ssh, ftp lub panelu WWW.

Skalowalność

Ze względu na specyfikę rozwiązania shared hosting dysponujemy ograniczonymi możliwościami skalowania w przypadku zwiększającego zapotrzebowania serwisu klienta wynikającego ze zwiększonego ruchu lub skomplikowanej logiki biznesowej aplikacji. W takich przypadkach, jak również, kiedy aplikacja korzysta z frameworka opartego o inny język niż PHP (np. J2EE, ruby, python) oferujemy jednak szereg rozwiązań dedykowanych: od prostych serwerów VPS w tandemie z dedykowanym lub współdzielonym serwerem bazy danych po wieloelementowe klastry aplikacyjne pozwalające na obsługę bardzo wymagających pod względem ruchu systemów o wysokim stopniu komplikacji. Warto zauważyć, że w większości przypadków, hostowanych w ramach naszego rozwiązania części infrastruktury pozostają stałe, jak np. wykorzystywane load balancery czy sposób konfiguracji serwerów cache czy aplikacyjnych. Dlatego też migracja rozwiązania utrzymywanego w ramach hostingu współdzielonego do systemu dedykowanego może być wykonana bez konieczności wyłączania serwisu (zero downtime, przy zachowaniu konfiguracji dns i urządzeń brzegowych) oraz, dzięki globalnemu wykorzystaniu oprogramowania konfiguracji systemów (change management) i wsparciu ze strony administratorów sieci i systemów – w optymalnym czasie, z punktu widzenia zachowania ciągłości działania biznesu klienta.