Serwery i Linux: czy nie można po prostu zainstalować Windowsa?

Jak właściwie wygląda komputer serwerowy?

Kiedy zaczynałem naukę programowania, miałem dość mgliste wyobrażenie o ‘serwerze’. Widziałem oczami wyobraźni gigantyczny superkomputer jak z Matrixa, z zielonymi literami spływającymi jak deszcz, plątaniną niezliczonych kabli i ogromnymi maszynami świecącymi na niebiesko przy potężnym mechanicznym huku.

Ale pierwsza serwerownia, jaką zobaczyłem w pracy, czyli IDC, w ogóle nie przypominała tego obrazu. Te płaskie maszyny w rackach po otwarciu okazywały się po prostu ‘zwykłymi komputerami’ z CPU, RAM-em i SSD, niewiele różniącymi się od mojego laptopa.

Co więc właściwie sprawia, że mój laptop nazywa się ‘komputerem osobistym’, a ta toporna maszyna ‘serwerem’?

Serwer nie jest wyjątkową maszyną, tylko komputerem pełniącym wyjątkową rolę.

Ten, który daje (Server) vs. ten, który prosi (Client)

Definicja serwera jest bardzo prosta. To ten, który ‘serve’, czyli dostarcza. Po drugiej stronie klient jest tym, który wysyła żądanie.

Innymi słowy, nawet mój stary laptop staje się ‘serwerem’, jeśli zostawię go włączonego 24 godziny na dobę i pozwolę na połączenia z zewnątrz. Dlaczego więc nie używamy mojego laptopa jako serwera? Dlaczego płacimy za wynajęcie chmurowych serwerów takich jak AWS EC2 i instalujemy na nich to pozornie trudniejsze w obsłudze ‘Linux’?

Dlaczego akurat Linux? (Windows się nie nadaje?)

Windows jest naprawdę wygodny. Wystarczy klikać myszką i wszystko wydaje się intuicyjne. Dlaczego więc developerzy serwerowi tak uparcie trzymają się Linuxa, który wygląda jak zwykły czarny ekran?

1. GUI to luksus (koszt i efektywność)

Po uruchomieniu Windowsa pojawia się pulpit, ikony i kursor myszy. Aby utrzymać cały ten graficzny interfejs, komputer stale zużywa CPU i pamięć. Ale serwer nie potrzebuje monitora. Może stać gdzieś po drugiej stronie świata i zajmować się wyłącznie przetwarzaniem danych. Serwer Linux w trybie CLI usuwa całą grafikę i zostawia tylko tekst. Jeśli Windows zużywa 30 ze 100 jednostek mocy na rysowanie ekranu, Linux może przeznaczyć całe 100 na samą usługę.

2. Wolność od wymuszonych aktualizacji (stabilność)

Jeśli używasz Windowsa wystarczająco długo, w końcu trafiasz na komunikat “Ponowne uruchamianie w celu aktualizacji”. Na komputerze osobistym to tylko irytacja: odchodzisz na chwilę i wracasz. Ale co, jeśli serwer, który ma działać 24/7, sam z siebie się wyłączy? To katastrofa. Linux często potrafi działać przez lata bez restartu, chyba że zdarzy się coś dużego, jak aktualizacja kernela.

3. Koszt licencji (pieniądze)

Windows Server jest drogi. Czasem cena zależy nawet od liczby rdzeni CPU. Linux natomiast, jak Ubuntu czy CentOS, jest zwykle darmowy i open source. Dla firmy, która musi utrzymywać tysiące serwerów, odpowiedź jest dość oczywista.

Dla serwera efektowna grafika to tylko zbędny bagaż.

A może zainstalować Linuxa na Windowsie? (Początek wirtualizacji)

W tym momencie początkujący developer, czyli dawna wersja mnie, wpada na błyskotliwy pomysł. “Skoro Windows jest wygodniejszy, to czemu nie zainstalować Windows Server i uruchamiać w nim Linuxa jako ‘Virtual Machine’?”

Oczywiście, że można. Ale to jest jak rozstawienie namiotu w środku domu i zamieszkanie w nim.

Właściciel domu, czyli Windows, też musi jeść, a lokator, czyli Linux, również. Marnotrawstwo zasobów jest ogromne. Dlatego developerzy zaczęli zadawać lepsze pytanie: “Zamiast instalować cały ciężki system operacyjny, czy nie da się odizolować i uruchomić tylko tego ‘środowiska’, którego naprawdę potrzebujemy?”

Właśnie z tego toku myślenia narodził się Docker, czyli technologia kontenerów.

Następna historia: świat bez myszy

Teraz już rozumiemy, dlaczego serwery porzuciły Windowsa i wybrały Linuxa. Ale zrozumieć coś w głowie a dotknąć tego własnymi rękami to dwie różne rzeczy. Kiedy po raz pierwszy łączysz się z serwerem Linux, nie wita cię przyjazny przycisk Start z Windowsa, ale tylko migający kursor na czarnym ekranie.

Następnym razem przyjrzymy się podstawowym umiejętnościom przetrwania w tym obcym środowisku terminala Linux, czyli CLI: zarządzaniu uprawnieniami plików i kontrolowaniu serwera bez myszy.

Dodaj komentarz