Architektura mikrousług - skalowanie
Skalowanie to proces dzielenia oprogramowania na różne jednostki. Skalowanie definiuje również pod względem skalowalności. Skalowalność to potencjał umożliwiający wdrożenie bardziej zaawansowanych funkcji aplikacji. Pomaga poprawić bezpieczeństwo, trwałość i łatwość konserwacji aplikacji. Mamy trzy rodzaje procedur skalowania, które są stosowane w branżach. Poniżej przedstawiono różne metodologie skalowania wraz z odpowiadającymi im przykładami z życia wziętymi.
Skalowanie osi X.
Skalowanie osi X jest również nazywane skalowaniem poziomym. W tej procedurze cała aplikacja jest podzielona na różne części poziome. Zwykle każda aplikacja serwera WWW może mieć ten typ skalowania. Rozważmy normalną architekturę MVC, która jest zgodna ze skalowaniem poziomym, jak pokazano na poniższym rysunku.
Jako przykład możemy rozważyć dowolną aplikację serwletu JSP. W tej aplikacji kontroler kontroluje każde żądanie i generuje widok, komunikując się z modelem w razie potrzeby. Zwykle aplikacje monolityczne stosują tę metodę skalowania. Skalowanie osi X ma bardzo podstawowy charakter i jest bardzo mniej czasochłonne. W tej metodologii jedno oprogramowanie będzie skalowane w zależności od różnych zadań, za które odpowiada jednostka. Przykładowo, kontroler jest odpowiedzialny za kontrolę przychodzącego i wychodzącego żądania, widok odpowiada za reprezentowanie funkcjonalności biznesowej dla użytkowników w przeglądarce, a model jest odpowiedzialny za przechowywanie naszych danych i działa jako baza danych.
Skalowanie osi Y.
Skalowanie osi Y jest również nazywane skalowaniem pionowym, które obejmuje skalowanie na poziomie zasobów. Każdy system DBaaS lub Hadoop można uznać za skalowany w osi Y. W tego rodzaju skalowaniu żądanie użytkownika jest przekierowywane i ograniczane przez implementację pewnej logiki.
Weźmy jako przykład Facebooka. Facebook musi obsłużyć 1,79 miliona użytkowników w każdej sekundzie; stąd kontrolowanie ruchu jest ogromną odpowiedzialnością inżynierów sieci Facebooka. Aby przezwyciężyć jakiekolwiek zagrożenie, stosują skalowanie w osi Y, które obejmuje jednoczesne uruchamianie wielu serwerów z tą samą aplikacją. Teraz, aby kontrolować ten ogromny poziom ruchu, Facebook przekierowuje cały ruch z jednego regionu na określony serwer, jak pokazano na obrazku. To przenoszenie ruchu w oparciu o region nazywa się równoważeniem obciążenia w języku architektonicznym.
Ta metoda podziału zasobów na małe niezależne jednostki biznesowe jest znana jako skalowanie osi Y.
Skalowanie osi Z.
Skalowanie osi X i Y jest znacznie łatwiejsze do zrozumienia. Jednak jedną aplikację można również skalować na poziomie biznesowym, co nazywa się skalowaniem osi Z. Poniżej przedstawiono przykład skalowania aplikacji usług taksówkowych w różnych pionach jednostek biznesowych.
Zalety skalowania
Cost - Właściwe skalowanie oprogramowania zmniejszy koszty utrzymania.
Performance - Ze względu na luźne powiązania wydajność odpowiednio skalowanego oprogramowania jest zawsze lepsza niż oprogramowania nieskalowanego.
Load distribution - Korzystając z różnych technologii, możemy łatwo utrzymać obciążenie naszego serwera.
Reuse - Skalowalność oprogramowania zwiększa również użyteczność oprogramowania.