Relacyjne bazy danych w Azure

15 stycznia 2021 | Rozwiązania

Myślę, że gdybym kilka lat temu powiedział któremukolwiek z dyrektorów IT w banku lub podobnej rangi instytucji, że niedługo wszystkie jego dane (personalne oraz firmowe) będą w bliżej nieokreślonym miejscu w Europie i ponadto nie będzie miał dostępu do serwera, na którym się one znajdują, to zdecydowanie roześmiałby mi się w twarz.

Dziś taki scenariusz już nikogo nie rozśmieszy. Nie pytamy już, czy przejść do cloud-a, pytamy, kiedy to zrobimy i w jak dużym stopniu. Powodów takiej zmiany jest wiele. Między innymi ogrom rozwiązań chmurowych, możliwość szybkiej reakcji na nagłe zmiany czy minimalizacji dużych nakładów inwestycyjnych potrzebnych np. przy zakupie sprzętu do serwerowni.

Azure

Źródło: https://www.uihere.com/

W chmurze możemy przechowywać dane, utrzymywać aplikacje, tworzyć nowe rozwiązania czy analizować otrzymane raporty. Moim skromnym zdaniem najistotniejszym elementem każdego systemu informatycznego są dane. Niezależnie od zastosowania czy wielkości rozwiązania dane są kluczem do prawidłowej pracy. Dane możemy tworzyć, odbierać od użytkowników, analizować czy transformować. Wszystkie te operacje mają wspólną zmienną, z jakiegoś miejsca te dane muszą odczytać lub do jakiegoś miejsca dane te muszą zapisać. Możemy znaleźć mnóstwo takich miejsc. Od zwykłych systemów operacyjnych przez relacyjne i nierelacyjne bazy danych aż po rozwiązania big date-owe.

W tym artykule chciałbym skupić się na dostępnych rozwiązaniach związanych z bazami relacyjnymi na platformie #Azure.

Bazy w formule IaaS- czyli trochę po staremu.

Każdy zaczynając zabawę z chmurą, pozna na wejściu trzy skróty IaaS, PaaS, SaaS. Zacznijmy od formuły Infrastructure As A Service(IaaS) jako IaaS w zagadnieniu baz relacyjnych, interpretujemy dowolny silnik bazy danych zainstalowany na maszynie wirtualnej egzystującej w chmurze. Jest to wariant bardzo zbliżony z sytuacją znaną ze świata On-Premis (lokalnej serwerowni). Sami zarządzamy maszyną wirtualną, systemem operacyjnym czy aktualizacjami wersji bazy danych. Wszystkie plusy pełnego dostępu do bazy jak dowolność instalacji rozszerzeń, zarządzanie wszystkimi ustawieniami bazy czy dostęp do filesystemu są dla nas dostępne. W tym momencie spada na nas także pełna odpowiedzialność za poprawne funkcjonowanie bazy. My musimy zająć się backupowaniem, naprawą źle zainstalowanych aktualizacji czy w końcu my odpowiadamy za bezpieczeństwo systemu operacyjnego. Klasyczny przykład stwierdzenia „coś za coś” możemy robić to, co u siebie w serwerowni, ale ponosząc podobne ryzyka. Co w takim razie daje nam tam mityczna chmura? Tylko maszynę wirtualną? Chmura daje nam możliwość szybkiego dostosowania osiągów maszyny do naszych potrzeb.

Łatwy przykład. Za dwa dni na naszej stronie odbędzie się super promocja i spodziewamy się diametralnie zwiększonego ruchu. Dobrze nie ma problemu, zwiększymy możliwości maszyny 4 krotnie w ciągu kilku sekund, a gdy skok klientów minie i tak mocna maszyna już nie będzie nam potrzebna zmniejszmy ją do tańszej pierwotnej wersji! To właśnie elastyczność chmury i jej „nieograniczone zasoby” są tutaj bardzo ważne.

Dodatkowo zgodnie z oficjalnymi źródłami Microsoftu, jeśli migracja SQL Servera to tylko na #Azure 🙂

AWS is five times more expensive than Azure for Windows Server and SQL Server

Źródło

Podsumowując plusy IaaS:

  • Korzystamy z elastyczności chmury na poziomie hosta (maszyny wirtualnej)
  • Możliwość odwzorowania środowiska On-Premis
  • Dostęp do systemu operacyjnego
  • W pełni zarządzamy bazą
  • Pełna dowolność np. możemy użyć chmury Microsoftu do hostowania bazy Oracle DB

Minusy IaaS:

  • Odpowiadamy za wszystkie aktualizacje
  • Narzut administracyjny porównywalny z lokalnym środowiskiem
  • Odpowiadamy za bezpieczeństwo systemu operacyjnego
  • Jesteśmy zmuszeni sami zadbać o backupy oraz replikacje danych

Czym są DBaaS/PaaS- czyli jak zmniejszyć problemy małym kosztem?

Na wstępie rozszyfrujmy skrót PaaS czyli Platform as a service, jest to grupa usług udostępnianych przez usługodawców chmurowych. Usługi te pozwalają na zmniejszenie nakładu administracyjnego, zmniejszą też naszą odpowiedzialność, jeśli chodzi o administrowanie bezpieczeństwem. W formule PaaS zupełnie nie musimy martwić się o system operacyjny, z którego korzysta nasza usługa. Dodatkowo formuła PaaS zazwyczaj dostarczana jest z bardzo przyjaznym interfejsem do zarządzania usługą, przyspiesza to znacząco próg wejścia użytkownika.

Szczególnym przypadkiem formuły PaaS, na którym chciałbym się skupić jest DBaaS (Database as a service), w dużym skrócie możliwość wykupienia usługi polegającej na dostępie do bazy danych o określonych zasobach (CPU, RAM, przestrzeń dyskowa itd.) bez potrzeby większej administracji. Dostępne są zarówno znane z on-premis bazy klasy enterprise (np. specjalna wersja SQL Server czy PostgreSQL), jak i zupełnie nowe rozwiązania (Cosmos DB).

Zależnie od wybranej bazy danych usługodawcy chmurowi zapewniają nam różne sposoby rozliczania kosztów takiej usługi. Zaczynając od płatności za zużycie sekundowe zgodnie z mocą obliczeniowa (CPU, RAM), przez płatność za zapytanie aż po płatności z zobowiązaniem miesięcznym (wykup konkretnych możliwości obliczeniowych).

Znajome twarze w nowej odsłonie.

Microsoft jak możemy się spodziewać, daje nam możliwość skorzystania ze swojego narzędzia firmowego, jakim jest SQL Server, w formule PaaS znany jako Azure SQL Database oraz jako Managed Instance. Czym różnią się te dwa rozwiązania? Managed Instance jest bliższy dodatkami oraz możliwościami do Microsoft SQL Servera wymaga też niestety większego wkładu administracyjnego. Azure SQL Database jest rozwiązaniem idealnym, jeśli chcemy posiadać bazę klasy enterprise w formule PaaS, ale nie zależy nam na migracji jeden do jeden względem „naszej serwerowni”.

Okej, ale nie tylko SQL Serverem człowiek żyje. Co z całą resztą baz?

 

Replikacja_HVR

Źródło: https://www.uihere.com/

W Microsoft Azure istnieje możliwość stworzenia usługi bazodanowej na kilku największych open-sourcowych platformach:

  • PostgreSQL
  • MySQL
  • MariaDB

Osobiście moim faworytem jest PostgreSQL. Baza ta na Azure występuje w dwóch głównych odsłonach pojedynczego serwera oraz wersji Hyperscale. Wersja pojedynczego serwera jak nazwa wskazuje, oznacza pojedyncze wystąpienie bazy PostgreSQL w wersjach od 9.5 do 11, musimy skonfigurować podzespoły i po kilku chwilach mamy swojego łatwo skalowalnego Postgresa w chmurze. Drugą opcją jest usługa Hyperscale (Citus), polega ona na rozproszeniu bazy danych na węzły robocze i koordynujące. Dzięki takiemu podejściu do baz relacyjnych zapytania mogą być równolegle wykonywane na kilku bazach, wykorzystując całą dostępną moc obliczeniową.

Charakterystyka baz w PaaS

Bazy w PaaS mają jedną ciekawą wspólną cechę usługodawca odbiera nam kilka możliwości takich jak np. instalowanie własnych dodatków (istnieje pula dostępnych rozszerzeń wybranych przez usługodawce) czy pełny wgląd w ustawienia bazy. Jednak w PaaS Microsoft upraszcza nam wiele rzeczy. Nie myślimy już o tym, jakie dyski podpiąć do maszyny, gdy miejsce zaczyna się kończyć czy o tym, jak zachować się, gdy maszyna osiąga granice swoich możliwości obliczeniowych, po prostu przesuwamy suwakiem w prawo zwiększając ilość zasobów i pyk magicznie działa :). Dodatkowo to Microsoft udostępnia nam możliwości łatwego backupowania oraz replikacji bazy, zapewnia nam też możliwości disaster recovery. Od usługodawcy dostajemy też narzędzia do monitoringu pracy bazy oraz wiele innych ciekawych funkcjonalności.

Podsumowując plusy PaaS:

  • Korzystamy z elastyczności chmury (bezpośrednio na poziomie usługi)
  • Łatwy proces skalowania zasobów
  • Zmniejszenie narzutu administracyjnego nad bazą i hostem
  • Zmniejszenie odpowiedzialności za bezpieczeństwo
  • Rozwiązania do backupu i replikacji out of the box
  • Bardzo przyjemne zarządzanie kosztami

Minusy PaaS:

  • Zmniejszone możliwości ingerencji w bazę (brak wpływu na hosta)
  • Ograniczenie do funkcjonalności dostarczonych przez usługodawcę
  • Usługi PaaS w niektórych przypadkach nie będą mogły być zastosowane do odwzorowanie środowisk on-premis (np. dodatki do bazy pisane przez wewnętrzny zespół developerów)
  • Narzędzia przygotowane przez usługodawców nie są w stanie dorównać narzędziom stworzonym do replikacji takim jak HVR czy Oracle Golden Gate

Co wybrać? Chmura czy On-Premis? PaaS czy IaaS?

Na tak złożone pytanie nie da się jednoznacznie odpowiedzieć. Trzeba zadać szereg pytań pomocniczych np. Czy dane muszą być zlokalizowane w jednym data center (serwerowni)? Czy nasza baza używa niestandardowych rozszerzeń? Czy wolimy zarezerwować stałe zasoby, czy może idealnym rozwiązaniem dla nas jest płatność za użycie? Czy musimy używać scenariusz hybrydowego (on-Pemis i cloud), czy jednak tylko cloud?

Azure_Data_Factory

Źródło: https://docs.microsoft.com/pl-pl/

Nawet jeśli zdecydujemy przejść do chmury, należy przemyśleć to który usługodawca może nam najwięcej zaoferować. Przykładem takich korzyści może być kooperacja Azure z Oracle Cloud. Od czerwca 2020 roku Microsoft i Oracle podpisały umowę integrującą swoje rozwiązania chmurowe, dokumentacja w łatwy sposób prowadzi nas przez integracje dwóch takich środowisk. Dzięki takiej sytuacji możemy łączyć środowiska w jescze łatwiejszy sposób np. bazy Oracle w chmurze Oracle Cloud, bazy SQL Server w Azure za to Postgresy w loklanym datacenter.

Słowem podsumowania

Sprawa stworzenia nowego rozwiązania w chmurze lub migracja do chmury nie jest łatwym zagadaniem. W dzisiejszych czasach bycie w chmurze to kwestia czasu, każdego w mniejszym lub większym stopniu to czeka (chociażby używając Office 365 :)). Migrując się do chmury, warto przemyśleć swoje kroki wcześniej tak by uczyć się na błędach innych nie swoich. Jak mam nadzieję, udało mi się w tym artykule przedstawić chmura Azure, jest pełna możliwości w zakresie relacyjnych baz danych od starych ogromnych rozwiązań jak SQL Server po open-sourcowe bazy w formule PaaS jak PostgreSQL. Na pewno każdy użytkownik znajdzie coś dla siebie.

Należy pamiętać, że każdą tak strategiczną decyzję warto skonsultować z partnerem. Partner posiadający odpowiednią wiedzę jest w stanie pomóc nam uniknąć niepotrzebnych błędów i gładko wprowadzić nas w nowy świat przyszłości, jakim są rozwiązania chmurowe. Partner może pomóc nam bezprzestojowo migrować się do chmury lub połączyć dwa środowiska on-premis i chmura. Do takich celów w świecie baz danych służą narzędzia takie jak HVR czy Oracle Golden Gate.

Jeśli potrzebujesz pomocy dotyczącej zagadnień chmurowych w szczególności w kontekście chmury Azure, zapraszam do kontaktu.

Aleksandra Woś

Dominik Maciejewski

Cloud Solution Consultant