Jak nowoczesne serwery i hosting sprawiają, że Twoje aplikacje są szybkie

12

Wpisujesz adres URL. Strona się ładuje. Natychmiast.

Wydaje się, że to magia, ale tak naprawdę to tylko inżynieria komunikacji. Ogromne, buczące systemy ukryte gdzieś na świecie w zimnych serwerowniach. Jeśli chcesz zrozumieć, dlaczego Twoja ulubiona aplikacja nie ulega awarii, gdy korzystają z niej miliony ludzi jednocześnie, musisz zajrzeć pod maskę. Musimy przyjrzeć się technologii serwerowej.

Nie mówimy tutaj o niejasnych metaforach „chmury”. Mówimy o stali, krzemie i kodzie, który zapobiega zawaleniu się Internetu pod własnym ciężarem. O systemach przechowujących, przetwarzających i przenoszących Twoje dane na całym świecie.

Główna funkcja serwera

Pozbądźmy się żargonu. Serwer to tylko komputer.

Ale nie byle kogo. To jest specjalista.

Podczas gdy na Twoim laptopie działają programy Word i Chrome, serwer obsługuje usługi. On czeka. On słucha. Odpowiada. Za każdym razem, gdy otwierasz wiadomość e-mail, oglądasz film lub publikujesz zdjęcie, wysyłasz żądanie z urządzenia klienckiego i czekasz na odpowiedź z serwera.

To nie jest interakcja jeden na jednego. Jeden serwer może przetwarzać tysiące żądań na sekundę. Robi to poprzez rozłożenie obciążenia. Analizuje ruch przychodzący. Sprawdza prawa dostępu. Obsługuje pliki statyczne lub wysyła zapytania do złożonych baz danych.

Nie wszystkie serwery wykonują te same zadania.
* Serwery plików przechowują dokumenty.
* Serwery internetowe obsługują strony HTML.
* Serwery baz danych zarządzają danymi strukturalnymi.

Często pracują w zespole. Rzadko wchodzisz w interakcję tylko z jednym serwerem. Wchodzisz w interakcję ze stosem technologii. Serwer WWW komunikuje się z serwerem bazy danych. Serwer ten komunikuje się z serwerem aplikacji. Wynik? Bezproblemowe doświadczenie użytkownika. Złożoność jest ukryta. Niezawodność według projektu.

Jak przesyłane są dane: protokoły i bezpieczeństwo

W jaki sposób dane docierają z punktu A do punktu B, nie gubiąc się po drodze?

Przestrzegają zasad. Surowe, rygorystyczne zasady.

Nazywamy je protokołami sieciowymi. Pomyśl o nich jak o zasadach obowiązujących w cyfrowym świecie.

Kiedy ładujesz stronę internetową, Twoja przeglądarka korzysta z protokołu HTTP (HyperText Transfer Protocol). „krzyczy”: „dajcie mi stronę główną”. Serwer odpowiada: „Oto jest”, dzieląc stronę na małe pakiety danych. Pakiety te podróżują przez Internet, przeskakując od routera do routera, aż dotrą do ekranu.

Nie zawsze przychodzą po kolei. Nie zawsze idą tą samą drogą.

W tym miejscu do gry wchodzi protokół TCP (Transmission Control Protocol). TCP gwarantuje dostarczanie pakietów. Sprawdza błędy. Zbiera dane poprawnie. Jeśli pakiet zostanie utracony, protokół TCP żąda go ponownie. Gwarantuje dostawę.

W przypadku poczty elektronicznej zasady ulegają zmianie. Za wysyłanie odpowiada SMTP. IMAP – do odbioru.

A dziś bezpieczeństwo jest koniecznością. Zwykły protokół HTTP jest niepewny. Używamy teraz protokołu HTTPS. Szyfruje kanał pomiędzy przeglądarką a serwerem. Zapewnia, że ​​nikt go nie słucha. Ta zmiana nie była opcjonalna. To była konieczność.

Na tym opierają się nowoczesne rozwiązania hostingowe. Używają buforowania do przechowywania kopii danych bliżej Ciebie. Używają modułów równoważenia obciążenia do kierowania ruchem wokół przeciążonych serwerów. Cel jest prosty: zminimalizować opóźnienia.

Od komputerów mainframe po chmurę

To nie stało się z dnia na dzień.

W latach 70. mieliśmy komputery typu mainframe. Ogromne komputery wielkości pokoju. Użytkownicy uzyskiwali do nich dostęp za pośrednictwem „głupich” terminali. Byłeś związany. Nie miałeś własnej mocy obliczeniowej.

Potem pojawiły się komputery osobiste. A wraz z nimi decentralizacja informatyki.

ARPANET, poprzednik Internetu, umożliwiał komunikację między różnymi systemami. To był bałagan. To było kruche. Ale to zadziałało.

Lata 90. zmieniły wszystko. Światowa sieć eksplodowała.

Serwery internetowe stały się osobną kategorią. Netscape stanął na czele ataku. Następnie pojawił się Apache. Microsoft wprowadził IIS. Nagle każdy mógł publikować treści.

Jednak tworzenie treści nie wystarczyło. Potrzebowaliśmy skalowalności.

Na scenę wkracza klastrowanie i wirtualizacja. Zamiast jednego gigantycznego serwera wykonującego całą pracę, podzieliliśmy zadania. Dodaliśmy moduły równoważenia obciążenia w celu dystrybucji ruchu. Stworzyliśmy maszyny wirtualne (VM) do uruchamiania wielu systemów operacyjnych na jednym sprzęcie.

To był most do chmury. To udowodniło, że odległość fizyczna nie ma znaczenia. Serwer w Wirginii mógłby obsługiwać użytkownika w Tokio równie szybko, jak serwer w Berlinie. Infrastruktura stała się elastyczna.

Wewnątrz czarnej skrzynki: sprzęt i wirtualizacja

Jak wygląda nowoczesny serwer?

Wygląda jak komputer stacjonarny.

Posiada procesor (CPU). Pamięć o dostępie swobodnym (RAM). Pamięć masowa Karta sieciowa.

Ale jest inaczej zbudowany.

Redundancja jest kluczowa. Jeśli jeden zasilacz ulegnie awarii, inny go przejmuje. Jeśli jeden dysk twardy ulegnie awarii, macierz będzie nadal działać. Systemy te są zaprojektowane tak, aby zawodzić z godnością. Zostały zaprojektowane tak, aby zapewnić nieprzerwaną pracę.

Ale prawdziwa rewolucja nie tkwi w sprzęcie. To jest wirtualizacja.

To tutaj nowoczesna technologia hostingu naprawdę błyszczy.

Serwer fizyczny można podzielić na dziesiątki maszyn wirtualnych. Każda maszyna wirtualna zachowuje się jak niezależny komputer. Posiada własny system operacyjny. Twoje zasoby. Twoje aplikacje.

Dlaczego to robimy?

Efektywność.

W przeszłości jedna aplikacja oznaczała jeden serwer fizyczny. Jeśli aplikacja została załadowana, serwer został załadowany. Jeśli aplikacja była bezczynna, serwer był bezczynny. Zmarnowane pieniądze. Zmarnowana energia.

Wirtualizacja zmienia matematykę.

Na jednej maszynie fizycznej można hostować wiele maszyn wirtualnych. Możesz przenieść maszynę wirtualną z jednego serwera na drugi bez ponownego uruchamiania. Jeśli serwer fizyczny wymaga konserwacji, obciążenie można przenieść w inne miejsce.

To jest podstawa przetwarzania w chmurze. Zapewnia nieskończoną skalowalność. Nie kupujesz więcej sprzętu, gdy wzrasta ruch. Uruchamiasz więcej maszyn wirtualnych. Skalujesz. Zwiększasz skalę.

Granica między tym, co fizyczne i wirtualne, zaciera się. Ale zasada pozostaje ta sama: podział obowiązków. Sprzęt zapewnia „mięśnie”. Oprogramowanie zapewnia logikę.

Razem zapewniają płynną pracę.

Infrastruktura nie jest już zależna od sprzętu. To jest kod.

Systemy chmurowe przyspieszyły tę zmianę do maksimum. Zasoby są zarządzane w całości za pomocą oprogramowania. Podkreślasz je. Zwracasz je. Interwencja człowieka jest rzadko wymagana. Jest prawie nieobecny.

Platformy takie jak Docker i Kubernetes pełnią tutaj rolę koordynatorów. Automatyzują dystrybucję aplikacji. Jeśli jedna instancja ulegnie awarii, nowe zostaną uruchomione szybciej, niż zdążysz wypić kawę. Dzięki temu funkcjonalność serwera jest zawsze aktualna. Dzięki temu metody hostingu są świeże. Dostosowuje się to do wymagań użytkownika w czasie rzeczywistym.

Serwery współdzielone, VPS, dedykowane i w chmurze: która opcja jest dla Ciebie odpowiednia?

Kiedy hostujesz witrynę internetową w Internecie, model hostingu ma znaczenie.

Hosting współdzielony to opcja podstawowa. Udostępniasz serwer fizyczny innym użytkownikom. To jest tanie. To proste. Ale szybko wpada na sufit swoich możliwości. Wysokie skoki ruchu lub szczególne wymagania techniczne mogą spowodować awarię witryny. Wydajność spada, gdy sąsiedzi serwera przeszkadzają.

Hosting na wirtualnym serwerze dedykowanym (VPS) zmienia równowagę sił. Otrzymujesz środowisko wirtualne. Izoluje Twoje zasoby od innych użytkowników. Masz większą kontrolę. Masz większą stabilność.

Hosting dedykowany idzie dalej. Otrzymujesz cały serwer fizyczny. Wyłącznie Twoje. Maksymalna moc. Pełna personalizacja. Jest to jednak kosztowne i nieelastyczne.

Następnie jest hosting w chmurze. Nie bez powodu jest to aktualny trend. Wykorzystuje rozproszoną infrastrukturę. Często obejmujące globalne centra danych. Zasoby są udostępniane dynamicznie. Płacisz za to, czego używasz.

Model ten zapewnia wysoką dostępność. Obsługuje równoważenie obciążenia. Uruchamia automatyczne kopie zapasowe. Skalowanie jest prawie nieskończone. Otrzymujesz odporność na błędy i maksymalną elastyczność. Ale są też kompromisy. Pojawiają się problemy z prywatnością danych. Mogą pojawić się problemy ze zgodnością. Model rozliczeń opiera się na zużyciu, co doskonale sprawdza się w przypadku potrzeb krótkoterminowych, ale wymaga monitorowania, aby uniknąć nieoczekiwanych opłat.

Szyfrowanie i bezpieczeństwo: chroń dane podczas przesyłania i przechowywania

Jak chronić serwery przed atakami i nieautoryzowanym dostępem?

Odpowiedź nie jest jednym rozwiązaniem. Są to warstwy ochronne.

Bezpieczeństwo fizyczne to tylko podstawa. Centra danych mają zamknięte drzwi. Systemy kontroli dostępu. Strategie tworzenia kopii zapasowych. Prawdziwą ochronę zapewnia jednak oprogramowanie.

Zapory ogniowe. Systemy wykrywania włamań. Regularne aktualizacje. Zamykają znane luki. Blokują nowe zagrożenia. Bez nich jesteś bezbronny.

Szyfrowanie ma kluczowe znaczenie dla tej ochrony. Zapobiega przechwytywaniu i manipulowaniu danymi podczas transmisji. Protokoły takie jak TLS (dawniej SSL) zabezpieczają kanał komunikacyjny pomiędzy klientem a serwerem. Informacje poufne – dane osobowe, szczegóły płatności – są szyfrowane, zanim jeszcze opuszczą Twoją przeglądarkę.

Poszukaj „https” w pasku adresu przeglądarki. To jest twój wizualny wskaźnik.

Ale szyfrowanie nie ogranicza się tylko do transmisji danych. Dane w spoczynku są również coraz częściej szyfrowane. Pełne szyfrowanie dysku. Zaszyfrowane kontenery. To staje się standardem.

Dostawcy usług w chmurze dostosowują się. Wiele z nich umożliwia obecnie użytkownikom zarządzanie własnymi kluczami szyfrującymi. Dodaje to warstwę kontroli. Funkcjonalność serwera i nowoczesne metody hostingu stale się rozwijają. To właśnie powinni zrobić. Wymagania dotyczące bezpieczeństwa rosną. Cel jest prosty: zapewnić bezpieczeństwo danych. Niezależnie od tego, czy są przesyłane, czy przechowywane.

Poprzedni artykułJak systemy informacyjne przekształcają surowe dane w aktywa biznesowe
Następny artykułPochodzenie Instagrama: historia Marka Zuckerberga i Kevina Systroma