MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Wydajność jazdy w konfiguracji chmury hybrydowej

Chmura hybrydowa odnosi się do mieszanego środowiska przetwarzania, przechowywania i usług, składającego się z infrastruktury lokalnej, usług chmury prywatnej i organizacji chmury publicznej między różnymi platformami. Korzystanie z kombinacji chmur publicznych, lokalnych obliczeń i chmur prywatnych w centrum danych oznacza, że ​​dysponujesz hybrydową infrastrukturą chmury.

Wydajność zwykle ma niższy priorytet w chmurze hybrydowej, ponieważ infrastruktura chmury hybrydowej skupia się zwykle na odzyskiwaniu po awarii, dostępności i skalowalności. W tym poście na blogu omówimy kilka ogólnych wskazówek dotyczących zwiększania wydajności naszych aplikacji, obciążeń i klastrów działających w konfiguracji chmury hybrydowej.

Dedykowane hosty/instancje/zasoby

Koszt usług w chmurze jest uważany za niższy ze względu na szerokie współdzielenie zasobów. Jednak wyższy stopień udostępniania automatycznie oznaczałby mniej gwarancji wydajności.

Instancje w chmurze są podatne na nieprzewidywalną stabilność, ale przy pewnych dodatkowych kosztach możemy zmniejszyć to ryzyko dzięki dedykowanym zasobom. Dedykowane instancje to instancje działające na sprzęcie dedykowanym dla jednej dzierżawy. Zazwyczaj dedykowane hosty lub wystąpienia są fizycznie izolowane na poziomie sprzętu hosta od wystąpień należących do innych dzierżawców. Zagwarantuje to serwisowi odpowiednie zasoby i praktycznie ustabilizuje wydajność Twoich obciążeń w dłuższej perspektywie. W zależności od budżetu masz wiele opcji, aby wybrać dedykowane zasoby, takie jak dedykowane hosty, instancje lub przepustowość.

Jest też wiele ofert i zniżek, jeśli planujesz uruchamiać instancje przez dłuższy czas. Na przykład, angażując się w AWS EC2 Reserve Instance, użytkownicy mogą zaoszczędzić do 70% kosztów instancji w porównaniu ze standardowymi kosztami na żądanie. Po przetestowaniu aplikacji lub obciążeń i przygotowaniu ich do produkcji zdecydowanie zaleca się zawarcie umowy długoterminowej, pod warunkiem przydzielenia wystarczającej ilości zasobów do instancji na dany okres umowy.

Zarządzanie przepustowością

Przepustowość jest droga. Kosztowna jest infrastruktura do przenoszenia pasma z jednego miejsca do drugiego. Sprzęt do układania światłowodów, sprzęt do routingu klasy operatorskiej i dostawcy, koszty ogólne monitorowania i konserwacji, aby wszystko działało, wynajem pakietu centrum danych, personel całodobowego inżyniera Centrum Operacji Sieciowych (NOC) – wszystko to przyczynia się do wysokiej ceny niezawodna przepustowość. Nie wspominając o tempie technologii, wymaganiach użytkowników i żywotności produktów dostawców często wymagają wyrzucenia dużej części powyższych inwestycji i cyklu życia co 7 do 10 lat, w niektórych przypadkach 5 lat.

Większość usług chmury publicznej umożliwia wymianę danych z innymi dostawcami usług w chmurze (CSP), co można osiągnąć na wiele sposobów:

  • Przesyłanie danych przez publiczne adresy IP w Internecie.

  • Korzystanie z zarządzanej usługi VPN między siecią lokalną a siecią CSP.

  • Połącz się bezpośrednio z sieci lokalnej lub sieci w chmurze prywatnej z innym dostawcą CSP, takim jak Partner Interconnect dla Google Cloud lub AWS Direct Connect dla AWS.

  • Prześlij dane do innego dostawcy usług internetowych przez wspólny punkt obecności (POP).

  • Pierwszy kontakt sieciowy z sieciami chmury prywatnej i siecią CSP.

Te opcje różnią się szybkością transferu, opóźnieniami, niezawodnością, umowami o poziomie usług (SLA), złożonością i kosztami. Niezależnie od opcji, idea jest taka sama — im mniejszy transfer danych, tym niższe koszty.

Najważniejszą rzeczą, którą powinniśmy zrobić, jest kompresja, aby zmniejszyć zużycie przepustowości. Większość usług replikacji obsługuje teraz kompresję połączeń, co może znacznie zmniejszyć rozmiar transferu danych między wieloma lokacjami. Na przykład włączenie kompresji połączenia dla MySQL master-slave może łatwo zmniejszyć wykorzystanie przepustowości do 1,5 raza, bez dodatkowej konfiguracji na poziomie kompresji lub algorytmie. Nazywa się to techniką bezstratnej kompresji danych. Możesz ustawić jeszcze wyższy współczynnik kompresji, z kompromisem mocy obliczeniowej dla kompresji i dekompresji na obu punktach końcowych.

Rozmieszczenie obciążenia jest również ważne. Dzięki konfiguracji chmury hybrydowej aplikacje i obciążenia mogą istnieć zarówno w chmurach prywatnych, jak i publicznych. W przypadku aplikacji wewnętrznych znacznie lepiej jest umieścić je w chmurze prywatnej bliżej lokalnego środowiska z mniejszymi opóźnieniami sieci. Aby poprawić wydajność aplikacji publicznych, umieść aplikacje na serwerach brzegowych Content Delivery Network (CDN), co znacznie zmniejszy obciążenie serwera głównego tylko do obsługi żądań dynamicznych i odciąży dostarczanie statycznej treści do wielu serwerów brzegowych, które geograficznie są bliższe użytkownikom końcowym.

Szybsze szyfrowanie

Szyfrowanie podczas przesyłania i w spoczynku jest obowiązkowe w konfiguracji chmury hybrydowej, ponieważ jesteśmy właścicielami tylko części infrastruktury. Nie chcemy, aby wścibskie oczy patrzyły na nasze dane podczas przesyłania, nie chcemy ryzyka naruszenia danych przez kradzież lub osób postronnych, które mają fizyczny dostęp do naszych danych. Mówiąc prościej, każda część przenoszonych danych lub danych niedostępnych fizycznie musi być zaszyfrowana, kropka. Jednak niektóre szyfry szyfrowania mogą zmniejszać szybkość i wydajność obciążeń.

Powszechnym błędem jest założenie, że wiadomość zaszyfrowana przy użyciu AES256 jest trudniejsza do złamania niż te same informacje chronione przy użyciu AES128. To logiczne, że większy rozmiar klucza wprowadza większą złożoność, ale podobnie jak w przypadku innych systemów, implementacje są obarczone słabymi punktami. Zakładając, że mówimy o AES128 w porównaniu z AES256, istnieje znana słabość funkcji rozszerzania klawiszy, która wpływa na AES256. Zasadniczo słabość zmniejsza złożoność AES256 do niższej niż AES128.

Niektóre z narzędzi do tunelowania, takie jak WireGuard, są dobrze znane z szybszego szyfrowania i są dość proste w implementacji podczas tunelowania między wieloma witrynami. Działa podobnie do szyfrowania SSH, przy użyciu asymetrycznego podejścia kryptograficznego. Według tych badań WireGuard jest średnio o 58% szybszy niż OpenVPN we wszystkich testowanych lokalizacjach. Szybsze szyfrowanie oznacza mniej czasu na szyfrowanie i odszyfrowywanie danych, co pozwala znacznie zwiększyć wydajność wymiany danych.

Jeśli zastanawiasz się, jak skonfigurować WireGuard VPN dla środowiska chmury hybrydowej, zapoznaj się z tym wpisem na blogu, Wdrażanie w wielu chmurach dla replikacji MariaDB przy użyciu WireGuard.

Monitoruj wszystko

Środowiska oparte na chmurze opierają się na skomplikowanym zestawie zasobów, a identyfikacja problemów z dostępnością i wydajnością, które najbardziej wpływają na usługi biznesowe, jest wyzwaniem. Zespół operacyjny musi być w stanie całościowo monitorować stan aplikacji, w tym towarzyszące jej komponenty infrastruktury chmury.

Poprawa wydajności w chmurze hybrydowej nie może nastąpić bez ciągłego wglądu we wszystkie zasoby. Zasoby, takie jak wykorzystanie instancji i sieci, wydajność aplikacji, wrażenia użytkownika, opóźnienia i pliki dziennika, są bardzo ważne, aby były gromadzone i próbkowane, aby zapewnić, że możemy proaktywnie rozwiązywać problemy z wydajnością i dostępnością, zanim dotrą one do użytkowników końcowych lub ulegną pogorszeniu. Niewłaściwa alokacja zasobów zawsze będzie miała miejsce w złym środowisku zaopatrzenia, co ostatecznie prowadzi do złego planowania wydajności oraz marnowania pieniędzy i zasobów.

Większość dostawców chmury publicznej oferuje usługi dogłębnego monitorowania, obejmujące wiele warstw i komponentów subskrybowanych usług w chmurze. Brakującym elementem jest jednak zwykle ujednolicenie monitorowania między różnymi platformami chmurowymi, dostawcami i środowiskami. Kompleksowe narzędzia do monitorowania typu open source, takie jak Icinga, Nagios Core i Zabbix, można skonfigurować tak, aby monitorować prawie wszystko, co jest związane z chmurą hybrydową, w szczególności instancje, sieci, usługi i aplikacje w chmurze.

W przypadku monitorowania wydajności serwerów baz danych w środowisku chmury hybrydowej pomocne mogą być następujące zasoby:

  • Monitorowanie wydajności MariaDB w chmurze hybrydowej

  • Monitorowanie PostgreSQL w środowisku hybrydowym


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najlepsze praktyki w skalowaniu baz danych:część druga

  2. Porównanie ofert chmury klastrowej Galera:część trzecia Microsoft Azure

  3. Różnica między INSTR() a LOCATE() w MariaDB

  4. MariaDB 10.6 i NextCloud:COMPRESSED Row jest domyślnie tylko do odczytu

  5. Jak działa IFNULL() w MariaDB