W przypadku każdego rodzaju skalowania weź pod uwagę architekturę aplikacji i możliwe optymalizacje. Na przykład treści statyczne powinny być wyświetlane ze zoptymalizowanych sieci dostarczania treści, które oferują korzyści w zakresie ceny i skuteczności. Dodatkowe buforowanie backendu może też poprawić wydajność i zminimalizować wymagania związane z kosztownym skalowaniem.
Testowanie wydajności i analizy porównawcze
Analizy porównawcze i testy wydajności mogą wykrywać potencjalne słabe punkty wydajności na etapie programowania, pomagać śledzić trendy na przestrzeni czasu i ułatwiać podejmowanie decyzji przez porównywanie architektur, stosów technologicznych, dostawców usług w chmurze i innych opcji.
Testowanie obciążenia używa wstępnie określonych, kontrolowanych typów obciążenia, ruchu lub danych do pomiaru wydajności backendu względem wartości docelowych. Możesz sprawdzić, jak różne poziomy obciążenia wpływają na wydajność aplikacji.
Testowanie skalowalności koncentruje się na analizie możliwości aplikacji skalowania w górę i w poziomie. Testy skalowalności pokazują, jak aplikacja reaguje na zwiększone obciążenia i jak backend (w tym miejsce na dane) dostosowuje się.
Przed rozpoczęciem testów porównawczych określ jasne cele, w tym wydajność i szybkość (np. czas oczekiwania, przepustowość, szybkość), wykorzystanie zasobów (wykorzystanie procesora, pamięci, ruch w sieci między komponentami backendu) oraz koszty. Weź pod uwagę wszelkie opóźnienia w skalowaniu, na przykład jeśli aplikacja musi skalować się poza przydzielony zbiór zasobów „zarezerwowanych” w przypadku wystąpienia gwałtownych skoków natężenia ruchu.
Dostępnych jest wiele narzędzi do testów porównawczych i testów wydajności, np. Apache JMeter i Locust. Wybierając narzędzie do testowania, weź pod uwagę typy dostępnych testów i informacje o tym, czy potrzebujesz obsługi skryptów, integracji z IDE do debugowania, dodatkowych wtyczek czy obsługi rodzaju ruchu i skali do przetestowania.
Jeśli korzystasz z usług dostawcy chmury, sprawdź, czy są jakieś dodatkowe wymagania lub sprawdzone metody dotyczące testowania obciążenia, aby uniknąć potencjalnych ograniczeń. Rozważmy na przykład sprawdzone metody dotyczące Cloud Run.
Kwestie związane z kosztami i wydajnością
Chociaż skalowanie w górę jest niezbędne do poprawy wydajności, warto rozważyć także skalowanie w dół, aby zminimalizować koszty. Przeanalizuj podstawowy koszt aplikacji backendu bez żadnych żądań oraz koszt skalowania aplikacji w górę.
Niezależnie od wykorzystania mogą występować stałe koszty architektur lokalnych lub opartych na serwerze. Niektóre środowiska chmury umożliwiają „skalowanie do zera”, co pozwala uniknąć kosztów, gdy nie są wysyłane żadne żądania. Dostawcy usług w chmurze udostępniają kalkulatory, które pozwalają badać różne konfiguracje i strategie cenowe, takie jak wstępne zobowiązania dotyczące zasobów.