Skalowalna architektura internetowa

Co to jest skalowalność?
Skalowalność to pożądana właściwość systemu, sieci lub procesu, która wskazuje na jego zdolność do reagowania i dostosowywania się bez utraty jakości lub do radzenia sobie z ciągłym wzrostem liczby miejsc pracy w płynny sposób, aby być przygotowanym na rozwój bez utraty jakości oferowanych usług .
Można powiedzieć, jaka jest zdolność naszego systemu do obsługi większego obciążenia pracą z modyfikacjami lub rozszerzeniami, które są rozsądne pod względem kosztów, czasu, czasu i złożoności.
Rodzaje skalowalności
Ogólnie możemy mówić o skalowaniu w pionie i poziomie lub kombinacji obu.

Skalowanie w pionie


Polega ona w zasadzie na zwiększeniu pojemności jednego lub kilku konkretnych elementów naszej architektury, na przykład rozszerzeniu pamięci naszego serwera centralnego, czy wymianie procesorów na inne, szybsze. Podsumowując, zwiększ pojemność serwera, co jest bardzo powszechne, gdy korzystamy z wirtualizacji i mówimy, że w tym czasie serwer będzie miał do dyspozycji 30% pamięci RAM.

Skalowanie poziome


To ten, który szczegółowo opiszemy w samouczkuopiera się na zwiększeniu liczby węzłów, które wykonują to samo zadanie, przy użyciu różnych typów planowania, np. jeśli mamy nasycony serwer WWW, dodajemy kolejny, aby zrównoważyć obciążenie.
Rodzaje architektury internetowej opartej na poziomach.
Porozmawiamy o architekturach, które można zastosować z systemami linuksowymi, korzystając z narzędzi open-source przejdziemy od najbardziej podstawowych do dość zaawansowanych oferujących skalowalność poziomą i odporność na awarie, wszystkie te architektury można zastosować w dowolnym PaaS lub z własną infrastrukturą.

1. Architektura jednopoziomowa


Jest to najbardziej podstawowe ze wszystkich, gdzie jest tylko jeden serwer z Apache i MySQL, do którego można uzyskać zdalny dostęp. Jest to bardzo powszechne na stronach z niewielkim marginesem odwiedzin lub środowisk testowych, nie oferuje żadnego marginesu tolerancji na awarie i trudno go wykorzystać do wzrostu w poziomie.

2. Architektura dwupoziomowa


Tym razem oddzieliliśmy bazę danych od serwera WWW, oferując odrobinę odporności na błędy. W ten sposób, jeśli baza danych ulegnie awarii, serwer WWW może zaoferować zawartość w sposób statyczny, który nie zależy od bazy danych. A jeśli serwer WWW ulegnie awarii, nadal możemy uzyskać dostęp do informacji, ponownie podnosząc nowy serwer WWW.Projekt ma kilka wad, ponieważ nie jest zbyt skalowalny.

3. Architektura trójwarstwowa


Tym razem zaczynamy korzystać z load balancera, który odbierze wszystkie żądania od użytkowników. Tym razem oferujemy bardziej skalowalny projekt, dzięki czemu w przypadku wzrostu obciążenia możemy dodać więcej serwerów WWW i skalować. Możemy nawet zastosować autoskalowanie, aby serwery internetowe były dodawane automatycznie przy określonym poziomie obciążenia lub w godzinach szczytu. Problem z tym projektem polega na tym, że możemy nasycić naszą bazę danych.

4. Architektura czteropoziomowa


Teraz korzystamy z load balancera i memcached, dzięki czemu system jest bardziej skalowalny. Dzięki temu projektowi możemy dodać dowolną liczbę baz danych i serwerów internetowych, oprócz oferowania odporności na błędy. Możemy podzielić obciążenie między bazy danych za pomocą KASANDRA oferując wdrożenie wielowęzłowe. Ten projekt jest znacznie bardziej złożony, ale dodaję znacznie większą odporność na uszkodzenia i możliwość skalowania wszystkich jego poziomów.

5. Architektura pięciopoziomowa


Zawartość strony internetowej można podzielić na statyczną i dynamiczną. Na przykład dzielimy warstwę internetową na serwer Apache i drugą z aplikacjami JAVA z uruchomionymi Jetty lub JBoss. Apache udostępnia zawartość statyczną, podczas gdy serwer aplikacji obsługuje zawartość dynamiczną lub w locie. Przykładem może być sekcja FAQ na stronie wsparcia, ponieważ jest to tylko statyczna treść, którą mogą obsługiwać APACHE / NGINX.

POWIĘKSZAĆ

6. Sześciopoziomowa architektura


Możemy być trochę bardziej eleganccy i dodać sieć dostarczania treści (CDN) lub to, co w AWS jest znane jako Amazon CloudFront CDNNa przykład mamy witrynę e-learningową, a nasi użytkownicy pobierają przewodniki w formacie PDF lub wideo z naszej witryny. Możemy zaoszczędzić całą przepustowość przeznaczoną na pobieranie, oferując ją z sieci CDN, która się tym zajmuje, Reszta sieci może działać w naszej infrastrukturze.

POWIĘKSZAĆ

WnioskiWidzieliśmy wielowarstwowe architektury, które można zastosować w zależności od ruchu w sieci. Wskazane jest tworzenie architektur myślących o przyszłości, które potrafią skalować i utrzymywać odporność na awarie, unikając załamań w sieci spowodowanych brakiem zasobów lub awarią niezbędnego węzła. Tworząc niektóre z tych projektów wraz z innymi zaleceniami, takimi jak kopie zapasowe i automatyczne wdrożenia, możemy zaoferować witrynę internetową z 99,9 odpornym na błędy czasem działania.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave