Atomowe aktualizacje dla maszyn, których nie odwiedzisz
Aktualizacja oparta na pakietach to sekwencja drobnych zmian nakładanych na działający system. Przerwij ją — zanik zasilania, pełny dysk, nieudana zależność — a maszyna zostaje w stanie, którego nie było w niczyim planie: pół nowej wersji, pół starej i baza pakietów niezgodna z systemem plików. Na laptopie to irytujący wieczór. Na robocie w magazynie albo urządzeniu w czyjejś kieszeni to bus, popołudnie i bardzo niezręczna rozmowa.
Dlaczego stary model nie pasuje
Zarządzanie pakietami zaprojektowano dla maszyn z administratorem w pobliżu. To założenie niesie trzy konsekwencje, które na brzegu sieci się łamią.
Aktualizacje są przyrostowe, więc stan końcowy zależy od stanu początkowego. Dwie maszyny uruchomione w odstępie pół roku, aktualizowane w innych terminach, nie mają tego samego systemu, nawet jeśli numery wersji się zgadzają.
Awaria jest częściowa. Nie ma jednego punktu, w którym zmiana albo się wydarzyła, albo nie. Procedurą naprawczą jest człowiek z wiedzą, a nie mechanizm.
Wycofanie jest fikcją. Cofanie wersji pakietów czasem działa. Nie jest ścieżką wspieraną, nie przywraca stanu zmienionego przez skrypt poinstalacyjny i nikt tego nie testuje.
Co atomowość znaczy w praktyce
Cały system jest jednym artefaktem. Aktualizacja polega na zapisaniu kompletnego nowego obrazu do drugiego slotu i przełączeniu wskaźnika przy następnym rozruchu. Albo maszyna wstaje na nowym obrazie, albo nie — i nie ma trzeciego stanu.
Wynikają z tego cztery właściwości i to jest cały argument.
Identyczne maszyny. Każde urządzenie w wersji N ma te same bajty. „Na tamtej działa” przestaje być możliwe, co usuwa cały gatunek zgłoszeń serwisowych.
Przerwania są bezpieczne. Zanik zasilania w trakcie zapisu zostawia stary slot nietknięty. Maszyna wstaje na tym, na czym wstawała wczoraj.
Wycofanie to wskaźnik. Poprzedni obraz nadal jest na dysku. Powrót to restart, a nie procedura ratunkowa — co znaczy, że naprawdę stać Cię na spróbowanie aktualizacji.
Automatyczne wycofanie. Jeśli nowy obraz wstaje, ale nie przechodzi kontroli zdrowia, system sam wraca na poprzedni slot. To ta właściwość czyni bezobsługowe aktualizacje floty możliwymi do przeżycia — i tę najczęściej się pomija.
Ile to kosztuje
Dysk. Dwa pełne obrazy systemu zamiast jednego, co na współczesnych nośnikach jest tanie, a na bardzo małych urządzeniach jest realną decyzją projektową.
Dyscyplinę wobec stanu. Skoro system wymienia się w całości, wszystko, co ma przetrwać, musi mieszkać w zdefiniowanym obszarze zapisywalnym. Konfiguracja, tożsamość maszyny, klucze, wagi modeli, dane aplikacji — każde jako jawna decyzja, a nie plik, który przypadkiem zedytowano w miejscu. Ta praca jest trudniejsza, niż brzmi, i to ona sprawia, że przywrócenie do ustawień fabrycznych, backup i wymiana urządzenia stają się prostymi operacjami.
Większe pobrania. Pełny obraz zamiast kilku pakietów, łagodzone transferami różnicowymi, a na wąskich łączach pozostające realnym kompromisem.
Argument flotowy
Przypadek pojedynczej maszyny jest wygodny. Powodem, żeby to zrobić, jest flota.
Rozłożenie aktualizacji na sto urządzeń przy zarządzaniu pakietami oznacza sto lekko różnych stanów wyjściowych i obciążenie serwisowe proporcjonalne do tej różnorodności. To samo wdrożenie przy obrazach oznacza jeden artefakt, etapowe rozłożenie, kontrole zdrowia i automatyczny powrót do poprzedniej wersji dla wszystkiego, co zawiedzie.
To zamienia aktualizowanie z wydarzenia, które ludzie odkładają, w coś, co dzieje się według harmonogramu — a w kategoriach bezpieczeństwa to cała gra. System, który łatwo zaktualizować, jest systemem, który faktycznie jest aktualizowany.
- atomowe aktualizacje
- wycofanie
- flota
- niezawodność