Na czym polega skalowalność?

Skalowalność to przede wszystkim możliwość rozbudowania systemu, zgodnie z wzrostem zapotrzebowania na zasoby. Podczas projektowania wyznacza się kryteria minimalnej wymaganej wydajności. W praktyce z upływem czasu ten parametr często chciało by się zwiększyć, ale czy to możliwe? Bardzo dużo zależy od struktury rozwiązania.

skalowanie pionowe

Jako przykład niech posłuży oprogramowanie początkowo nastawione na kilku użytkowników. Wraz z wzrostem zainteresowania ich liczba rośnie do kilku tysięcy, przez co czas pobierania informacji z bazy danych rośnie kilkukrotnie. W tej sytuacji można wykonać skalowanie w pionie, przez wymianę sprzętu na bardziej wydajny, lub skalowanie w poziomie które uzyskuje się przez rozdzielenie ruchu na kilka maszyn przy użyciu Load Balancer`a. Oba przedstawione zabiegi mają na celu przywrócenie krótkiego czasu odpowiedzi.

Inną formą przyspieszenia działania aplikacji wraz z wzrostem zapotrzebowania jest ingerencja w kod. Badania mające na celu analizę komponentów oraz optymalizacja kodu systemu mogą przynieść bardzo dobre rezultaty. Modyfikacje głównie mają na celu skrócenie czasu wykonywania kodu oraz przesyłanie danych tylko koniecznych do prawidłowego działania oprogramowania.

skalowanie poziome

Skalowanie pionowe jak i poziome możliwe jest do wprowadzenia również w innych dziedzinach na przykład w automatyce. Aby zwiększyć wydajność produkcji można przyspieszyć proces na aktualnym urządzeniu (skalowanie poziome), albo zintegrować rozwiązanie z drugim - takim samym(pionowe).