Kwestia serwera zawsze pojawia się, gdy chcemy uruchomić swój blog, stronę czy sklep internetowy – ale co to właściwie jest?
Serwer to komputer
Na zdjęciach ofert hostingowych serwery to szafy zapchane migającymi diodami z wychodzącymi gdzieś z tyłu kablami. Jednak z definicji serwerem może być dowolny komputer wyposażony w odpowiednie oprogramowanie i dostęp do sieci Internet. „Zwykły” domowy komputer też z powodzeniem może pełnić rolę serwera. Oczywiście mniej wydajnego niż przystosowane do tego (wyspecjalizowane) komputery w serwerowni.
Parametry sprzętowe serwera hostingowego
Skoro wiemy już że serwer to praktycznie nic tylko znany nam komputer, pora spojrzeć na to, co kryje się w środku. W przeciwieństwie do domowego komputera, serwer pod stronę/aplikację internetową (tzw. hosting) będzie posiadał niektóre komponenty o wiele mocniejsze (np. pamięć RAM) a niektórych nie będzie posiadał wcale, bo ich nie używa (np. karta graficzna). W ofertach spotkamy się z poniższymi parametrami sprzętowymi:
- Procesor (CPU) – wpływa na szybkość uruchamiania i wykonywania oprogramowania bloga, strony lub sklepu,
- Pamięć operacyjna (RAM) – definiuje ilość miejsca w pamięci dla uruchomionego oprogramowania, np. ile dany program może przetwarzać danych „na raz”,
- Przestrzeń dyskowa – zapewnia miejsce dla plików z oprogramowaniem a także zasobów takich jak zdjęcia, dokumenty, itp.,
- Baza danych – zapewnia miejsce dla uporządkowanych danych, niezbędnych do działania oprogramowania. Zwykle przechowuje wszystkie informacje tekstowe które widzimy na blogu, stronie lub sklepie,
- SLA – jest to wskaźnik gwarancji świadczenia usługi, czyli przez ile czasu (np. w roku) firma hostingowa gwarantuje, że serwer będzie dostępny. Przykładowo, SLA na poziomie 99% może oznaczać, że w ciągu roku serwer może być niedostępny aż 86 godzin, czyli prawie 4 dni. Obecnie wysokie SLA jest standardem, ale warto mieć na uwadze że istnieje taka możliwość. Szczególnie przy podejrzanie tanich ofertach.
- Przepustowość łącza – podobnie jak w domowej ofercie dostępu do Internetu, serwer jest podłączony przez łącze o ograniczonej przepustowości. Obecnie ten parametr nie powinien stanowić problemu, nawet przy wielu Użytkownikach online, ale jeśli planujemy udostępnić pobieranie dużych plików, warto wziąć go pod uwagę.
Należy również pamiętać że hosting jest ofertą bazującą na współdzieleniu zasobów jednej fizycznej maszyny dla wielu klientów, więc jeśli jakaś inna strona generuje duże obciążenie na „naszej” maszynie, może to wpłynąć na wydajność naszej strony. Problem może wystąpić szczególnie w gorzej zarządzanych serwerach.
Parametry sprzętowe serwera VPS
Dla bardziej wymagających aplikacji oferta hostingowa może nie wystarczyć. Można więc wybrać ofertę serwerów VPS (ang. virtual private server). Jest ona znacznie droższa, jednak daje więcej możliwości. Podobnie do oferty hostingowej, otrzymujemy część zasobów z fizycznego serwera, jednak są one gwarantowane, więc inni użytkownicy nie mają pośredniego wpływu na naszą aplikację.
Rodzaje parametrów sprzętowych są praktycznie takie same jak w ofercie hostingowej. Jedyną różnicą będzie baza danych. Zwykle o bazę danych musimy zadbać sami (zainstalować ją na serwerze), przez co jej wielkość i wydajność jest połączona z takimi parametrami serwera jak CPU, RAM oraz przestrzeń dyskowa. Istnieją również oferty uruchomienia samej bazy na osobnej maszynie, na zasadzie chmury.
Parametry sprzętowe serwera dedykowanego
Jeśli szukamy rozwiązania jeszcze bardziej wydajnego i oferującego jeszcze więcej kontroli na maszyną i jej zasobami, możemy trafić na ofertą serwerów dedykowanych. W przeciwieństwie do hostingu lub serwera VPS, otrzymujemy dostęp do całej fizycznej maszyny. Przeskok ceny jest podobny, będzie to znacznie wyższa kwota niż za ofertę VPS. Jednak dostajemy za to o wiele lepsze parametry oraz inne opcje. Jest to oferta skierowana do użytkowników zaawansowanych.
Ze względu na dynamiczny rozwój rozwiązań chmurowych, ta oferta przegrywa przy zastosowaniach w większej skali. Jednak nadal istnieją stare aplikacje czy systemy których przeniesienie do chmury może być uciążliwe lub po prostu nieopłacalne.
Parametry sprzętowe chmury
Obecnie najczęściej wybieraną opcją jest oferta chmurowa. Ponieważ chmura to tak naprawdę zbiór różnych usług (takich jak hosting, vps, serwery dedykowane, bazy danych, miejsce dyskowe), bije ona na głowę wcześniej opisane oferty. Różnicą między typowym serwerem służącym do utrzymania strony internetowej a chmurą jest to, że oferuje np. poszczególne parametry rozbite na osobne usługi. W ten sposób jeśli mamy aplikację, która potrzebuje ogromną ilość miejsca na pliki (bo np. udostępniamy naszym Klientom pliki wideo), ale nie potrzebuje wydajnego CPU czy pamięci RAM, możemy osobno wybrać słabszą usługę hostowania strony ale dołożyć do tego bardzo wydajną usługę przechowywania plików. Kosztowo może to wyjść o wiele lepiej niż np. oferta VPS czy serwer dedykowany. Należy jednak pamiętać że takie rozwiązania wymusza użycia trochę innej architektury w naszej aplikacji.
Jeśli planujemy budowę aplikacji od której oczekujemy zmiennej wydajności (np. duże skoki Użytkowników online), warto wybrać ofertę chmurową. Aplikacja o odpowiedniej architekturze będzie w takim środowisku łatwo skalowalna, co pozwoli nam nie tylko uniknąć dużych, stałych kosztów, ale również zapewni większą stabilność przy nowych wyzwaniach.
W innym moim artykule możesz przeczytać więcej o tym czym jest chmura.
Serwer to program
Komputer o odpowiednich parametrach sprzętowych to nie wszystko czego potrzebujemy by faktycznie nazwać go serwerem. Powinno być na nim zainstalowane odpowiednie oprogramowanie, które ma wpływ na to jak działa (stabilnie i szybko). Do wyboru jest wiele rozwiązań, ale najpopularniejsze z nich to tzw. LAMP, czyli:
- Linux – system operacyjny komputera,
- Apache – program-serwer, przyjmuje i przetwarza żądania. Możemy modyfikować jego ustawienia w pliku .htaccess,
- MySQL – program-baza danych, przechowuje dane i pozwala na nich wykonywać różne operacje (np. odczyt czy modyfikacje),
- PHP – język skryptowy w którym napisana jest strona lub sklep ( tj. aplikacja internetowa)
Taki zestaw technologii jest najbardziej rozpowszechniony – przemawia za tym jego niski koszt oraz ogólnodostępność. Skoro jest tani, czy jest on gorszy i ustępuje innym, o wiele droższym rozwiązaniom? Nie – ale to oczywiście zależy od oczekiwań użytkownika.
Wymienione programy – serwer Apache oraz baza danych MySQL (MariaDB) – spotkamy najczęściej. Pokrewnymi rozwiązaniami z jakimi możesz się spotkać to serwery Nginx oraz LiteSpeed, bazy danych PostgreSQL, SQLite (to specyficzna baza danych, jej zawartość jest przechowywana w jednym pliku) lub Mongo.
Wybierając serwer należy zwrócić uwagę jakim oprogramowaniem dysponuje. Oferty hostingów zwykle udostępniają szeroki wachlarz technologii, więc uruchomienie naszej strony nie powinno przysporzyć problemów. Jednak często oprogramowanie jest dostępne w konkretnej wersji. Jeśli chcesz przenieść starą stronę lub zainstalować nietypową aplikację, upewnij się czy oprogramowanie serwera jest kompatybilne, aby uniknąć dodatkowych kosztów np. za dostosowanie starej strony do nowej wersji oprogramowania (np. PHP czy MySQL).
Dostęp do serwera
Jako właściciel strony lub sklepu, powinieneś posiadać dostęp do swojego serwera. Jeśli wybrałeś hosting, zwykle będzie to standardowy dostęp FTP (dostęp do plików strony na zasadzie dostępu jak do dysku sieciowego) oraz PhpMyAdmin (dostęp do bazy danych). Przy ofertach VPS i wyższych, dostęp będzie również do konsoli serwera, czyli do systemu operacyjnego i jego składników. Szczególnie przydatne gdy potrzebujesz wykonać na serwerze jakieś nietypowe akcje, nie znajdujące się w panelu serwera (np. instalacja/konfiguracja dowolnego oprogramowania).
Jak to jest zbudowane?
Choć serwery przypominają komputery domowe, w celu maksymalizacji najbardziej pożądanych cech wymienionych we wcześniejszym punkcie ich budowa nieco się różni.
Mogą to być samodzielne jednostki, w formie bardzo wydajnych komputerów z silnym procesorem, dużą ilością pamięci RAM oraz pojemnymi i wydajnymi dyskami twardymi. Najbardziej przypominają domowy komputer i jako takie są oferowane przez firmy hostingowe jako Serwery Dedykowane.
Częściej jednak bardziej opłacalne (stosunek ceny do wydajności) jest utworzenie osobnego komputera z procesorami i pamięcią RAM (serwer obliczeniowy), osobnego komputera z dużą ilością dysków (macierz dyskowa) oraz kolejnego komputera wyspecjalizowanego w bazie danych (serwer bazy danych). Następnie można połączyć kilka takich komputerów-serwerów tworząc jeden duży i drogi ale wydajny komputer. Taka maszyna pozwala firmom hostingowym oferować Hostingi lub Serwery VPS.
Niezależnie od tego, czy jest to samodzielna jednostka czy maszyna złożona z wyspecjalizowanych komputerów, aby można nazwać ją serwerem musi być podłączona do sieci Internet np. przy pomocy światłowodów. Dzięki temu możemy z naszego domu lub pracy połączyć się do takiego serwera i np. przeczytać ten artykuł, sprawdzić skrzynkę mailową czy obejrzeć nasz ulubiony serial 🙂