Spisie treści
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Ć