Streszczenie:
Chmura obliczeniowa stała się w z ostatnich latach bardzo popularna. Obecnie niemal
każda firma przeniosła chociaż część swojej infrastruktury informatycznej z serwerów prywatnych
do chmury. Jest to zrozumiałe, gdyż zabieg taki niesie za sobą szereg korzyści takich jak: oszczędności
związane z brakiem potrzeby zakupu sprzętu fizycznego, elastyczność, wysoki poziom niezawodności,
łatwy model przewidywania kosztów i wiele innych. Wraz ze wzrastającym zapotrzebowaniem
na korzystanie z chmur obliczeniowych, pojawiają się coraz to nowsze pozycje na
liście ofert proponowanej przez dostawców usług chmurowych. Najpopularniejszym modelem oferowania
usług stał się tak zwany XaaS (ang. Anything as a service), co oznacza „cokolwiek jako
usługa”. Jedną z takich usług jest Database-as-a-Service (w skrócie DBaaS), czyli baza danych
jako usługa.
Celem pracy jest znalezienie odpowiedzi na pytanie, czy Kubernetes jest wystarczająco
dojrzały aby mógł być środowiskiem w którym można uruchamiać produkcyjne bazy danych. Kubernetes
był początkowo zaprojektowany do zarządzania aplikacjami bezstanowymi, jednakże
wraz z pojawieniem się Operatorów, możliwe stało się również właściwe zarządzanie aplikacjami
stanowymi, takimi jak bazy danych, gdzie do właściwego działania potrzebna była implementacja
logiki specyficznej dla danej aplikacji.
W ramach niniejszej pracy została zaprojektowana oraz stworzona infrastruktura chmurowa
oferująca usługę bazodanową (Postgres). W części teoretycznej przedstawione zostało minimum
wiedzy potrzebnej do zrozumienia zaprojektowanej usługi i jej poszczególnych elementów.
Przedstawiono również kluczowe elementy składające się na całą infrastrukturę jak i pełnione
przez nie role. Usługa została oceniona pod kątem cech charakterystycznych dla tego typu serwisów.
Przeprowadzone zostały również eksperymenty skalowania, zmiany wersji i tworzenia kopii
zapasowej, aby sprawdzić czy baza zachowuje obiecaną wysoką dostępność podczas takich operacji.
W pracy wykazano, że Kubernetes jest wystarczająco dojrzały, aby mógł być platformą do
uruchamiania produkcyjnych baz danych takich jak Postgres, jednakże wymaga użycia odpowiedniego
Operatora (przykładowo takiego jak w tej pracy) oraz ingerencji ze strony programisty, by
zaprojektował i zaimplementował odpowiednią logikę tam gdzie Operatorowi jej brakuje.