Skalowanie aplikacji kontenerowych i równoważenie obciążenia
Źródło: HFWMan, CC BY-SA 4.0, Wikimedia Commons
Skalowanie horyzontalne i wertykalne
Skalowanie wertykalne polega na zwiększeniu zasobów obliczeniowych (procesora, pamięci) przydzielonych pojedynczej instancji aplikacji, natomiast skalowanie horyzontalne polega na zwiększeniu liczby uruchomionych instancji tej samej aplikacji. W środowiskach kontenerowych, ze względu na łatwość uruchamiania kolejnych kopii tego samego kontenera, skalowanie horyzontalne jest podejściem stosowanym znacznie częściej.
Automatyczne skalowanie
Platformy orkiestracji, takie jak Kubernetes, opisany w artykule Czym jest Kubernetes, oferują mechanizmy automatycznego skalowania liczby instancji aplikacji w odpowiedzi na bieżące obciążenie — na przykład zużycie procesora lub liczbę przychodzących żądań. Mechanizm ten pozwala na dostosowanie liczby zasobów do rzeczywistego zapotrzebowania bez konieczności ręcznej interwencji zespołu operacyjnego.
Równoważenie obciążenia
Gdy aplikacja działa w wielu instancjach, konieczny jest mechanizm rozdzielający przychodzący ruch między nimi — nazywany równoważeniem obciążenia (load balancing). Mechanizm ten może działać na różnych poziomach: od prostego rozdzielania ruchu w oparciu o kolejność zgłoszeń (round-robin), po bardziej zaawansowane strategie uwzględniające bieżące obciążenie poszczególnych instancji.
W architekturach mikrousługowych równoważenie obciążenia bywa realizowane zarówno przez dedykowane komponenty infrastruktury, jak i przez warstwę service mesh, opisaną w artykule Service mesh a tradycyjne trasowanie ruchu.