Posted in

RHEL 10 Image Mode: System jako Obraz

Kto nie ma w infrastrukturze tego jednego serwera, którego wszyscy boją się zrestartować? Tego, na którym coś było grzebnięto w konfiguracji, nikt nie wie co, ale jak to ruszymy, to system nie wstanie. Nazywamy to ładnie „dryfem konfiguracji” (configuration drift), ale jest to po prostu tykającą bombą. I RHEL 10 w wersji Image Mode wchodzi tutaj, żeby tę bombę rozbroić. Zamiast leczyć objawy, zmienia fundamenty.

Immutable OS (i jak się ma do tego Image Mode)?

Zanim jednak przejdziemy dalej, musimy sobie wyjaśnić jedno pojęcie. Immutable OS (Niezmienny System Operacyjny) to koncepcja architektoniczna, w której system plików po zainstalowaniu jest domyślnie zablokowany w trybie „tylko do odczytu” (read-only).

W tradycyjnym modelu (Mutable) system żyje i ewoluuje,dzisiaj instalujesz Apache, jutro łatasz bibliotekę glibc, pojutrze zmieniasz uprawnienia w /usr/bin. Po roku taki system jest unikatem, którego nie da się odtworzyć.

W modelu Immutable:

  • System nie jest „zmieniany”. Jest wymieniany.
  • Aktualizacja nie polega na nadpisaniu plików. Polega na podstawieniu zupełnie nowego obrazu systemu w całości i przełączeniu wajchy przy restarcie.

I tutaj wchodzi RHEL 10 Image Mode. To nie jest nazwa nowego systemu, to nazwa implementacji mechanizmu Immutable OS w wykonaniu Red Hata. To konkretna technologia, która pozwala wziąć tę akademicką ideę niezmienności i wdrożyć ją na produkcji przy użyciu narzędzi, które już masz w firmie.

To nie jest eksperyment, to standard, który już znasz

Zanim zaczniecie kręcić nosami, że Red Hat wymyśla koło na nowo, rozejrzyjcie się dookoła. Koncepcja tak zwanyhc Immutable OS (Niezmiennego Systemu Operacyjnego) to nie jest nowinka. To jest standard w każdym nowoczesnym urządzeniu, które ma po prostu działać i się nie psuć.

Spotykamy się z tym na co dzień, tylko rzadko przenosiliśmy to na serwery Enterprise:

Android / iOS: Twój telefon ma partycję systemową „Read-Only”. Aplikacje nie mogą nadpisać plików systemowych. Dzięki temu aktualizacja jest bezpieczna i kryptograficznie podpisana.

Steam Deck: Przenośna konsola od Valve. Partycja systemowa jest niezmienna. Użytkownik może szaleć w swoim katalogu domowym, ale nie zepsuje systemu, instalując grę.

Fedora Silverblue / Red Hat CoreOS (RHCOS): To były poligony doświadczalne w świecie Linuxa. Silverblue na desktopie, RHCOS pod Kubernetesem (OpenShift).

RHEL 10 po prostu bierze to, co sprawdzone w tych systemach, i mówi: „Dobra, czas, żeby poważne serwery też tak działały”.

O co tyle hałasu? (Obraz vs Pakiet)

W skrócie: Twój system operacyjny to teraz jeden, spójny artefakt.

Zapomnij o ISO i plikach Kickstart, które pisałeś dekadę temu. W RHEL 10 Image Mode nie „instalujesz” systemu kawałek po kawałku (trochę RPM-ów stąd, trochę configów stamtąd). Ty ten system wdrażasz w całości.

  1. Definiujesz obraz (co ma w nim być: kernel, apache, twoje skrypty).
  2. Budujesz go raz (build time).
  3. Ten sam, identyczny bitowo obraz ląduje na deweloperce, testach i produkcji.

System przestaje być plasteliną, w której dłubiemy na żywym organizmie. Staje się odlewem.

Kojarzy wam się to z czymś? Jeśli pomyśleliście o kontenerach, to strzał w dziesiątkę. Tak, to dokładnie ta sama filozofia, tylko przeniesiona „piętro niżej”, na poziom samego systemu operacyjnego. Image Mode czerpie garściami z idei konteneryzacji: budujesz raz, uruchamiasz wszędzie, a całość jest atomowa i niezmienna. To w zasadzie konteneryzacja całego OS-a.

Jak to działa pod maską? (Technologia bootc)

To twarda inżynieria oparta na projekcie bootc. W dużym uproszczeniu: system jest pakowany w format OCI (tak, ten sam standard co w wirtualizacji lżejszego typu), ale zawiera w sobie jądro Linuxa i bootloader. Kiedy taki system startuje, mechanizmy znane wcześniej z OSTree mapują ten obraz na fizyczny dysk. Nie musisz znać komend OSTree . Dla ciebie to po prostu system, który wstaje z obrazu, a nie z lokalnego repozytorium pakietów.

Gdzie system cię zablokuje? (Nowe zasady BHP)

To jest ten moment, gdzie musisz zmienić myślenie, albo zginiesz. Wchodzisz na serwer przez SSH, wpisujesz z przyzwyczajenia dnf install htop i… BŁĄD. Ściana. System plików ma nowe reguły gry.

/usr jest tylko do odczytu (Read-Only). Zabetonowany. Chcesz dodać narzędzie? Musisz dodać je do definicji obrazu i go przebudować. Nie ma „szybkiego doinstalowania na boku”. To gwarantuje, że nikt nie zrobi bałaganu w bibliotekach systemowych bez śladu.

/etc to strefa negocjacji. Tu możesz zmieniać konfigurację, ale system robi tzw. „3-way merge” przy aktualizacji. Próbuje inteligentnie pogodzić to, co ty zmieniłeś ręcznie, z tym, co przyszło w nowym obrazie.

/var to twoje podwórko. Tutaj trzymasz dane, logi, bazy danych. Tego system nie nadpisuje przy aktualizacjach. Ważna uwaga: jak wrzucisz coś istotnego (np. aplikację) poza /var na żywym systemie, to przy następnej aktualizacji po prostu to zniknie. Zostaliście ostrzeżeni.

Dlaczego to jest „game changer”?

Wyobraź sobie klasyczną awarię: Wypuszczasz update systemu na 500 maszyn. Okazuje się, że nowy kernel gryzie się z waszą kluczową aplikacją.

W starym świecie (Package Mode): Siedzisz trzy noce, piszesz skrypty naprawcze, modlisz się, żeby wycofanie transakcji YUM zadziałało (a wiemy, że bywa z tym różnie).

W świecie Image Mode:

  • System widzi, że nie wstał poprawnie (dzięki mechanizmowi greenboot).
  • Robi automatyczny rollback do poprzedniej wersji obrazu.
  • Restartuje się.
  • Ty rano przychodzisz do pracy, pijesz kawę i widzisz w logach: „Update failed, rolled back”. Wszystko działa na starej, sprawdzonej wersji.

To jest ta różnica. Traktujemy serwery jak zasoby wymienne, a nie jak unikalne dzieła sztuki, które trzeba głaskać.

Czy to czas na zmianę nawyków

Sam od dawna gram na Steam Decku, regularnie aktualizuję Androida w kieszeni, ale nigdy nie połączyłem kropek, że to właśnie tak działa pod spodem. Że ta stabilność wynika z tego, że system jest obrazem, a nie zbiorem luźnych plików. Używamy tego na co dzień w domu, a w pracy nasze serwery wciąż traktujemy jak delikatne jajka.

To zapewne jest przyszłość. Model „dłubania w pakietach” powoli odchodzi do lamusa. Skoro konsola do gier potrafi się aktualizować bezpieczniej niż system Enterprise, to znak, że czas na zmianę.

źródła: https://developers.redhat.com/products/rhel-image-mode/getting-started