W tamtych czasach jedynymi akceptowalnymi opcjami były zastrzeżone bazy danych.
„Nikt nigdy nie został zwolniony za kupowanie w Oracle/Microsoft/IBM” było powiedzenie.
Ogromne, monolityczne bazy danych używane do każdego celu. Płatne wsparcie – tak wyglądał krajobraz baz danych w latach 90. i wczesnych 00. Oczywiście, istniały bazy danych o otwartym kodzie źródłowym, ale były one traktowane jak „bazy zabawek”, odpowiednie dla małej witryny internetowej, może bloga lub bardzo małego sklepu internetowego. Nikt przy zdrowych zmysłach nie wykorzystałby ich do niczego krytycznego.
Z biegiem czasu wszystko się zmieniło, a bazy danych o otwartym kodzie źródłowym dojrzały. Z roku na rok powstaje coraz więcej. Widzimy teraz specjalizację, która pozwala użytkownikom wybrać najlepszą opcję dla danego obciążenia — szeregi czasowe, analityczne, magazyn kolumn, NoSQL, relacyjne, klucz-wartość — możesz wybrać dowolne bazy danych, których potrzebujesz i zazwyczaj jest wiele opcji do wyboru. Prowadzi to do tego, że open source staje się coraz bardziej popularne w świecie baz danych. Firmy patrzą teraz na swoje rachunki od swojego dostawcy zastrzeżonych baz danych i zastanawiają się, czy mogą je nieco zmniejszyć, przyjmując bezpłatną bazę danych o otwartym kodzie źródłowym.
Jak zwykle są plusy i minusy. Jakie rzeczy warto rozważyć przed wdrożeniem bazy danych typu open source? W tym poście na blogu podzielimy się kilkoma wskazówkami, o których warto pamiętać, planując migrację do baz danych typu open source.
Rozpocznij małe i rozwinięte
Jeśli Twoja organizacja nie korzysta z baz danych typu open source, najprawdopodobniej nie ma też doświadczenia w zarządzaniu nimi. Chociaż jest to możliwe dzięki zewnętrznym konsultantom, prawdopodobnie nie jest dobrym pomysłem migracja całego środowiska do baz danych o otwartym kodzie źródłowym.
Lepszym podejściem byłoby zamiast tego zacząć od małych projektów. Może potrzebujesz zbudować coś w rodzaju wewnętrznego narzędzia lub strony internetowej, może jakieś narzędzie do monitorowania - to świetna okazja do korzystania z baz danych open source i zdobycia doświadczenia w korzystaniu z nich w rzeczywistych środowiskach. Dzięki temu poznasz tajniki bazy danych - jak ją diagnozować, jak śledzić jej wydajność, jak ją dostroić, aby poprawić jej wydajność.
Ponadto możesz dowiedzieć się więcej o opcjach i implementacjach wysokiej dostępności. Praca z nim pomaga również zrozumieć różnice między zastrzeżoną bazą danych, której używasz, a bazami danych typu open source, które zostały zaimplementowane dla mniejszych projektów. Z czasem powinieneś zauważyć, że ślad open source bazy danych w Twojej organizacji znacznie wzrósł wraz z doświadczeniem Twoich zespołów.
W pewnym momencie, po zebraniu wystarczającego doświadczenia do uruchamiania baz danych typu open source, możesz zdecydować się na pociągnięcie dźwigni i rozpoczęcie projektu migracji. Inną, również całkiem prawdopodobną opcją, jest stopniowe przenoszenie operacji do baz danych o otwartym kodzie źródłowym na podstawie projektu po projekcie. W końcu istniejące aplikacje korzystające z zastrzeżonych RDBMS staną się przestarzałe i ostatecznie zostaną zastąpione nową iteracją oprogramowania, która opiera się na bazach danych o otwartym kodzie źródłowym.
Wybierz odpowiednią bazę danych dla zadania
Wspomnieliśmy już, że bazy danych typu open source są zazwyczaj dość wyspecjalizowane. Możesz wybrać magazyn danych odpowiedni do różnych zastosowań — szeregi czasowe, magazyn dokumentów, magazyn klucz-wartość, magazyn kolumnowy, wyszukiwanie tekstowe. To, w połączeniu z poprzednią wskazówką, pozwala wybrać dokładnie taki rodzaj bazy danych, jakiego wymaga Twój mały projekt. Załóżmy, że chcesz zbudować stos monitorowania dla swojego środowiska.
Możesz zajrzeć do baz danych szeregów czasowych, takich jak Prometheus lub TimeScaleDB, aby zasilać swoją aplikację monitorującą. Może chcesz wdrożyć jakieś rozwiązania analityczne/big data. Musiałbyś zaprojektować jakiś proces ETL, aby wyodrębnić dane z głównego RDBMS i załadować je do rozwiązania open source. Istnieje wiele opcji, które można wykorzystać jako magazyn danych. W zależności od wymagań i danych możesz wybierać spośród szerokiej gamy baz danych, na przykład Clickhouse, Cassandra, Hive i wielu innych.
Co powiesz na przeniesienie niektórych części aplikacji z zastrzeżonego RDBMS do rozwiązania typu open source?
Są na to również opcje. Magazyny danych, takie jak PostgreSQL lub MariaDB, mają wiele funkcji związanych z łatwą migracją z magazynów danych, takich jak Oracle. Zawierają na przykład obsługę PL/SQL i innych funkcji SQL dostępnych dla Oracle. To bardzo pomaga - mniej kodu trzeba konwertować wraz z migracją z Oracle do innych baz danych, jest bardziej prawdopodobne, że twoje procedury i funkcje składowane również będą działać w większości od razu i nie będziesz musiał wydać dużo ilość czasu na przepisanie, testowanie i debugowanie kodu, który reprezentuje podstawową logikę Twojej aplikacji.
Nie należy również zapominać o zasobach, które już posiadasz w swoim zespole. Może ktoś ma jakieś doświadczenie w bardziej popularnych datastoreach typu open source? Jeśli spełniają one Twoje wymagania i pasują do Twojego środowiska, możesz wykorzystać istniejącą wiedzę w swoim zespole i łatwo przejść do świata open source.
Rozważ uzyskanie pomocy
Migracja do baz danych, z którymi nie masz zbyt dużego doświadczenia, jest zawsze trudna. Nawet jeśli będziesz wykonywać małe kroki, nadal możesz zostać złapany przez niespodziewane zachowanie, nieoczekiwaną sytuację, błędy lub nawet sytuacje operacyjne, których nie znasz.
Otwarte bazy danych zazwyczaj mają świetne wsparcie społeczności – listy e-mailowe, fora, kanały Slack. Zwykle, gdy o to poprosisz, ktoś spróbuje ci pomóc. W niektórych przypadkach może to nie wystarczyć. Jeśli tak jest, powinieneś poszukać płatnego wsparcia. Można to osiągnąć na wiele sposobów.
Po pierwsze, nie wszystkie projekty open source są sobie równe. Większe projekty, takie jak PostgreSQL lub MySQL, mogły stworzyć ekosystem firm konsultingowych, które zatrudniają ekspertów, którzy mogą dla Ciebie konsultować. Jeśli taka opcja, z jakiegokolwiek powodu, nie jest dostępna lub wykonalna, zawsze możesz skontaktować się z opiekunami projektu.
Bardzo często firma, która rozwija datastore, chętnie pomoże za odpowiednią cenę.
Niezależne firmy konsultingowe mają znaczną przewagę - są niezależne i zaproponują rozwiązanie oparte na swoim doświadczeniu, a nie na datastore i rozwijanych narzędziach. Sprzedawcy, cóż, zazwyczaj będą forsować własne rozwiązania i środowisko. Z drugiej strony, dostawcy są dość zainteresowani zwiększeniem adopcji ich datastore. Jeśli przeprowadzasz migrację z zastrzeżonego magazynu danych, być może byli w takiej sytuacji kilka razy wcześniej, dlatego powinni być w stanie przedstawić Ci dobre praktyki, pomóc w zaprojektowaniu procesu migracji i tak dalej. Dla niedoświadczonej firmy dostęp do ekspertów w dziedzinie migracji może być wielkim atutem.
Dostęp do wsparcia zewnętrznego może okazać się przydatny nie tylko w fazie migracji. Radzenie sobie z nowym magazynem danych jest zawsze trudne, a poznanie wszystkich aspektów operacji jest czasochłonne. Nawet po migracji możesz nadal korzystać z posiadania kogoś, do kogo możesz zadzwonić, zapytać i, co najważniejsze, nauczyć się od niego. Szkolenia, zdalne DBA, wszystko to są popularne opcje w świecie baz danych open source, szczególnie dla tych większych, bardziej ugruntowanych projektów.
Znajdź system lub narzędzie do pomocy
Otwarte bazy danych zawierają różne narzędzia, niektóre mniej lub bardziej złożone. Niektóre dodają funkcjonalność (wysoka dostępność, kopie zapasowe, monitorowanie), inne mają na celu ułatwienie zarządzania bazą danych.
Ważne jest, aby je wykorzystać (umowy konsultingowe mogą być tutaj przydatne, aby zapoznać Cię z najważniejszymi narzędziami dla wybranego magazynu danych typu open source), ponieważ mogą one znacznie zwiększyć prędkość operacyjną i wydajność oraz stabilność całej konfiguracji.
Niektóre narzędzia są bezpłatne, niektóre wymagają licencji do działania, powinieneś zajrzeć do puli i wybrać to, co najbardziej Ci odpowiada. Mówimy tu o load balancerach, narzędziach do zarządzania topologią replikacji, narzędziach do zarządzania wirtualnymi adresami IP, rozwiązaniach klastrowych, mniej lub bardziej dedykowanych platformach monitorowania i obserwowalności, które mogą śledzić wszystko, począwszy od typowych metryk wydajności baz danych, poprzez dostarczanie inteligentnych prognoz opartych na danych, aż po specjalistyczne analiza wydajności zapytania.
Świat open source to miejsce, w którym rozwijają się takie narzędzia – ma to również wady i zalety. Łatwo znaleźć narzędzie „A”, trudno znaleźć narzędzie „THE”. Na GitHubie można znaleźć wiele projektów, z których każdy robi prawie to samo, co inni. To, który wybrać, jest najtrudniejszą częścią. Dlatego idealnie byłoby, gdybyś miał pomocną dłoń w umowie wsparcia lub możesz również polegać na platformach zarządzania, które pomogą Ci zarządzać wieloma aspektami operacji na bazach danych typu open source, w tym pomagając w standaryzacji i doborze odpowiednich narzędzi do to.
Istnieją również platformy takie jak ClusterControl, które zostały zaprojektowane, aby pomóc niedoświadczonym osobom w pełni zrozumieć moc baz danych o otwartym kodzie źródłowym. ClusterControl obsługuje wiele różnych typów baz danych typu open source:MySQL i jego odmiany, PostgreSQL, TimeScaleDB lub MongoDB. Zapewnia ujednolicony interfejs użytkownika umożliwiający dostęp do funkcji zarządzania tymi magazynami danych, ułatwiając ich wdrażanie i zarządzanie nimi. Zamiast tracić czas na testowanie różnych narzędzi i rozwiązań, korzystając z ClusterControl, możesz łatwo wdrożyć wysoce dostępne środowisko, zaplanować tworzenie kopii zapasowych i śledzić metryki w systemie.
Narzędzia takie jak ClusterControl zmniejszają obciążenie zespołu, zwiększając jego zdolność do zrozumienia, co dzieje się w bazie danych, której nie znają tak, jak by tego chcieli.
Nie spiesz się
Należy pamiętać, że nie ma potrzeby się spieszyć. Stabilność środowiska i dobre samopoczucie użytkowników są najważniejsze. Nie spiesz się, aby przeprowadzić testy, zweryfikuj wszystkie aspekty swojej aplikacji. Sprawdź, czy masz odpowiednie procesy wysokiej dostępności i odzyskiwania po awarii.
Tylko gdy jesteś w 100% pewien, że jesteś dobry, aby przejść, nadszedł czas, aby pociągnąć za dźwignię i przejść na bazy danych o otwartym kodzie źródłowym.