EuroDB w kontenerach

EuroDB w kontenerach cz. I

W tym artykule, na przykładzie EuroDB, przyjrzymy się instalacji bazy danych działającej w środowisku wirtualnym na poziomie systemu operacyjnego. Konkretnie rzecz ujmując, omówimy konteneryzację opartą o znany i popularny system – Docker.

Obecnie większość aplikacji o różnym stopniu skomplikowania instalowana jest w systemach wirtualizacji. Dzieje się tak również z systemami zarządzania bazami danych (ang. Database Management System, DBMS). W tym artykule, na przykładzie EuroDB, przyjrzymy się instalacji bazy danych działającej w środowisku wirtualnym na poziomie systemu operacyjnego. Konkretnie rzecz ujmując, omówimy konteneryzację opartą o znany i popularny system – Docker.

O samym Dockerze pisaliśmy już kilkakrotnie na naszym blogu, np. w artykułach: Docker w Linuksie cz. I – podstawowe komendy czy Docker w Linuksie cz. II – średnio zaawansowane komendy.

Instalacja baz danych w kontenerach

Większość popularnych systemów zarządzania bazami danych (DBMS) pozwala na ich konteneryzację w Dockerze. W samym serwisie hub.docker.com możemy znaleźć wiele obrazów systemów DBMS. Zarówno oficjalnych, jak i rozwijanych przez różnych dostawców, a także przez pasjonatów. Również firma EuroLinux dostarcza kilka popularnych obrazów różnych narzędzi bazujących na wersji systemu EuroLinux. Informowaliśmy o tym w artykule FBI w EuroLinuksie. Jednym z obrazów jest obraz bazy PostgreSQL bazujący na platformie EuroLinux. Pozwala on na uruchomienie Postgresa w wersji 12. w kontenerze. Obraz ten jest regularnie aktualizowany.

Instalacja bazy PostgreSQL w kontenerach

Baza PostgreSQL może być instalowana w kontenerach, bazując na wielu dostępnych systemach operacyjnych. Tak jak wspomnieliśmy, dla naszych potrzeb wykorzystujemy obraz EuroLinuksa. O ile sama instalacja bazy danych przebiega w sposób praktycznie intuicyjny, to należy zwrócić uwagę na kilka ważnych spraw związanych z dostępem do samej bazy danych pracującej w kontenerze oraz kwestii dotyczących przechowywania danych. Dostęp z właściwej dla nas sieci modyfikujmy za pomocą wpisów w pliku $DATA_DIRECTORY/pg_hba.conf np. poprzez skrypt użyty do instalacji naszego kontenera. Przykłady możemy znaleźć tutaj.

Kolejną ważną dla nas kwestią pozostaje utrwalanie danych, które zapisuje baza. Kontenery mogą zapisywać dane w swojej ostatniej warstwie. Natomiast z pewnością nie jest to sposób polecany dla zapisu dużej ilości danych. Dlatego wskazane jest, aby dane były przechowywane „poza” systemem kontenera. Umożliwia to mechanizm zwany wolumentami Dockera (ang. Docker volumes). Dostęp do wolumenów jest realizowany za pomocą opcji -v lub –volume. Przykład jego wykorzystania przedstawiamy poniżej. Możemy znaleźć go także w opisie do kontenera bazy eurolinux/postgresql.

mkdir /var/lib/pgsql_data # proposed location for the database

# volume for data storage
docker volume create --driver local --name psql_data --opt type=none --opt device=/var/lib/pgsql_data --opt o=uid=root,gid=root --opt o=bind

# run container
docker run -d -p 5432:5432 -v psql_data:/var/lib/pgsql/12/data -e POSTGRES_DBNAME=mydatabase -e POSTGRES_USERNAME=myusername -e POSTGRES_PASSWORD=mysecretpassword eurolinux/postgresql

Jakie korzyści płyną ze stosowania instalacji bazy danych w kontenerze?

Podstawową i niebagatelną korzyścią jest możliwość zastosowania dokładnie takiej samej wersji bazy danych, systemu operacyjnego oraz narzędzi na wszystkich środowiskach. Począwszy od systemów deweloperskich, poprzez testowe, aż po samo środowisko produkcyjne. Umożliwia to stabilniejsze i bezpieczniejsze wykorzystanie zasobów firmy, a oferowana przez EuroLinux asysta techniczna oraz uproszczone licencjonowanie pozwala na zapewnienie wsparcia na wszystkich etapach produkcji oprogramowania. Dlatego ciekawą propozycją jest zastosowanie możliwości uruchamiania systemu EuroDB w kontenerach.

EuroDB w kontenerach

Aktualnie (czerwiec 2020) firma EuroLinux umożliwia instalację EuroDB w kontenerach Dockera w wersjach EuroDB 9.6.x, 10.x, 11.x i 12.x. Do systemu konteneryzacji zostały przeniesione narzędzia dostępne w „standardowej” wersji EuroDB. Także instalator platformy bazodanowej EuroDB został rozbudowany o opcje pozwalające na pełne wsparcie instalacji w kontenerach. Umożliwia to instalację zarówno pojedynczych komponentów systemu, przykładowo samej bazy danych PostgreSQL za pomocą np. pliku Dockerfile, jak i również wybrania do instalacji komponentów np. z pomocą docker-compose. Wchodzące w skład pakietu EuroDB narzędzia zostały dostosowane do instalacji w kontenerach.

EuroDB w kontenerach

W kolejnym artykule z tej serii omówimy instalację poszczególnych komponentów EuroDB (PostgreSQL): moduł replikacji logicznej, moduł generowania danych, moduł analizy logów i moduł analizy statystyk. Przestawimy też proces dodania wolumenu przeznaczonego na dane. Opiszemy także procesy uruchomienia komponentów oraz zwrócimy uwagę na walory działania całości rozwiązania EuroDB w kontenerach.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.