Improve your business conversations on Growe Talks with negotiation expert Linda Netsch, Harvard Law School. Warsaw, 19/04. Apply free
Bazy danych w chmurze: nowoczesne podejście w IT

Bazy danych w chmurze: nowoczesne podejście w IT

Cześć! Nazywam się Ilya Reznykov (Europe Lead of Cloud Practice) i wraz z moim kolegą Arkadiuszem Ryszewskim (Senior Fullstack Engineer) pracujemy na co dzień w Svitla Systems. Przygotowaliśmy wspólnie artykuł, w którym wyjaśniamy zagadnienia związane z wykorzystywaniem baz danych w środowisku chmurowym. Dokument przeznaczony jest dla każdego i ma na celu zbudowanie podstaw i/lub rozszerzenie wiedzy na powyższy temat.

Prawie każdy projekt informatyczny wymaga zastosowania bazy danych. Za każdym razem, gdy dokonujemy zakupu online, odwiedzamy stronę internetową, oglądamy program w serwisie streamingowym lub uzyskujemy dostęp do naszych kont bankowych, pośrednio wchodzimy w interakcję z bazami danych. Kryją się one praktycznie wszędzie.

Koncepcja bazy danych istniała na długo przed pojawieniem się komputerów. Czasopisma, biblioteki i setki kartotek były w dawnych czasach głównymi miejscami przechowywania informacji. Jak można sobie wyobrazić, dokumenty papierowe zajmowały dużo miejsca i były trudne do znalezienia i wykonania kopii zapasowej.

Wraz z pojawieniem się komputerów stworzono komputerowe bazy danych w celu wydajnego przechowywania rekordów. Historia cyfrowych baz danych zaczyna się od pracy Charles Bachmana, który w latach 60. stworzył pierwszą skomputeryzowaną bazę danych. Oryginalna baza nosiła nazwę Integrated Data Store (IDS). Następnie IBM wprowadził swój system baz danych, który nazwano Information Management System.

W latach siedemdziesiątych XX wieku miało miejsce jedno z najważniejszych wydarzeń w historii baz danych, kiedy ukazał się artykuł „A Relational Data Model for Large Shared Databases” autorstwa E. F. Codda. Na przełomie dekad badania te spopularyzowały termin „relacyjna baza danych” i doprowadziły do ​​innowacyjnego podejścia do przechowywania i wyszukiwania danych.

Dziś trudno wyobrazić sobie nowoczesną architekturę bez wykorzystania baz danych. Ponieważ możliwości oferowane przez rozwiązania chmurowe rozwijały się w ostatnich latach bardzo dynamicznie, coraz więcej aplikacji migruje do chmury lub od samego początku ma architekturę chmurową. Z tego powodu w procesie tworzenia baz danych dla rozwiązań chmurowych powstały różne usługi bazodanowe dostępne w chmurze, różniące się modelami wdrażania, mechanizmami bazodanowymi, modelami użytkowania i oferujące różnorodne funkcje unikalne dla chmury. Jednocześnie każda usługa ma swoje zalety i zakres zastosowania: do małych aplikacji webowych, przechowywania dużych wolumenów danych czy analityki w czasie rzeczywistym.

Usługi baz danych w chmurze są oferowane przez dostawców usług chmurowych, ale  również producenci baz danych uwzględniają w swoich liniach produktów oferty tego typu. Ze względu na swój charakter bazy te posiadają wiele zalet, takich jak niezawodność, wysoka dostępność, skalowalność, bezpieczeństwo na różnych poziomach i łatwość zarządzania, interoperacyjność z innymi usługami chmurowymi.

W tym artykule wybierzemy się w podróż do świata baz danych w chmurze, w tym do standardowych definicji, typów wdrożeń i różnych silników baz danych, możliwości i cech ofert rozwiązań chmurowych.

Czym są chmurowe bazy danych?

Termin zarządzane bazy danych (Managed Databases)używany jest do opisywania baz danych lub usług bazodanowych wdrożonych w modelu oprogramowanie jako usługa (Software-as-a-Service — SaaS). W tym przypadku dostawcy chmury oferują różne mechanizmy baz danych SQL i NoSQL. Wiele z nich zaprojektowanych jest tak, aby jak najlepiej wspierać jakieś określone zastosowanie. Mnogość rodzajów baz danych pozwala klientom wybrać bazę, dokładnie odpowiada ich potrzebom.

Modele wdrażania baz danych

Modele wdrażania baz danych różnią się możliwościami dostosowywania i nakładem pracy związanym z zarządzaniem bazą i/lub serwerem, przy czym większe dostosowanie wiąże się z większym wysiłkiem związanym z zarządzaniem i większą odpowiedzialnością klienta. I odwrotnie, niewielki lub żaden wysiłek związany z zarządzaniem zapewnia mniejsze dopasowanie do potrzeb ale za to mniejszą odpowiedzialność klienta i więcej wbudowanych dobrych praktyk. Przyjrzyjmy się głównym modelom wdrażania baz danych: infrastruktura jako usługa (Infrastructure-as-a-Service — IaaS), platforma jako usługa (PaaS), oprogramowanie jako usługa (SaaS) i tak zwane usługi Serverless.

Model wdrażania infrastruktury jako usługi (IaaS)

Usługa bazy danych w modelu IaaS nie daje znaczących korzyści w porównaniu z bazą danych hostowaną na serwerach organizacji. Różnica polega na modelu cenowym i integracji z usługami chmurowymi:

  • Użytkownicy płacą za czas spędzony na maszynie wirtualnej oraz za licencję komercyjną, jeśli dotyczy. Opcje płatności z góry są dostępne dla maszyny wirtualnej, ale nie ma płatności z góry za korzystanie z bazy danych. Miesięczna opłata za faktyczne wypożyczenie bazy danych w chmurze staje się kosztem operacyjnym.
  • Pamięć masowa i moc obliczeniowa baz danych w chmurze stają się elastyczne, dając użytkownikom więcej opcji w miarę wzrostu ich obciążeń.
  • Ponieważ usługa bazy danych jest hostowana w chmurze, można ją łatwo zintegrować z różnymi usługami w chmurze.

Wady tego modelu wdrażania są dość oczywiste:

  • Wysokie koszty klienta związane z obsługą infrastruktury.
  • Dopłata za infrastrukturę, licencję komercyjną i personel zarządzający tą infrastrukturą.
  • Być może najważniejsze jest to, że tego rodzaju konfiguracja jest podatna na błędy użytkownika.

Model wdrażania platformy jako usługi (PaaS)

Kolejnym modelem wdrożenia jest Platforma jako usługa (PaaS). W tym przypadku podstawowa infrastruktura, taka jak sprzęt, system operacyjny i DBMS, jest dostarczana jako usługa przez dostawców chmury, a użytkownicy tworzą bazy danych w chmurze za pomocą tej platformy. Model ten łączy ekonomiczną, skalowalną pojemność serwera bazy danych klasy przemysłowej z zaletami w pełni zarządzanej, nowoczesnej platformy jako usługi. Przykładem takiego modelu wdrażania jest Usługa Amazon RDS z AWS.

Takie podejście zapewnia klientom więcej korzyści niż model wdrażania IaaS:

  • Klient może pracować z tą samą bazą danych co lokalnie i skupić się na zadaniach tworzenia aplikacji zamiast na zarządzaniu infrastrukturą.
  • Dostępnych jest więcej modeli płatności, takich jak pay-as-you-go lub przedpłata ze zniżkami.
  • Silnik bazy danych i bazowy system operacyjny można dostosowywać i optymalizować, co pozwala użytkownikom pozostać przy już wdrożonej architekturze bazy danych, ale osiągnąć lepszą wydajność, stabilność i niezawodność.
  • Dostawca chmury zarządza kopiami zapasowymi, aktualizacją oprogramowania, automatycznym wykrywaniem awarii i odzyskiwaniem. Ponadto dostawcy chmury umożliwiają użytkownikom tworzenie ręcznych kopii zapasowych i przywracanie baz danych z ręcznych i automatycznie tworzonych kopii zapasowych.

Wady modelu wdrażania PaaS są następujące:

  • Klienci muszą skonfigurować ustawienia infrastruktury, takie jak rozmiar instancji, pamięć masowa, zabezpieczenia i łączność. Niektórzy dostawcy chmury zapewniają nawet ograniczony dostęp do podstawowej infrastruktury, aby umożliwić użytkownikom debugowanie starszych aplikacji biznesowych.
  • Ten model jest najczęściej używany w przypadku relacyjnych baz danych, ponieważ wymagają one kontroli nad złożoną infrastrukturą bazową.
  • Koszty użytkowania są nadal wysokie, a użytkownicy zwykle płacą za usługi bazy danych nawet w okresach przestojów. Ponadto ważne jest dobranie parametrów platformy do planowanych obciążeń, tak aby nie płacić za niewykorzystane pojemności.

“Bezserwerowe” usługi bazodanowe (Serverless)

Pod względem kosztów lub konserwacji podejście serverless dziedziczy wszystkie zalety i wady z modelu PaaS. Dodatkowe zalety to:

  • Bezserwerowe bazy danych mają szeroki zakres narzędzi i możliwości skalowania, a w razie potrzeby można je skalować niemal w nieskończoność.
  • Cennik jest bardziej elastyczny niż w modelu PaaS, ponieważ wielkość infrastruktury zmienia się bardziej dynamicznie.

Jeśli chodzi o wady, poza wymienionymi w poprzedniej sekcji, największym problemem jest to, że najłatwiejszym i najtańszym sposobem na wdrożenie usługi bazy danych serverless jest skorzystanie z usług zewnętrznego dostawcy chmury. Z drugiej strony, istnieją dwie ważne konsekwencje takiej decyzji. Po pierwsze, dane będą przechowywane poza wewnętrzną infrastrukturą firmy, co dla niektórych firm może być problemem. Po drugie, uzależnienie od dostawcy może stać się problemem, gdy organizacja zdecyduje się przenieść swoją infrastrukturę do innego dostawcy chmury.

Model wdrażania oprogramowania jako usługi (SaaS)

Korzystanie z modelu wdrażania Oprogramowanie jako usługa lub SaaS uwalnia użytkowników od wielu czasochłonnych zadań związanych z utrzymaniem infrastruktury i samej bazy danych, takich jak wdrażanie sprzętu i oprogramowania, instalacja, instalowanie poprawek, aktualizacje i kopie zapasowe. Ponieważ dostawca chmury w pełni zarządza odpowiednim DBMS, takie usługi w chmurze nazywane są w pełni zarządzanymi usługi bazodanowymi (fully-managed database services).

W pełni zarządzane usługi bazodanowe świadczone przez głównych dostawców usług w chmurze obsługują zarówno bazy relacyjne, jak i różnorakie bazy nierelacyjne (NoSQL). Co więcej, prawdopodobnie wszystkie chmurowe usługi NoSQL są dostarczane jako w pełni zarządzane bazy danych. Wspiera to podstawową ideę nierelacyjnych baz danych, które powinny działać i rozwiązywać tylko określone zadania aplikacji. Użytkownicy potrzebują tylko kilku kliknięć myszką, aby rozpocząć korzystanie z takich usług.

Usługi zarządzanej bazy danych w chmurze mogą być używane w scenariuszach migracji, takich jak ponowny zakup (Repurchase) i przebudowa (Refactor). W scenariuszu migracji Repurchase, bazy danych są migrowane do nowszej wersji tego samego silnika DB, który jest dostarczany przez opartą na chmurze usługę bazy danych w modelu SaaS. Scenariusz migracji typu przebudowa aplikacji lub scenariusz zmiany architektury (Rearchitect) wiąże się ze znacznym przeprojektowaniem architektury aplikacji, a co za tym idzie struktury bazy danych. Aby usprawnić system aplikacji, bazy danych mogą zostać przeniesione do bazy zarządzanej w chmurze, co pozwala uwolnić się od zadań związanych z zarządzaniem infrastrukturą, lub dane mogą zostać przeniesione do baz NoSQL, które również udostępniają usługi bazodanowe w modelu SaaS.

Bazy danych zarządzane w chmurze mają wiele zalet:

  • Nie trzeba zajmować się wszystkimi zadaniami zarządzania bazą danych, programiści mogą skupić się na zadaniach biznesowych.
  • Użytkownicy nie muszą przewidywać obciążenia i dostosowywać wydajności usług bazodanowych świadczonych w modelu SaaS, ponieważ są one skalowane automatycznie przez dostawców chmury.
  • Użytkownicy otrzymują dodatkowe funkcje chmury „od ręki”, takie jak międzyregionalne repliki, wysoka dostępność, integracja z innymi usługami, automatyczne tworzenie kopii zapasowych.
  • Koszt korzystania z usług bazodanowych w modelu SaaS jest zwykle oparty na zużyciu zasobów lub liczbie żądań, a nie na liczbie węzłów klastra lub wielkości predefiniowanej pamięci masowej.

Wady tych usług są w większości przeciwieństwem zalet:

  • Ostateczny koszt nie jest do końca jasny, ponieważ nie ma stałej ceny, takiej jak np. godziny w modelu IaaS.
  • Ponieważ zarządzane usługi baz danych są tworzone dla architektury chmurowej, zwykle nie ma lokalnego odpowiednika, ale istnieją zgodne serwery baz danych, które można zainstalować lokalnie.
  • Usługi zarządzanych baz danych mają tylko kilka opcji do skonfigurowania.

Rodzaje chmurowych baz danych

Jak wspomniano, usługi bazodanowe w chmurze obsługują wszystkie popularne rodzaje relacyjnych i nierelacyjnych baz danych. Wśród nich można wyróżnić bazy zaprojektowane dla specyficznych modeli danych i/lub przeznaczone do różnych zastosowań.

Relacyjne bazy danych

Jest to jeden z najstarszych typów baz danych i jednocześnie najpopularniejszy obecnie. Pozwala na przechowywanie ściśle ustrukturyzowanych danych. Ta właściwość ułatwia analizę danych i nawigację, a relacje między obiektami można łatwo śledzić. Jednak ten typ bazy danych jest trudny do skalowania, analizowania dużych ilości danych i nie jest wydajny w przypadku niektórych bardziej złożonych zapytań. Niektóre z popularnych rozwiązań w tej kategorii to Microsoft SQL Server, Postgres, MySQL i Oracle Database. Istnieją również rozwiązania chmurowe, które zostały zaprojektowane specjalnie dla środowisk chmurowych, jak np. Azure SQL Database lub Amazon Aurora.

Bazy danych typu klucz-wartość

Mechanizm bazy danych klucz-wartość (key-value) jest bardzo prostą koncepcją. Koncentruje się na pojedynczej tabeli, w której każdy wiersz ma klucz, a wartość jest opisana przez predefiniowany lub dynamiczny zestaw kolumn. Takie podejście nakłada wiele ograniczeń na projektowanie aplikacji, ale zapewnia bardzo szybkie przechowywanie i pobieranie danych, a także niezrównany potencjał skalowania. Niektóre rozwiązania chmurowe tego typu oferują również możliwość dystrybucji jednej bazy danych na całym świecie w wielu fizycznych centrach danych. Przykładami takich baz danych są: Azure Cosmos DB lub Amazon DynamoDB.

Bazy danych w pamięci

Tego typu bazy danych są przeciwieństwem tego, czego ludzie zwykle oczekują od bazy danych, gdy pyta się ich o ogólną ideę. Przede wszystkim

bazy danych w pamięci (in-memory database) nie mają możliwości przechowywania danych przez długi czas, dlatego wszystkie dane są tracone po ponownym uruchomieniu serwera. Wynika to ze sposobu i celu w jakim takie bazy zostały zaprojektowane. Najczęściej są używane do tymczasowego przechowywania odczytanych informacji lub danych bieżących (real-time data), czyli są tworzone w celu zapewnienia maksymalnej wydajności aplikacji. W takich scenariuszach trwałość nie jest tak ważna. Najpopularniejszymi silnikami baz danych in-memory są Redis i Memcached, a także dedykowane implementacje chmurowe, takie jak GCP Memorystore oraz IBM Cloud® Databases for Redis.

Bazy dokumentowe

Najczęstszy przypadek użycia dla

dokumentowej bazy dany (dokument database) to zastosowanie przy korzystaniu z projektowania zorientowanego na domenę (Domain-driven Design — DDD). Mechanizm ten przeznaczony jest do przechowywania dużych tablic danych tekstowych, na przykład całych faktur. Takie bazy danych mają ograniczone możliwości zapytań, ale zapewniają wysoką spójność i lepszą wydajność niż w przypadku relacyjnych baz danych. Najpopularniejszą implementacją jest MongoDB. Istnieją również implementacje chmurowe, takie jak kompatybilna z MongoDB baza danych z AWS — Amazon DocumentDB lub IBM Cloud® Databases for MongoDB od IBM.

Grafowe bazy danych

Relacyjne bazy danych umożliwiają użytkownikom łatwe zarządzanie relacjami między danymi oraz implementację dodatkowych struktur danych, które tworzą ich własne relacje. Jednak w pewnym momencie stało się jasne, że nie wszystkie typy danych i nie wszystkie relacje można wygodnie odzwierciedlić w zestawie tabel. Wynika to z tego, że czasami relacje są tak dynamiczne, jak same dane. Wyobraźmy sobie, że musisz przechowywać informacje o przyjaznych relacjach między wszystkimi użytkownikami sieci społecznościowej w formie tabel. Jest to możliwe, ale wyjątkowo nieefektywne.

Dlatego powstał nowy rodzaj baz danych — bazy grafowe (graph database). Pozwalają one w łatwy sposób śledzić powiązania pomiędzy poszczególnymi obiektami, a co najważniejsze skutecznie analizować te powiązania. Kontynuując przykład przechowywania danych o relacjach międzyludzkich, grafowe bazy danych pozwalają łatwo i szybko znaleźć np. wszystkich znajomych pierwszego i drugiego poziomu danej osoby. Takie zadanie byłoby bardzo trudne dla tradycyjnej bazy danych. Najpopularniejszymi przykładami grafowych baz danych są Neo4J Cloud, IBM Compose for JanusGraph i Amazon Neptun.

Bazy danych szeregów czasowych

Wraz z rosnącą liczbą aplikacji tworzonych dla Internetu Rzeczy (Internet of things — IoT), producenci baz danych stają przed nowym wyzwaniem – baza danych musi przechowywać i analizować biliony zdarzeń dziennie. Wymagało to stworzenia nowego silnika bazodanowego zaprojektowanego specjalnie dla

szeregów czasowych (time-series database). Są to bazy danych, które organizują dane w ciągi zdarzeń, uporządkowane według czasu ich wystąpienia. Oferują różnorodne narzędzia do analizowania takich danych w czasie rzeczywistym, identyfikowania wzorców i trendów oraz korzystania z dodatkowych funkcji agregujących do analizy i wglądu. Znajdują zastosowanie w branży finansowej, rolnej, motoryzacyjnej i lotniczej. Przykładami takich usług bazodanowych są: InfluxDB i Amazon Timestream.

Bazy danych typu Ledger

Słowo Ledger można przetłumaczyć jako

rejestr lub księga główna, jednak najczęściej używana jest angielska nazwa. Baza danych z rejestrem (ledger database), lepiej znana jako dziennik transakcji lub Blockchain, jest bazą przeznaczoną do przechowywania historii zmian w określonym środowisku w taki sposób, że nie może ona zostać zmieniona przez żadną z uczestniczących stron. Tylko nowe zmiany mogą być rejestrowane za zgodą wszystkich stron. Zarządzane bazy danych tego typu zapewniają w przejrzysty, niezmienny i zweryfikowany kryptograficznie dziennik transakcji. Przykładem takich rozwiązań są usługi w chmurze Blockchain Platform Cloud Service oferowana przez Oracle oraz Amazon Quantum Ledger Database (QLDB) oferowana przez AWS.

Inne rodzaje

Byłoby niesprawiedliwe nie wspomnieć o innych usługach danych, które zasadniczo nie są bazami danych z klasycznego punktu widzenia. Wśród nich są chmurowe implementacja rozproszonego systemu wyszukiwania i analizy ElasticSearch. Innymi przykładami są usługi data factory czy data lakes – w pełni zarządzane usługi chmurowe, które pozwalają na automatyzację procesów ETL i ELT. Zwracamy również uwagę na różne usługi OLAP, które pomagają analizować dane ustrukturyzowane i częściowo ustrukturyzowane w hurtowniach danych, operacyjnych bazach danych i tak zwanych Data Lakes.

Cechy wiodących relacyjnych baz danych

  • Oracle

Oracle Database to najpopularniejszy na świecie system DBMS stworzony przez Oracle Corporation. Obsługuje formaty danych, metody dostępu i indeksy oraz języki programowania wymagane dla określonych obciążeń, jednocześnie oferując wspólną administrację, zasady bezpieczeństwa oraz spójność transakcji i danych. Obsługiwane są modele danych w postaci kolumnowej, segmentowej bazy danych, magazynu dokumentów, bazy danych przestrzennej i bazy danych wykresów. To wielomodelowe podejście upraszcza integrację danych między różnymi formatami danych. Baza danych Oracle Database jest używana głównie do przetwarzania danych w sieci korporacyjnej i przechowywania danych.

  • MySQL

MySQL jest najczęściej używaną bazą danych typu open source na świecie i drugą pod względem popularności po Oracle Database (ranking). Facebook, Twitter, Netflix, Uber, Airbnb, Shopify i Booking.com to tylko niektóre z najpopularniejszych witryn korzystających z MySQL. Baza danych MySQL jest darmowym oprogramowaniem, ale dostępne są wersje komercyjne z dodatkowymi modułami, dostępne są również usługi bazodanowe w chmurze obsługujące silnik MySQL.

Dzięki temu, że MySQL jest otwartoźródłowe, na przestrzeni ponad 25 lat z pomocą użytkowników zostało stworzonych wiele przydatnych funkcji. Dlatego jest prawdopodobne, że baza danych MySQL bez problemu zintegruje się z Twoją ulubioną aplikacją lub językiem programowania. MySQL jest szybki, niezawodny, skalowalny i łatwy w użyciu. Może zostać wykorzystana do szybkiego przetwarzania dużych baz danych i jest używana od wielu lat w wymagających środowiskach.

  • Microsoft SQL Server

Microsoft SQL Server to relacyjny DBMS od firmy Microsoft, który jest oferowany w różnych edycjach, w szczególności do użytku osobistego, dla dużych firm i usług w chmurze, i przeznaczony do wykorzystania w różnych scenariuszach, od małych aplikacji lokalnych po duże systemy korporacyjne z wieloma użytkownikami korzystającymi z systemu jednocześnie. Ponieważ historia Microsoft SQL Server sięga ponad 30 lat, oprócz niezawodności, skalowalności, wydajności, szyfrowania danych, DBMS oferuje wbudowane możliwości analityczne i może być używany z różnymi językami programowania i w różnych środowiskach.

Microsoft oferuje również szereg usług dodatkowych do rozwiązywania zadań specjalistycznych, takich jak usługa uczenia maszynowego, usługa replikacji danych, przygotowywanie raportów, wysyłanie wiadomości, integracja z innymi źródłami danych itp.

  • PostgreSQL

PostgreSQL to zaawansowany system zarządzania relacyjnymi bazami danych klasy korporacyjnej typu open source, który obsługuje zarówno zapytania relacyjne, jak i JSON (nierelacyjne). Ten DBMS był rozwijany przez społeczność przez ponad 20 lat, co uczyniło go stabilnym, poprawnym i niezawodnym. PostgreSQL jako główna baza danych jest wykorzystywany przez wiele aplikacji webowych, mobilnych, geoprzestrzennych i analitycznych.

PostgreSQL ma długą historię obsługi standardowych, rozszerzonych i zdefiniowanych przez użytkownika typów danych i może być używany z wieloma językami programowania. Obsługuje również ten sam poziom optymalizacji wydajności, co komercyjne bazy danych, takie jak Oracle i MS SQL Server.

Zalety usług bazodanowych w chmurze

Pomimo różnic w mechanizmach i modelach wdrażania baz danych usługi bazodanowe w chmurze mają wiele zalet i cech w porównaniu z serwerami bazodanowymi on-premise, co zapewniło im ważne miejsce w nowoczesnych architekturach aplikacji. Przyjrzymy się niektórym z najważniejszych zalet baz danych w chmurze, które podzielimy na kilka kategorii.

Korzyści biznesowe

  • Utrzymanie infrastruktury IT nie stanowi już problemu. W świecie baz danych w chmurze dostawca chmury odpowiada za infrastrukturę systemową, dzięki czemu firma może odciążyć własny dział IT poprzez wyłączenie zbędnych systemów. Ponadto nie ma potrzeby utrzymywania personelu obsługującego podstawową infrastrukturę, a personel może skupić się na rozwiązywaniu problemów biznesowych wyższego poziomu.
  • Elastyczność. Szeroka gama usług bazodanowych w chmurze opartych na najnowszych technologiach pozwala na korzystanie z wyspecjalizowanych baz danych zamiast próbować dopasować dowolny model danych do relacyjnych baz danych. Co więcej, programiści nie muszą korzystać tylko z jednego silnika bazy danych. Różne mechanizmy mogą być używane dla różnych części aplikacji i w zależności od obciążeń. Firma może szybciej eksperymentować i wprowadzać innowacje, ponieważ zespoły programistów mogą tworzyć programy pilotażowe z określonymi usługami bazodanowymi w chmurze, aby zrozumieć, czy spełniają one wymagania techniczne.
  • Uproszczenie rozwoju. Dostęp do danych bazy danych w chmurze można uzyskać na różne sposoby: za pośrednictwem interfejsu internetowego, interfejsów API i zestawów SDK dostarczonych przez dostawcę lub wiersza poleceń. Ponadto zasoby usługi bazy danych mogą być tworzone i zarządzane za pomocą narzędzi infrastruktury jako kodu, takich jak niezależny od dostawcy chmury produkt Terraform lub na przykład Amazon CDK, który obsługuje infrastrukturę określonego dostawcy chmury.
  • Integracja z różnymi usługami w chmurze. Umiejscowienie baz danych w chmurze umożliwia łatwą integrację z różnymi usługami chmurowymi: usługami infrastrukturalnymi, takimi jak sieci, narzędzia bezpieczeństwa, logowanie, usługi obliczeniowe, usługi serverless, takie jak kolejki i centra zdarzeń, które zmniejszają obciążenie związane z zapisem w bazach danych, usługi cache usprawniające operacje odczytu; oraz usługi analizy danych, takie jak data lakes lub usługi analityczne oparte na sztucznej inteligencji. Porównując integrację usług w chmurze z lokalnymi bazami danych oraz integrację usług w chmurze z bazami danych w chmurze, ta druga implementacja jest znacznie prostsza, przewidywalna i lepiej kontrolowana.

Funkcje związane z chmurą

  • Zwiększa wydajność, skalowalność i elastyczność. Gdy obciążenie wzrasta, łatwo jest dodać więcej mocy obliczeniowej oraz zwiększyć przestrzeń do przechowywania danych. Niektórzy dostawcy oferują funkcję automatycznego skalowania bazy danych w locie, które nie wymagają interwencji użytkownika.
  • Nowe funkcje mogą być używane szybciej. Aby uzyskać nowe możliwości i funkcje, użytkownicy lokalnych baz danych zwykle muszą czekać, aż dział IT zainstaluje je po wydaniu aktualizacji oprogramowania. W środowiskach chmurowych dostawcy zapewniają automatyczne utrzymywanie systemu DBMS, w tym instalowanie poprawek i aktualizowanie serwerów baz danych i bazowych systemów operacyjnych.
  • Bardziej niezawodne systemy, które są zawsze włączone. Dostawcy chmury oferują takie funkcje, jak wysoka dostępność, automatyczne tworzenie kopii zapasowych i odzyskiwanie po awarii, które mogą być bardziej zaawansowane niż te, które firma może wdrożyć samodzielnie. Na przykład w przypadku klęski żywiołowej lub przerwy w dostawie prądu bazy danych można przywrócić w innym regionie geograficznym, korzystając z kopii zapasowych w geograficznie rozproszonej pamięci masowej.
  • Zaawansowana ochrona. Większość dostawców baz danych w chmurze szyfruje dane bazy danych podczas ich przechowywania i przesyłania. Ponadto dostawcy chmury oferują różne zastrzeżone narzędzia bezpieczeństwa, które mogą wykrywać oszustwa, luki w zabezpieczeniach i potencjalne ryzyko ujawnienia poufnych danych. Jako dodatkową warstwę bezpieczeństwa użytkownicy mogą korzystać z usług chmurowych, aby kontrolować, kto ma dostęp do bazy danych i samych danych. Umieszczenie w chmurze pozwala bezpiecznie przechowywać dane i wymieniać je ze zintegrowanymi usługami bez konieczności przesyłania danych przez publiczny Internet.
  • Replikacja między regionami geograficznymi. Dostawcy chmury udostępniają serwery w wielu lokalizacjach, aby wspierać klientów na całym świecie. Dlatego kopie baz danych w chmurze mogą być przechowywane w kilku regionach geograficznych jednocześnie. Replikacja międzyregionalna jest jedną z najważniejszych części strategii ciągłości biznesowej i odzyskiwania danych po awarii.
  • Używanie replik do odczytu i zapisu. Repliki do odczytu bazy danych poprawiają wydajność i stabilność bazy danych. W przypadku intensywnych operacji odczytu bazy danych repliki upraszczają skalowanie bazy danych. Jest to jedna z kluczowych cech nowoczesnej architektury mikroserwisowej. To samo dotyczy replik obsługujących operacje odczytu i zapisu.
  • Równoważenie połączeń za pomocą usługi proxy bazy danych. Usługa proxy bazy danych to dodatkowa warstwa przed usługą bazy danych, której można użyć jako modułu równoważenia obciążenia. Może zarządzać pulą połączeń i nakładać ograniczenia w dostępie do danych.

Różne scenariusze cenowe

  • Oszczędności. Całkowite koszty firmy można obniżyć, zmniejszając nakłady inwestycyjne, koszty operacyjne centrum danych i wymagania dotyczące infrastruktury IT, a także zmniejszając powiązany personel IT.
  • Różne sposoby rozliczeń. Bazy danych w chmurze działają w ramach różnych modeli cenowych, które można dostosować do potrzeb klienta. Popularne modele płatności obejmują licencjonowanie, usługa na żądanie (on-demand), płatność zgodnie z rzeczywistym użyciem (pay-as-you-go), płatność z góry ze zniżkami i inne.
  • Wycena na podstawie zużycia. Jednym z najpopularniejszych scenariuszy płatności jest pay-as-you-go. Ostateczna kwota może składać się z kilku części, np. dla bazy danych w chmurze może to być opłata za przechowywanie i liczbę transakcji. Jednak usługi chmurowe typu pay-as-you-go mogą kosztować więcej niż oczekiwano, jeśli wykorzystanie zasobów jest wyższe niż planowano lub jeśli przeoczono pewien próg opłacalności (inny dla każdego zastosowania i każdej bazy).
  • Redukcja kosztów dzięki wspólnym zasobom. W przypadku scenariuszy, w których podobne bazy danych, na przykład dla różnych użytkowników aplikacji SaaS, z nieprzewidywalnymi szczytami użycia, działają równolegle na udostępnionych zasobach. Dostawcy chmury oferują możliwość płacenia za zasoby udostępniane przez bazy danych klientów zamiast płacenia za bazy danych same w sobie.

Maksymalne wykorzystanie usług bazy danych w chmurze

W dobie cyfrowej transformacji firmy odchodzą od systemów monolitycznych, w których wykorzystywana jest pojedyncza duża relacyjna baza danych, do architektury mikroserwisów w chmurze ze specjalistycznymi usługami bazodanowymi, dlatego przy wyborze bazy danych należy wdrożyć podejście „właściwe narzędzie do właściwego zadania”. 

Mam nadzieję, że moje doświadczenie pomoże Wam w Waszych projektach, a później będziecie mogli łatwo i skutecznie rozwiązywać problemy związane z rozbudową i przeróbką architektury aplikacji czy tworzeniem nowych systemów z wykorzystaniem najnowocześniejszych technologii i praktyk programistycznych.

Powodzenia!

Avatar
Europe Lead of Cloud Practice at Svitla Systems Inc.
Mar 12
"Netlify just sent me a $104K bill for a simple static site"
This blog was posted by a reddit user. We are publishing this blog because it can be useful for anyone who uses Netlify or Vercel.

This site uses cookies to offer you a better browsing experience.

Find out more on how we use cookies and how to change cookie preferences in our Cookies Policy.

Customize
Save Accept all cookies