Poznajcie JAPET - platformę do udostępniania bazy danych PostgreSQL w chmurze prywatnej
Autor
Michał Langner
Dlaczego to robimy?
W IT PZU cenimy autorskie rozwiązania. Bycie liderem w branży ubezpieczeniowej to nasza codzienność, a zachowanie konkurencyjności niejako wymusza na nas poszukiwanie nowych rozwiązań. JAPET to autorskie rozwiązanie oparte na chmurze prywatnej, które zbudowaliśmy w PZU. Jego zadaniem jest udostępnianie baz danych w technologii PostgreSQL zespołom wytwórczym, za pośrednictwem portalu samoobsługowego.
Powstanie tej platformy miało konkretne cele:
- Maksymalne skrócenie czasu niezbędnego do instalacji/konfiguracji/udostępnienia nowej bazy danych.
- Ważnym czynnikiem było również umożliwienie zespołom wytwórczym dostępu do samodzielnego powoływania nowych baz oraz wykonywania na nich podstawowych zadań administracyjnych.
- Zależało nam również na utrzymaniu 100% konfiguracji w kodzie oraz redukcji kosztów związanych z bieżącym utrzymaniem baz danych, dzięki maksymalnej automatyzacji i standaryzacji.
Słowem - powstanie JAPET było kwestią czasu i wynikiem połączenia wiedzy z technologią.
Jak do tego podeszliśmy?
Kluczowym celem była automatyzacja. Szukaliśmy rozwiązania, które zawiera w sobie jak najwięcej mechanizmów umożliwiających takie podejście, a jednocześnie minimalizujących koszty budowy całego, nowego rozwiązania. Nasz wybór, oczywiście mocno przemyślany, padł na Kubernetes oraz wyspecjalizowanego operatora o nazwie CloudNativePG. Budowa platformy pozwoliła skrócić czas oczekiwania na nową bazę danych z co najmniej kilku dni do pojedynczych minut. Poza tym zespoły wytwórcze mogły samodzielnie realizować wiele zadań administracyjnych, które do tej pory wymagały zaangażowania zespołu odpowiedzialnego za utrzymanie baz danych.
Brzmi znajomo? Dokładnie takie samo podejście stosowaliśmy budując platformy w obszarze PZU Cloud. Dodatkowo, dzięki wysokiemu zakresowi automatyzacji cyklu życia baz, znacząco zredukowaliśmy narzut administracyjny zespołu utrzymującego ta warstwę technologiczną.
Jakie technologie za tym stoją?
Dzięki Kubernetesowi nowe bazy danych powoływane są w dedykowanych kontenerach, natomiast operator odpowiada za automatyzację całego cyklu życia baz. Wykorzystaliśmy również rozwiązania aplikujące zmiany z repozytorium GIT bezpośrednio na klaster Kubernetes (ArgoCD), rozwiązanie wspierające zarządzanie certyfikatami (certmgr), umożliwiające integracje platformy z domeną AD (dex), oraz serwujące repozytorium obrazów wykorzystywanych przez kontenery (Harbor). Użytkownicy mogą zamawiać nowe bazy za pośrednictwem portalu SELF (o tym przeczytasz tutaj). Zadbaliśmy również o rozwiązanie wspierające realizację w trybie self-service szerokiego zakresu zadań administracyjnych (portal w Jenkins) oraz monitoring (DBPlus Monitor, Prometheus/Grafana).
Całą platformę zintegrowaliśmy z lokalną bazą konfiguracji CMDB, dzięki czemu wszystkie zmiany na niej zachodzące są tam automatycznie odzwierciedlane. Integracja dotyczyła również wewnętrznego systememu do zarządzania tożsamością i uprawnieniami. Zbudowana przez nas platforma umożliwia zespołom wytwórczym samodzielne powoływanie/kasowanie baz danych, zarządzanie użytkownikami, wykonywanie update’ów i upgrade’ów wersji baz, klonowanie baz i zmiany ich podstawowych parametrów konfiguracyjnych, wykonywanie backup’ów na żądanie, zarządzanie parametrami infrastrukturalnymi jak ilość CPU, pamięci, zasobów dyskowych.
Liczby tego projektu
- skrócenie czasu dostarczania baz ze średnio dwóch dni do około dwóch minut
- ok. 280 klastrów PostgreSQL powołanych na przestrzeni roku
- 6 systemów wspierających, zintegrowanych z platformą
Zapoznaj się z pozostałymi case studies z obszaru PZU Cloud:
- Wirtualny ocean – automatyczne zarządzanie i dostarczanie usług w wielkoskalowej i złożonej infrastrukturze PZU Cloud
- Platforma Sahul – Mikroświat w PZU