Dwa rodzaje skalowania
Skalowanie w górę to dołożenie zasobów do jednej maszyny: więcej pamięci, więcej rdzeni, szybsze dyski. Jest proste i nie wymaga zmian w aplikacji, ale ma sufit i zwykle wiąże się z restartem. Skalowanie wszerz to dołożenie kolejnych maszyn. Nie ma sufitu, ale wymaga, żeby aplikacja była na to przygotowana - sesje i pliki użytkowników nie mogą leżeć na dysku jednego serwera.
Pytania przed podpisaniem umowy
- Czy zwiększenie pamięci lub liczby rdzeni wymaga migracji na inną maszynę, czy odbywa się w miejscu?
- Ile trwa taka zmiana i czy wiąże się z restartem?
- Czy można zejść z powrotem na niższy pakiet, czy zmiana jest jednokierunkowa?
- Czy dysk da się powiększyć bez przenoszenia danych?
- Jaki jest limit transferu i co dzieje się po jego przekroczeniu - dopłata czy ograniczenie prędkości?
- Jaki jest okres wypowiedzenia?
Limity, których nie przeskoczysz zasobami
Część problemów nie znika po dołożeniu pamięci. Pojedyncze wolne zapytanie do bazy, blokada na tabeli, aplikacja obsługująca żądania sekwencyjnie albo zewnętrzne API z własnym limitem - to wąskie gardła logiczne. Widzimy to regularnie: klient przechodzi na dwa razy większy serwer, a strona jest wolna tak samo, bo problemem był brak jednego indeksu w bazie.
Dlatego przed rozbudową sprawdzamy, co faktycznie jest wysycone. W połowie przypadków okazuje się, że mniejszy serwer wystarczy po poprawieniu konfiguracji.
Elastyczność organizacyjna
Techniczna możliwość zwiększenia zasobów jest bezużyteczna, jeżeli decyzja wymaga zgłoszenia, oferty i tygodnia oczekiwania. Przy planowanej kampanii warto z góry ustalić z dostawcą, jaki jest tryb szybkiego zwiększenia zasobów i kto po Twojej stronie ma prawo taką decyzję podjąć.