brief.ing.gg

WIKI

Immutable Linux

Immutable Linux

시스템 영역을 불변에 가깝게 관리하는 Linux 배포 방식은 왜 업데이트 안정성을 높이는가.

Scope

핵심 질문

Immutable 또는 image-based Linux는 base operating system을 어떤 방식으로 업데이트하고 전통적인 package 기반 시스템과 무엇이 다른가?

Research

핵심 근거

  • image-based distribution은 base OS를 개별 package transaction이 아니라 검증된 image/deployment 단위로 교체한다.
  • rollback과 reproducibility가 쉬워지고 system drift가 줄어든다.
  • application은 Flatpak, container, layered package 등 별도 메커니즘으로 분리되는 경우가 많다.

Draft

Immutable Linux는 root filesystem을 절대 변경할 수 있다는 뜻보다 base OS를 사용자가 임의로 계속 수정하지 않고 image 단위로 관리하는 운영모델을 가리킨다.

업데이트

전통적인 배포판은 현재 root에 package를 하나씩 변경한다. Image-based 시스템은 새 deployment를 준비한 뒤 다음 boot에 전환하는 방식이 많다.

Rollback

이전 deployment가 남아 있으면 새 업데이트에서 문제가 생겼을 때 빠르게 되돌릴 수 있다.

애플리케이션 분리

GUI 앱은 Flatpak, 개발도구는 container/toolbox에 설치해 base OS 변경을 최소화한다.

장점과 단점

업데이트 재현성과 안정성이 높아지는 대신 system package를 자유롭게 수정하는 전통적인 Linux workflow와는 맞지 않을 수 있다.

핵심

Immutable Linux의 목표는 변경을 금지하는 것이 아니라 base system의 변경경로를 제한하고 예측 가능하게 만드는 것이다.