✅ [C911] 가변적(mutable) 인프라와 불변적(immutable) 인프라의 차이는 무엇인가요?
가변 인프라와 불변 인프라 사이의 가장 근본적인 차이는 central policy에 있다.
Mutable Infrastructure:
서버를 수동으로 수정할 수 있다.
서버에 로그인하여 구성을 변경하고 패키지를 설치/수정할 수 있습니다.
Immutable Infrastructure:
일단 배포되면 서버를 수정할 수 없다.
구성을 변경해야 하는 경우 기존 이미지를 업데이트하고 새 서버를 가동하여 이전 이미지를 교체할 수 있습니다.
서버가 실행되는 동안에는 구성 또는 코드 변경이 허용되지 않습니다.
좀 더 자세히 설명하자면, 서버 기반의 가변 인프라와 불변 인프라 사이에는 practical 및 conceptual 적인 차이가 있다.
conceptual
두 종류의 인프라는 서버를 어떻게 다루어야 하는지에 대한 접근 방식(예: 생성, 유지 관리, 업데이트, 제거)이 크게 다릅니다. 이것은 일반적으로 "pets vs cattle”의 비유로 설명된다.
DevOps Concepts: Pets vs Cattle
https://iamondemand.com/blog/devops-concepts-pets-vs-cattle/
practical
Mutable 인프라는 가상화 및 클라우드 컴퓨팅과 같은 불변의 인프라를 실현하고 실용적으로 만드는 핵심 기술보다 훨씬 오래된 인프라 패러다임이다.
이 역사를 알면 둘 사이의 개념적 차이와 현대 인프라에서 하나를 사용하거나 다른 하나를 사용하는 것의 의미를 contextualize 하는 데 도움이 된다.
오늘날의 분산 시스템은 불변의 인프라 개념을 채택하고 있다.
시스템 아키텍처에 불변성을 적용하여 구축하면 몇가지 이점이 있다.
간단히 요약하자면, 변경할 수 없는 인프라가 있다는 것은 서버의 구성을 변경하고자 할때, 기존 서버에서 수정하는것이 아닌 업데이트된 구성으로 새로운 서버를 구축한다는 의미이다.
What is drift?
리소스의 실제 속성 값이 예상 속성 값과 다른 경우 리소스가drift
된 것으로 간주한다. Drift detection를 사용하면 스택의 실제 구성이 예상구성과 다르거나 드리프트 되었는지 여부를 감지할 수 있다.