Najpierw opisz to, co ma działać

Przygotuj listę aplikacji, systemów operacyjnych i zależności. Zapisz, jak dostawca przewiduje instalację, gdzie są przechowywane dane i kto przygotowuje aktualizacje. Innej organizacji wymaga gotowy program instalowany w systemie Windows, a innej rozwijana przez zespół aplikacja dostarczana jako obrazy kontenerów.

Dopisz obecne trudności. Czy problemem jest tworzenie kolejnych serwerów, brak porządku w ich zasobach, czy ręczne wdrażanie każdej wersji aplikacji? Ta odpowiedź pomaga ustalić zakres projektu. Sam wybór popularnej platformy nie daje jeszcze planu migracji ani jasnego podziału odpowiedzialności.

Proxmox VE: środowiska dla systemów

Proxmox VE korzysta z KVM do uruchamiania maszyn wirtualnych oraz z LXC do kontenerów systemowych. Udostępnia wspólne zarządzanie tymi zasobami, siecią i magazynami danych. Maszyna wirtualna ma własny system operacyjny, w którym można instalować wspierane przez niego aplikacje.

W praktyce punktem wyjścia może być uporządkowanie istniejących serwerów i przygotowanie powtarzalnych środowisk dla usług. Trzeba przy tym zaplanować zasoby, dostęp administratorów, aktualizacje i backup. Kontener LXC oraz kontener aplikacji zarządzany przez Kubernetes nie oznaczają tego samego modelu pracy, mimo wspólnego słowa w nazwie.

Kubernetes: stan i wdrażanie aplikacji

Kubernetes zarządza aplikacjami kontenerowymi na udostępnionych węzłach. Pozwala opisać oczekiwany stan, liczbę instancji i sposób aktualizacji. Może uruchamiać ponownie uszkodzone kontenery oraz kierować ruch do gotowych instancji, zgodnie z konfiguracją i dostępnymi zasobami.

Nie buduje jednak sam kodu aplikacji i nie dostarcza kompletnego procesu jej przygotowania. Dokumentacja Kubernetes wyraźnie oddziela tę platformę od narzędzi budowania oraz dostarczania oprogramowania. Przed wdrożeniem ustal więc, skąd pochodzą obrazy, jak są sprawdzane, kto zatwierdza zmianę i jak rozpoznasz poprawne działanie po aktualizacji.

Obie warstwy mogą współpracować

Węzeł Kubernetes może być maszyną fizyczną lub wirtualną. Można więc zaprojektować środowisko, w którym Proxmox uruchamia maszyny wirtualne, a te tworzą węzły Kubernetes. Jest to połączenie warstwy infrastruktury z warstwą zarządzania aplikacjami.

Przy takim układzie narysuj również zależności od sprzętu. Kilka wirtualnych węzłów działających na jednym fizycznym serwerze nadal zależy od jego dostępności. Rozmieszczenie instancji aplikacji trzeba rozpatrywać razem z rozmieszczeniem maszyn, siecią oraz przechowywaniem danych. Sama liczba węzłów widocznych w panelu nie opisuje odporności całego środowiska.

Zaplanuj utrzymanie każdej warstwy

Przypisz odpowiedzialność za sprzęt, systemy operacyjne, platformę i aplikacje. W planie uwzględnij aktualizacje, monitoring, odtwarzanie danych i obsługę dostępu. Jeżeli powstają dwie warstwy, trzeba wiedzieć, do kogo trafi problem z maszyną, a do kogo błąd wdrożenia aplikacji.

Zapisz też, które dane muszą przetrwać wymianę instancji. Mechanizm ponownego uruchamiania kontenera nie jest planem odtworzenia utraconych dokumentów ani bazy. Uzgodnij zakres kopii i odbioru aplikacji po odtworzeniu, niezależnie od platformy. Te ustalenia powinny powstać przed przeniesieniem danych produkcyjnych.

Podejmij decyzję na reprezentatywnym przypadku

Hipotetyczny przykład: organizacja potrzebuje odtworzyć istniejące środowiska Windows i Linux oraz uporządkować przydział zasobów. Pilotaż wirtualizacji pozwoli ocenić taki cel bez przebudowy aplikacji. W innym przypadku zespół rozwija usługi kontenerowe i chce powtarzalnie wdrażać ich wersje. Wtedy zasadne jest sprawdzenie sposobu pracy z Kubernetes.

Jeśli występują obie potrzeby, przygotuj wspólny projekt, ale osobne kryteria odbioru dla każdej warstwy. W pilotażu sprawdź instalację, aktualizację, diagnozę usterki i odzyskanie danych. Zapisz, jakie codzienne zadania pozostają po stronie zespołu. Wybór będzie wtedy wynikał z wykonanej próby i umiejętności potrzebnych do utrzymania rozwiązania.

Do sprawdzenia w Twojej firmie

  • Opisano aplikacje, sposób instalacji i zależności od danych.
  • Rozróżniono potrzebę wirtualizacji od zarządzania wdrożeniami aplikacji.
  • Rozmieszczenie węzłów uwzględnia zależności od fizycznego sprzętu.
  • Każda warstwa ma właściciela, plan aktualizacji i odtwarzania.
  • Pilotaż obejmuje działanie, zmianę wersji oraz obsługę awarii.

Źródła i dalsza lektura

Chcesz przełożyć to na swoje środowisko?

Dobieramy środowisko i sposób wdrażania do aplikacji, zespołu i kosztu utrzymania. Porządkujemy wirtualizację, kontenery oraz automatyzację od budowania paczki po sprawdzenie działającej usługi.

Proxmox, Kubernetes i DevOps