Usługi baz danych MySQL i PostgreSQL na platformie Azure

Ukończone

Jeśli masz funkcjonalną lokalną bazę danych, dlaczego warto rozważyć przeniesienie jej do usługi w chmurze, takiej jak platforma Azure? W podobny sposób warto rozważyć zaimplementowanie nowego systemu bazy danych na platformie Azure? Wiele organizacji przeprowadza tę migrację, ponieważ jest to łatwe i stosunkowo tanie tworzenie wysoce dostępnej i skalowalnej usługi w chmurze w porównaniu z użyciem lokalnego centrum danych.

W przypadku twojej firmy startowej bazy danych, które obecnie działają w lokalnych bazach Danych MySQL i PostgreSQL, mają krytyczne znaczenie, ale są ograniczone rozmiarem centrum danych i rozmiarem zespołu administracyjnego. Chcesz zbadać, czy możesz rozwiązać te ograniczenia przy użyciu usług platformy Azure, a jeśli tak, które usługi są najlepiej dopasowane do Twoich potrzeb.

W tym miejscu dowiesz się więcej na temat usług Azure Database for MySQL, Azure Database for MariaDB i Azure Database for PostgreSQL oraz opcji wdrażania, których można używać z nimi. Dowiesz się również o zaletach uruchamiania baz danych typu open source na maszynach wirtualnych lub kontenerach na platformie Azure oraz podejściu Infrastructure-as-a-Service (IaaS).

Dostępność

Dostępność gwarantowana przez umowy dotyczące poziomu usług (SLA) platformy Azure zależy od dokładnych szczegółów implementacji— ale zawsze są one wysokie. Na przykład w przypadku usługi Azure Database for PostgreSQL firma Microsoft gwarantuje dostępność na 99,99% bez dodatkowych kosztów. Aby uzyskać jeszcze większą dostępność, można użyć serwera elastycznego.

Jeśli chcesz uzyskać tę dostępność w sieci lokalnej, musisz utworzyć architekturę systemu odpornego na awarie sprzętowe. Potrzebne są następujące elementy:

  • Wiele serwerów fizycznych.
  • Moduł równoważenia obciążenia, który może przekierować zapytania, jeśli wystąpi awaria serwera.
  • Sieć magazynowania, która udostępnia dane między serwerami lub sposobem replikacji danych między serwerami.
  • Odporny sprzęt sieciowy.
  • Centrum danych kontrolowane przez środowisko.
  • Niepodważalne zasilacze i generatory kopii zapasowych.

Wszystkie te składniki są kosztowne i wymagają umiejętności implementowania i uruchamiania. Zużywałyby one również znaczne zasoby administracyjne. Na platformie Azure te wymagania zostały już rozwiązane; wystarczy utworzyć bazę danych, a wysoka dostępność jest wbudowana.

Skalowalność

Jeśli baza użytkowników rośnie, zapotrzebowanie na system rośnie wraz z nim. Każdy system lokalny ma maksymalną pojemność — jeśli zbliżasz się do tego limitu, musisz go zwiększyć, dodając więcej sprzętu. Nie można natychmiast dodać pojemności. Zamiast tego należy kupić sprzęt, zainstalować wymagany system operacyjny i oprogramowanie, zastosować aktualizacje, a następnie dodać dane do nowego wystąpienia bazy danych. Wszystkie te rzeczy zajmują trochę czasu.

Należy również pamiętać, że wysokie zapotrzebowanie jest często tymczasowe. Jeśli na przykład uruchomisz udaną kampanię marketingową, może zostać wyświetlony szczyt ruchu, a następnie powrót do niższego zapotrzebowania. W konfiguracji lokalnej należy zaprojektować system dla tych szczytów. Oznacza to, że system jest niedostatecznie wykorzystywany przez większość czasu, ale nadal uruchamia rachunki i wymaga konserwacji.

Te wyzwania są znacznie łatwiejsze do pokonania w chmurze. Jeśli system osiągnie swoją pojemność, możesz odpowiedzieć bardzo szybko — na przykład przechodząc do większej warstwy lub dodając maszyny wirtualne. Jeśli zapotrzebowanie spadnie, szybko zaoszczędzisz pieniądze, usuwając pojemność. Na platformie Azure płacisz tylko za używaną pojemność.

IaaS i PaaS

Podczas implementowania bazy danych na platformie Azure można wybrać co najmniej dwie metody, w zależności od wymaganego poziomu kontroli:

  • Infrastruktura jako usługa (IaaS). Jeśli wybierzesz podejście IaaS, platforma Azure uruchamia infrastrukturę fizyczną. Utworzysz maszyny wirtualne i sieci wirtualne, aby je połączyć, a następnie zainstalujesz niezbędne oprogramowanie i dane. Uruchamianie maszyny wirtualnej przypomina uruchamianie serwera fizycznego. Utrzymujesz system operacyjny i oprogramowanie, ale nie musisz martwić się o centrum danych, kontrolę środowiska lub połączenia z Internetem.
  • Platforma jako usługa (PaaS). Jeśli wybierzesz podejście PaaS, platforma Azure uruchamia infrastrukturę fizyczną, niezbędne serwery wirtualne i oprogramowanie bazy danych. Nie trzeba wykonywać zadań konfiguracji ani konserwacji tych składników. Na przykład platforma Azure automatycznie stosuje pakiety usług. Możesz skoncentrować się na administrowaniu bazą danych. Oferty PaaS do uruchamiania baz danych typu open source na platformie Azure obejmują usługi Azure Database for MySQL, Azure Database for MariaDB i Azure Database for PostgreSQL.

Jakie są usługi Azure Database for MySQL, MariaDB i PostgreSQL?

Jeśli masz lokalny system baz danych oparty na bazie danych MySQL, MariaDB lub PostgreSQL i chcesz przenieść bazę danych do chmury, rozważ użycie usługi Azure Database for MySQL, Azure Database for MariaDB lub Azure Database for PostgreSQL. Możesz również chcieć użyć tych usług do zaimplementowania nowych baz danych. Jeśli na przykład deweloperzy i administratorzy baz danych mają doświadczenie z tymi serwerami baz danych i nie chcesz, aby poświęcali czas na naukę nowego systemu, wówczas przy użyciu usługi Azure Database for MySQL, Azure Database for MariaDB lub Azure Database for PostgreSQL pracownicy mogą korzystać z istniejącej wiedzy. Usługi Azure Database for MySQL, Azure Database for MariaDB i Azure Database for PostgreSQL to systemy PaaS, więc nie musisz martwić się o tworzenie architektury lub implementowanie serwerów wirtualnych lub sieci.

Co to jest usługa Azure Database for MySQL?

Usługa Azure Database for MySQL to implementacja PaaS rozwiązania MySQL w chmurze platformy Azure oparta na wersji Community rozwiązania MySQL. Obecnie możesz wybrać wersję 5.6, 5.7 i 8.0 z obsługi programu MySQL w zależności od potrzeb. Obsługa dodatkowych wersji zostanie udostępniona w miarę rozwoju bazy danych MySQL.

Usługa Azure Database for MySQL zapewnia następujące funkcje:

  • Wbudowane funkcje wysokiej dostępności.
  • Przewidywalna wydajność.
  • Łatwe skalowanie, które szybko reaguje na zapotrzebowanie.
  • Zabezpieczenia danych, zarówno w spoczynku, jak i w ruchu.
  • Automatyczne kopie zapasowe oraz przywracanie do punktu w czasie dla ostatnich 35 dni.
  • Zabezpieczenia na poziomie przedsiębiorstwa i zgodność z przepisami prawnymi.

System korzysta z cennika płatności zgodnie z rzeczywistym użyciem, dzięki czemu płacisz tylko za to, czego używasz.

Możesz wybrać jedną z dwóch opcji wdrażania:

Azure Database for MySQL — serwer elastyczny

Usługa Azure Database for MySQL — serwer elastyczny zapewnia większą dostępność, replikując bazy danych do wielu stref dostępności. Umożliwia również szybkie uruchamianie i zatrzymywanie usługi bazy danych w celu zoptymalizowania kosztów.

Usługa Azure Database for MySQL zapewnia globalny system baz danych, który można skalować do dużych baz danych bez konieczności zarządzania sprzętem, składnikami sieci, serwerami wirtualnymi, poprawkami oprogramowania i innymi podstawowymi składnikami.

Co to jest usługa Azure Database for MariaDB?

MariaDB to rozwidlenie bazy danych MySQL utworzonej przez społeczność w odpowiedzi na przejęcie bazy danych MySQL przez oracle. Usługa Azure Database for MariaDB to implementacja PaaS bazy danych MariaDB w chmurze platformy Azure.

Baza danych MariaDB została zaprojektowana tak, aby można było zastąpić bazę danych MySQL bazą danych MariaDB bez obszernego ponownego odzyskiwania aplikacji klienckich lub zmian w schemacie bazy danych. Wiele funkcji bazy danych MariaDB jest takich samych jak w programie MySQL, na przykład:

  • Struktury i indeksy baz danych
  • Polecenia definicji danych
  • Protokoły, struktury i interfejsy API klienta
  • Programy mysqldump i mysqladmin

To podobieństwo między usługami MySQL i MariaDB oznacza, że zadania migracji programu MySQL do usługi Azure Database for MySQL są bardzo podobne dla bazy danych MariaDB do usługi Azure Database for MariaDB. Istnieją pewne różnice między systemami. Na przykład baza danych MariaDB obsługuje usługę ColumnStore i Pamięć podręczną Redis Cache, z których oba mogą służyć do optymalizacji wydajności.

Uwaga

Ponieważ migracja baz danych z baz danych MySQL i MariaDB na platformę Azure jest tak podobna, zostaną one omówione razem w tym kursie.

Ważne

W momencie pisania tekstu nie ma opcji wdrożenia serwera elastycznego dla usługi Azure Database for MariaDB.

Co to jest usługa Azure Database for PostgreSQL?

Jeśli wolisz postgreSQL, możesz wybrać usługę Azure Database for PostgreSQL, aby uzyskać implementację paaS tego serwera bazy danych w chmurze platformy Azure. Zapewnia to tę samą dostępność, wydajność, skalowanie, zabezpieczenia i korzyści administracyjne co usługa MySQL.

Możesz wybrać spośród trzech opcji wdrażania:

Serwery — Azure Database for PostgreSQL — serwer elastyczny

Usługa Azure Database for PostgreSQL — serwer elastyczny zapewnia podobne korzyści jak serwer elastyczny MySQL. Można go użyć do zapewnienia najwyższych poziomów dostępności i wygodnych ponownych uruchomień.

Opcje IaaS dotyczące uruchamiania programów MySQL, MariaDB i PostgreSQL na platformie Azure

Użyj podejścia IaaS, aby replikować architekturę fizyczną w chmurze. Możesz wybrać usługę IaaS, jeśli chcesz zachować większą kontrolę nad systemami operacyjnymi i oprogramowaniem, które podtrzymuje system.

Istnieje jednak kilka metod wdrażania podejścia IaaS, w zależności od wymagań i złożoności istniejących systemów.

Migracja metodą „lift-and-shift”

Jednym z podejść jest dublowanie architektury lokalnej w chmurze przez utworzenie infrastruktury sieci wirtualnej zgodnej z centrum danych — tworzysz maszynę wirtualną dla każdego serwera w systemie lokalnym. Instalujesz i konfigurujesz oprogramowanie systemu zarządzania bazami danych (MySQL, MariaDB lub PostgreSQL) na maszynach wirtualnych. Następnie przenosisz system do chmury z niewielkimi zmianami w kodzie lub konfiguracji klienta.

W przypadku tej strategii należy wykonać proces krok po kroku migracji. Części systemu są przenoszone przyrostowo do chmury przy zachowaniu innych elementów lokalnych przy użyciu bramy sieci platformy Azure. Użyj tego hybrydowego podejścia, aby ustabilizować system na każdym kroku i w razie potrzeby wycofać się.

Korzystanie ze wstępnie utworzonych maszyn wirtualnych

Platforma handlowa obejmuje wstępnie skonfigurowane maszyny wirtualne dla serwerów MySQL, MariaDB i PostgreSQL. Te obrazy oszczędzają czas, ponieważ nie trzeba samodzielnie instalować oprogramowania serwera bazy danych. Podczas konfigurowania maszyn wirtualnych bazy danych sprawdź, czy w witrynie Marketplace znajduje się obraz z odpowiednią wersją oprogramowania bazy danych i rozważ użycie go.

Możesz również przekazać niestandardowy obraz maszyny wirtualnej na platformę Azure i użyć go do utworzenia maszyn wirtualnych. Ten obraz może zawierać wybrane oprogramowanie bazy danych, a nawet samą bazę danych. Aby uzyskać więcej informacji, zobacz Samouczek: tworzenie niestandardowego obrazu maszyny wirtualnej platformy Azure przy użyciu programu Azure PowerShell.

Używanie kontenerów MySQL, MariaDB lub PostgreSQL

Inną technologią wirtualizacji, którą można rozważyć, jest konteneryzacja. Kontener jest jak maszyna wirtualna, ale udostępnia system operacyjny komputerowi hosta. Kontenery są mniejsze niż maszyny wirtualne, dzięki czemu można uruchomić więcej z nich na komputerze hosta i szybciej uruchomić nowe. Nie można jednak uruchomić kontenera systemu Linux na maszynie z systemem Windows, na przykład dlatego, że system operacyjny jest współużytkowany. Do uruchamiania kontenerów na serwerze fizycznym potrzebne jest oprogramowanie hosta kontenerów, takie jak Docker. Kontenery są wdrażane z obrazów i, takie jak maszyny wirtualne, mogą zawierać oprogramowanie bazy danych, takie jak MySQL, MariaDB i PostgreSQL.

Jeśli chcesz uruchomić niewielką liczbę kontenerów na platformie Azure, zainstaluj platformę Docker na maszynie wirtualnej. Alternatywnie, jeśli używasz usługi Container Instances, możesz uruchamiać kontenery na platformie Azure bez konfigurowania własnych maszyn wirtualnych. Jeśli chcesz łatwo zarządzać dużą liczbą kontenerów, które muszą komunikować się ze sobą, użyj usługi Azure Kubernetes Service.