Chcąc postawić stronę, bloga, wiki, czy dowolny inny serwis internetowy ma się sporo możliwości. Ja jestem zakochany w VPS-ach (ten blog, moja strona i WatchBot działają obecnie na Linode), poniżej kilka słów wyjaśnienia - czemu. A także wyjaśnienie, co to w ogóle jest VPS i porady, jak go wybrać.
Co to jest VPS
VPS (Virtual Private Server) to pełny Linux (najczęściej) działający w ramach wirtualnej maszyny. Z punktu widzenia użytkownika - wygląda to jak własny, słaby serwer. Z punktu widzenia dostawcy usługi - na jednym fizycznym komputerze działa od kilku, do kilkunastu takich maszyn.
Główną zaletą VPS jest oczywiście koszt. Własny dedykowany serwer kosztowałby mnie kilkaset złotych miesięcznie. Przyzwoity VPS mam za niecałe pięćdziesiąt. Są jednak także inne zalety, np. VPSy można w razie potrzeby przenosić między różnymi fizycznymi maszynami, można je łatwo klonować, można trywialnie dodawać im więcej dysku czy pamięci, można je błyskawicznie uruchamiać na bazie wzorcowych obrazów. Ba! VPS na silnej maszynie z dobrą macierzą dyskową i szybkim procesorem może zapewniać lepszą wydajność, niż słaby dedykowany komputer z bylejakim dyskiem.
Ideę wirtualizacji najbardziej rozpropagowało chyba Vmware (w kontekstach hostingowych jednak, z paru względów, bardzo rzadkie). Sieciowi providerzy posługują się najczęściej Xenem, Virtuozzo lub UMLem.
Czemu VPS (i dla kogo)
Czemu VPS? Prowadząc niewielki serwis sieciowy, taki jak mój, mam do wyboru:
- korzystać z któregoś z darmowych serwisów do umieszczania blogów lub stron (od bloggera i googlepages po blox.pl czy republika.onet.pl),
- kupić komercyjny blog tu czy tam (analogicznie - sklep, wiki, repozytorium kodu z bugtrackerem, ...),
- użyć jakiegoś dzielonego hostingu (jedna z miliona ofert typu jedna baza mySQL, PHP, HTML, 2GB dysku),
- uruchamiać go na domowym komputerze,
- użyć VPS.
Licencjonowanie dedykowanego serwera nie wchodzi w grę z oczywistych (koszt) przyczyn.
Darmowe serwisy nadają się dobrze do zrobienia prostych notatek, ale przy nieco poważniejszym podejściu pokazują poważne ograniczenia. Pięć schematów wyglądu do wyboru, brak dostępu do logów, rozmaite ograniczenia co do prezentowanych treści (choćby - częsty zakaz prezentowania reklam), nieraz konieczność godzenia się z reklamami dostawcy usługi. Do tego dość ostre limity różnej maści. Dla mnie odpada - chcę mieć kontrolę nad swoim serwisem. No i chcę budować prestiż swojej, a nie cudzej domeny.
Komercyjny, płatny blog jest OK, jeśli ktoś chce prowadzić blog - i nic więcej. Można go zwykle solidnie spersonalizować, można umieszczać reklamy, ma się jakieś gwarancje dotyczące dostępności i wydajności, można umieścić pod własną domeną. No ale jest to tylko blog. A cena jest tego samego rzędu, co cena VPSa.
Dzielone hostingi są totalnie niedeterministyczne jeśli chodzi o wydajność, do tego ... zawsze okazuje się, iż jakiegoś potrzebnego mi programu nie ma i zainstalować nie można albo jest w innej wersji niż mi potrzebna. Kontrowersyjna jest sprawa zabezpieczania danych. Przy tanich hostingach dochodzą też ostre ograniczenia na dysk i pasmo (włącznie z wyłączeniem serwisu gdy zdobędzie nadmierną popularność). I znowu - są one tylko nieznacznie tańsze od VPSów, przy ostrzejszych ograniczeniach.
Powyższe rozwiązania oznaczają też posiadanie wspólnego adresu IP z niezidentyfikowaną grupą innych osób. Jeśli któraś z tych osób będzie się brzydko bawić (spam, podejrzana treść, brudne pozycjonowanie, ....), możemy z rozpędu znaleźć się w takich czy innych filtrach.
Uruchamianie z domu to bardzo kiepski czas dostępu dla użytkowników (specjalizowanego linka nie kupię, a dostawcy domowego internetu dają dużo lepsze pasmo ze świata, niż w świat). Plus okresy niedostępności ilekroć wyłączę komputer. Plus oczywiste problemy z bezpieczeństwem i stabilnością, na roboczym komputerze uruchamiam multum różnorodnych aplikacji, trzymam różne prywatne dane, instaluję różne próbne wersje itp.
Na VPS mam pełny dostęp root
-a, mogę zainstalować i uruchomić co tylko chcę (od wyboru ulubionej dystrybucji Linuksa począwszy, na preferowanym rodzaju bazy danych czy wersji perla skończywszy),
mogę skonfigurować system jak tylko mi się podoba, od reguł firewalla po format logów serwera WWW. Mam pełną kontrolę.
Jedyny problem - to jest faktycznie mój system, ja muszę go skonfigurować, ja muszę wybrać i poinstalować aplikacje, ja muszę o niego dbać. Ale to akurat lubię robić...
Dla kogo tedy? Dla kogoś, kto umie administrować Linuksem (albo chce się tego nauczyć), a także umie znaleźć i wybrać potrzebne aplikacje.
Na co patrzeć wybierając
Oczywistym elementem wyboru VPS jest koszt. VPSy są najczęściej oferowane w planach wymiarowanych głównie pojemnością RAM i dysku. Występują niesamowite dysproporcje w cenach, podobnej wielkości serwer potrafi kosztować u jednego dostawcy 20 dolarów, a u innego 50 euro. W tej chwili szczególnie drogie bywają firmy brytyjskie.
Oszacować potrzebny rozmiar może być trudno, ale .... często mało wystarczy. Dłuższy czas utrzymywałem bazę PostgreSQL, dynamiczny serwis webowy, bota sieciowego, serwer DNS dla domeny i serwer pocztowy na 96MB RAM. I działało zupełnie przyzwoicie (oczywiście pod stosunkowo niewielkim obciążeniem). Dobrze jeśli VPS pozwala łatwo upgradeować wirtualną maszynę, możemy wówczas zacząć od najmniejszej oferty i w razie potrzeby dołożyć RAMu, dysku czy pasma.
Stabilności działania, okresów dostępności, jakości połączenia do sieci - nie da się łatwo przewidzieć. Ale można poszukać opinii użytkowników, Ci niezadowoleni zwykle nie kryją swoich odczuć.
Warto wybrać ofertę opartą na Xen. W przeciwieństwie do Virtuozzo i UML nie pozwala on na overselling (czyli wpychania na fizyczną maszynę więcej VPSów, niż się na niej mieści w nadziei, że zawsze któryś będzie potrzebował mniej zasobów), zapewnia też lepszą kontrolę podziału zasobów między wirtualnymi maszynami (mniej czujemy uruchamiającego mocno obciążające procesor lub dysk programy sąsiada).
Nie zdecyduję się już raczej na VPS w którym jedyną formą załatwienia czegokolwiek (od wpisu w reverse DNS, przez korektę layoutu dysków, po wyjaśnienie parogodzinnej niedostępności) jest mail do administratora. Porządna aplikacja do zarządzania, awaryjna konsola, system ticketów do wyjaśniania nietypowych problemów - to już rzeczy, których naprawdę można oczekiwać.
Trzeba też sprawdzić jakość połączenia z domu, w meandrach internetu bywa, że do ogólnie przyzwoitego miejsca mamy - z niejasnych przyczyn - słaby link.
Rekomendacje
Używam obecnie i z całego serca rekomenduję Linode. Jest to w tej chwili bodaj najwięcej za najmniej . Jeszcze niedawno płaciłem na XenPlanet (i tak jednym z tańszych europejskich VPS) 15$ miesięcznie za 96MB RAM i 50GB pasma. Na Linode za 20$ mam 360MB RAM i 200 GB pasma. Do tego bardzo fajna aplikacja webowa do zarządzania wirtualną maszyną (od konfigurowania dystrybucji, podziału na dyski i reverse DNS, przez możliwość zrebootowania maszyny i weryfikacji jej stanu, po rozbudowane raporty dotyczące zużycia zasobów), możliwość zalogowania się na maszynę nawet w razie zepsucia jej konfiguracji sieciowej, żywe fora użytkowników, szybki procesor.
Zastanawiałem się też poważnie nad Slicehostem. Ma w tej chwili nieco słabsze plany niż Linode, ale ma szerokie grono bardzo zadowolonych użytkowników, bardzo dobrą opinię co do stabilności i wydajności, do tego jest znany z świetnego supportu. Do Linode ostatecznie przekonała mnie historia - Linode regularnie poprawia plany swoich bieżących użytkowników. Podejście chyba unikalne.
Trochę się bałem hostować polski serwis w USA, ale jak na razie wszystko działa bardzo sprawnie, nie czuję żadnych opóźnień. Z centrów Linode najlepszy link do Europy ma podobno Newark (i tam się hostuję).
Chciałbym polecić kogoś z Europy (a najlepiej z Polski), ale w tej chwili - nie mam kogo. Albo bardzo drogo, albo byle jak, albo oba naraz. Coś ciekawego może wyrosnąć z hostingu Gandi (w tej chwili jeszcze beta).
Więcej linków nie będzie - każdy potrafi sam wpisać w google VPS albo Xen hosting (swego czasu przeglądałem ponad trzydzieści ofert tego typu).