Rozważ najlepsze rozwiązania dotyczące tworzenia aplikacji
W tej lekcji zapoznasz się z najlepszymi rozwiązaniami, które należy zastosować podczas tworzenia aplikacji za pomocą usługi Azure Database for MySQL — serwer elastyczny, który może pomóc w zapewnieniu lepszej wydajności, odporności i zabezpieczeń. Te najlepsze rozwiązania obejmują:
- Kolokowanie zasobów.
- Implementowanie buforowania połączeń.
- Wybieranie odpowiedniego rozmiaru kontenera aplikacji.
- Implementowanie izolacji sieci i łączności SSL.
- Implementowanie logiki ponawiania prób w celu zarządzania błędami przejściowymi.
- Wybieranie odpowiedniego rozmiaru zasobów obliczeniowych i magazynu dla bazy danych.
Te najlepsze rozwiązania są dostępne w różnych punktach procesu tworzenia aplikacji za pomocą usługi Azure Database for MySQL — serwer elastyczny, jak pokazano na poniższym diagramie.
Uwaga
Ta lista najlepszych rozwiązań nie jest wyczerpująca. Zapoznaj się z dokumentacją usługi Azure Database for MySQL, aby uzyskać szczegółowe przewodniki dotyczące wdrażania najlepszych rozwiązań związanych z siecią, zabezpieczeniami, monitorowaniem, optymalizacją wydajności, ciągłością działania i odzyskiwaniem po awarii itp.
Kolokuj zasoby
Podczas wdrażania aplikacji na platformie Azure upewnij się, że wszystkie zależności zasobów są hostowane w tym samym regionie. Rozłożenie wystąpień zasobów w różnych regionach lub strefach dostępności może spowodować opóźnienie sieci, co może mieć wpływ na ogólną wydajność aplikacji.
Implementowanie buforowania połączeń
Zarządzanie połączeniami bazy danych w aplikacji może znacząco wpłynąć na ogólną wydajność aplikacji. Aby zwiększyć wydajność i odporność aplikacji, rozważ zaimplementowanie buforowania połączeń w celu nawiązania połączenia z serwerem elastycznym MySQL. Moduł puli połączeń (na przykład ProxySQL) może zmniejszyć liczbę bezczynnych połączeń i ponownie użyć istniejących połączeń.
Napiwek
Aby zoptymalizować wydajność, w kluczowych ścieżkach kodu zmniejsz liczbę nawiązań połączeń i czas potrzebny na nawiązanie tych połączeń.
Wybieranie odpowiedniego rozmiaru kontenera aplikacji
Ponieważ wybranie odpowiedniego rozmiaru kontenera aplikacji jest niezbędne, upewnij się, że aplikacja ma wystarczającą ilość zasobów obliczeniowych i pamięci do obsługi oczekiwanych obciążeń. Możesz użyć narzędzi, takich jak JMeter, aby ułatwić testowanie obciążenia, co może pomóc w prawidłowym rozmiarze zasobów na podstawie wyników.
Implementowanie izolacji sieci i łączności SSL
Usługa Azure Database for MySQL — serwer elastyczny z integracją z siecią wirtualną (metoda łączności z dostępem prywatnym) oferuje zabezpieczenia i izolację sieci. Integracja z siecią wirtualną umożliwia zablokowanie dostępu do serwera tylko do infrastruktury sieci wirtualnej. Prywatne punkty końcowe zwiększają bezpieczeństwo, umożliwiając bezpieczne łączenie się z serwerem elastycznym za pośrednictwem sieci prywatnej, co pozwala uniknąć narażenia na publiczny Internet. Zasoby aplikacji i bazy danych można zabezpieczyć w jednej sieci wirtualnej lub w różnych sieciach wirtualnych w tych samych lub różnych regionach (i bezproblemowo połączyć się z komunikacją równorzędną sieci wirtualnych).
Zaleca się również zabezpieczenie przesyłanych danych przez zapewnienie, że aplikacja łączy się z elastycznym serwerem MySQL przy użyciu protokołu SSL (Secure Sockets Layer).
Implementowanie logiki ponawiania prób w celu zarządzania błędami przejściowymi
Ponieważ środowiska w chmurze są bardziej narażone na przejściowe błędy, takie jak przerwy w łączności sieciowej lub przekroczenia limitu czasu usługi, należy upewnić się, że aplikacje implementują logikę, aby poradzić sobie z tymi problemami, zazwyczaj ponawiając próby żądań po opóźnieniu.
Dobrym rozwiązaniem jest oczekiwanie na pięć sekund przed pierwszą ponowną próbą. Następnie, przy każdej kolejnej ponawianiu, zwiększ czas oczekiwania stopniowo, do 60 sekund. Po stałej liczbie ponownych prób aplikacja może rozważyć niepowodzenie operacji i powiadomić Cię o tym, aby można było dokładniej zbadać trwały błąd.
Wybieranie odpowiedniego rozmiaru zasobów obliczeniowych i magazynu dla bazy danych
Ważne jest, aby prawidłowo analizować obciążenie i ustawiać rozmiar wystąpień serwera elastycznego MySQL, aby osiągnąć akceptowalną równowagę między wydajnością i kosztami aplikacji.
Compute
Serwer elastyczny MySQL można utworzyć w jednej z trzech warstw obliczeniowych: z możliwością rozszerzenia, ogólnego przeznaczenia i Krytyczne dla działania firmy. Jako punkt wyjścia do wybierania warstwy obliczeniowej należy wziąć pod uwagę szczegóły w poniższej tabeli.
Warstwa zasobów obliczeniowych | Docelowe obciążenia |
---|---|
Z możliwością zwielokrotnienia wydajności | Najlepsze w przypadku obciążeń, które nie potrzebują pełnego procesora CPU w sposób ciągły. Ekonomiczne rozwiązanie dla mniejszych aplikacji internetowych i obciążeń programistycznych. |
Ogólnego przeznaczenia | Najlepsze w przypadku większości obciążeń biznesowych, które wymagają zrównoważonych zasobów obliczeniowych i pamięci ze skalowalną przepływnością operacji we/wy. Przykłady obejmują serwery do hostowania aplikacji internetowych i mobilnych oraz innych aplikacji dla przedsiębiorstw. |
Krytyczne dla działania firmy | Najlepsze w przypadku obciążeń bazy danych o wysokiej wydajności, które wymagają wydajności w pamięci w celu szybszego przetwarzania transakcji i większej współbieżności. Są to na przykład serwery przetwarzające dane w czasie rzeczywistym oraz wysokowydajne aplikacje transakcyjne i analityczne. |
Rozmiar elastycznych serwerów MySQL można również zmienić po utworzeniu, ale można skalować tylko w górę lub w dół między warstwami Ogólnego przeznaczenia lub Krytyczne dla działania firmy.
Storage
Jeśli chodzi o magazyn, można skalować w górę, gdy zbliżasz się do limitów pojemności magazynu. Możesz również włączyć funkcję automatycznego zwiększania rozmiaru magazynu, aby upewnić się, że usługa automatycznie skaluje magazyn w miarę zbliżania się do limitów magazynu.
Aby podejmować świadome decyzje dotyczące zasobów obliczeniowych i magazynu w odpowiednim czasie, monitoruj kluczowe metryki usługi Azure Monitor, takie jak procent procesora HOSTA, procent pamięci hosta, procent operacji we/wy, aktywne połączenia itp. stale lub konfiguruj alerty w celu powiadamiania użytkownika, gdy rozwiązanie zbliża się do limitów wdrożenia.
Dostosowywanie liczby operacji we/wy na sekundę w celu uzyskania optymalnej wydajności
Znaczące ulepszenie dostępne w usłudze Azure Database for MySQL — serwer elastyczny to funkcja operacji we/wy na sekundę (operacje wejściowe/wyjściowe na sekundę), która uzupełnia istniejącą wstępnie aprowizowaną funkcję operacji we/wy na sekundę. W tej sekcji opisano, w jaki sposób można użyć wstępnie aprowizowania operacji we/wy na sekundę i opcji we/wy skalowania automatycznego w celu zoptymalizowania wydajności bazy danych w oparciu o różne wymagania dotyczące obciążenia.
Wstępna aprowizacja operacji we/wy na sekundę
Można przydzielić określoną liczbę operacji we/wy na sekundę do wystąpienia bazy danych przy użyciu wstępnie aprowizowanej liczby operacji we/wy na sekundę. Ta funkcja ma kluczowe znaczenie dla obciążeń wymagających spójnej i przewidywalnej wydajności. Ustawiając zdefiniowany limit liczby operacji we/wy na sekundę, możesz upewnić się, że baza danych może obsługiwać zestaw żądań na sekundę, zapewniając stabilną i niezawodną wydajność. Masz również elastyczność dostosowywania liczby aprowizowania liczby operacji we/wy na sekundę w miarę zmian obciążenia, co pozwala na skalowalność i dokładną kontrolę nad wydajnością bazy danych.
Automatyczne skalowanie operacji we/wy na sekundę
Automatyczne skalowanie operacji we/wy na sekundę zapewnia dynamiczne skalowanie wydajności, co jest niezbędną funkcją do efektywnego zarządzania zmiennymi obciążeniami. Po włączeniu tej funkcji serwer bazy danych automatycznie dostosowuje operacje we/wy na sekundę na podstawie zapotrzebowania w czasie rzeczywistym bez konieczności wstępnej aprowizacji. Ta elastyczność jest szczególnie korzystna dla aplikacji warstwy 1, które mogą mieć zmienną wydajność.
Najważniejsze korzyści wynikające z używania funkcji IOPS autoskalowania obejmują:
Skalowanie dynamiczne: funkcja automatycznego skalowania operacji we/wy na sekundę automatycznie dostosowuje limity liczby operacji we/wy na sekundę na podstawie rzeczywistego zapotrzebowania na obciążenie. Ta dynamiczna korekta pomaga zapewnić spójne działanie bazy danych na optymalnych poziomach wydajności bez interwencji ręcznej.
Obsługa skoków obciążenia: ta funkcja umożliwia bazie danych bezproblemowe obsługę nagłego wzrostu obciążenia, zapewniając, że wydajność aplikacji pozostaje spójna w okresach szczytowych. Ta możliwość ma kluczowe znaczenie dla utrzymania dostępności usług i zadowolenia użytkowników.
Efektywność kosztowa: w przeciwieństwie do wstępnie aprowizowania operacji we/wy, gdy płacisz za określony limit niezależnie od rzeczywistego użycia, operacje we/wy autoskalowania zapewniają, że płacisz tylko za operacje we/wy. Może to spowodować znaczne oszczędności kosztów, szczególnie w przypadku baz danych ze zmiennymi potrzebami we/wy.
Uproszczone zarządzanie: zmniejszając potrzebę ręcznego skalowania i planowania pojemności, operacje we/wy skalowania automatycznego zwalniają zasoby administracyjne, co pozwala zespołowi skupić się na bardziej strategicznych inicjatywach, a nie rutynowej konserwacji.