쿠버네티스를 이해하려면 반드시 알아야 하는 불변의 인프라스트럭처
컨테이너 기술은 변경이 불가능한 Immutable Infrastructure ( 불변의 인프라스트럭처 ) 가 가장 중요한 개념입니다.
불변의 인프라스트럭처 ( Immutable Infrastructure ) 발표 자료 다운로드 받기
우리는 MS Windows 나 Apple MacOS 를 사용하면서 보안, 안정성 그리고 성능 등의 이유로 OS (운영체제) 를 자주 업데이트 합니다. OS는 시간이 지남에 따라 내용이나 설정이 수시로 변화가 발생하며, 새로운 애플리케이션를 설치할 때는 레지스트리도 변경합니다.
소프트웨어가 업데이트나 설정 변경 등을 반복하면서 최신 상태로 유지하는 것처럼 서버용 소프트웨어도 유사한 방법으로 관리하였습니다. 이렇게 서버가 시간 지남에 따라 상태가 변해가고 이로 인해 문제가 발생하는 것을 컨피규레이션 디리프트 ( Configuration Drift ) 라고 합니다.
머신에서 애플리케이션 중심으로의 전환 ( Application Centric Infrastructure ) 발표 자료 다운로드 받기
유튜브 동영상 보기
발표 슬라이드의 내용을 각각 살펴 보겠습니다.
불변의 인프라스트럭처 인 Immutable Infrastructure 에 대한 개념을 , 이해하기 위해서 가변의 인프라인 Mutable Infrastructure 와 중요한 특징들을 비교해 보겠습니다.
IT Infrastructure 에 대한 고민들
개발팀, 운영팀 , 데부옵스팀이 당면한 인프라스트럭처에 대한 고민들을 살펴보겠습니다.
빈번한 애플리케이션 변경 요청에 따라 하루에도 몇 번 씩 배포를 해야 합니다.
대규모 이벤트로 고객 폭증에 따라서 시스템을 준비해야 합니다.
빈번한 설정 변경과 시스템 작업들을 자동화할 수 있어야 하지만 현실은 어떤가요?
컨피그레이션 드리프트
Configuration Drift 는 물리 서버나 가상 서버 환경에서 각각의 서버 상태가 시간의 지남에 따라 초기 상태에서 서로 다르게 변경되는 것을 의미합니다.
그림에서 처럼 최초에는 동일하게 환경이 구성되었으나 시간이 지남에 따라 각각의 서버들의 패치 내역이나 로그 파일 사이즈와 내용들 그리고 배포된 파일들이 달라지게 되는 것입니다.
Immutable Infrastructure and Disposable Components
루비와 프로그램 관련 저자로 유명한 체드 파울러는 2013년 본인의 블로그에 임뮤터불인프라 스트럭처에 대한 글을 씁니다.
계속 업그레이드 되고 변해 가는 서버가 가장 해결하기 어려운 큰 골칫거리라는 것입니다. 쉬운 예를 들자면 사용하고 있던 피씨나 랩탑을 주기적으로 포맷해서 사용하는 이유와 비슷합니다.
Immutable Infrastructure
Immutable Infrastructure 는 변하지 않는 불변의 인프라스트럭처 로 번역됩니다.
운영 환경에 한번 설치된 서버는 상태가 절대 변하지 않습니다.
서버의 변경이 필요하면 폐기하고 다시 만들기 때문에 업그레이드가 필요 없습니다.
서버를 항상 깨끗하게 유지하여 Configuration Drift 현상에 대한 걱정이 없습니다.
Pets vs Cattlemmutable Infrastructure
불변의 인프라스트럭처는 애완동물과 가축에 대한 비유로 자주 설명 합니다.
애완동물은 이름을 붙이며, 아프면 병원에 데려가고 가족처럼 보살펴줍니다.
하지만 가축은 이름이 아닌 태그를 붙이고, 전염병이 있을 경우에는 처분하게 됩니다.
In-place Server Upgrade
시스템을 변경하면서 운영하는 방법을 가변의 인프라스트럭처 또는 뮤터블 인프라스럭처라고 부릅니다.
시스템 변경 작업이 있을 때마다 서버에 상태는 변화가 되며, 여러 대의 서버를 관리하고 있다면 각각의 서버 마다도 상태가 다르게 됩니다.
시스템 변경 작업에는 배포 업그레이드 보안 취약점 조치 그리고 장애에 대한 대응 등이 있습니다.
그 중에 업그레이드하는 과정을 살펴보면 서버에 접속하고, 어플리케이션을 정지시키고, 업데이트하고 ,리부팅하고, 테스트하기 위한 다운타임이 필요합니다.
Replace Server Upgrade
불변의 인프라스트럭처 는 배포 업그레이드 보안 취약점 조치 등의 서버 상태의 변경이 필요할 경우 이미지를 만들어 배포하는 방식입니다.
업그레이드 시에도 기존의 운영 환경은 버리고 새로운 상태의 서버 환경을 만드는 방법입니다.
Mutable vs. Immutable deployments pipelines
불변의 인프라스트럭처 는 배포 업그레이드 보안 취약점 조치 등의 서버 상태의 변경이 필요할 경우 이미지를 만들어 배포하는 방식입니다.
업그레이드 시에도 기존의 운영 환경은 버리고 새로운 상태의 서버 환경을 만드는 방법입니다.
References & Related Links
- 컨테이너기술의 장점 – http://www.opennaru.com/openshift/container/benefits-of-container/
- 컨테이너기술과 가상화 기술 비교 – http://www.opennaru.com/cloud/virtualization-vs-container/
- 물리서버 , 가상화 , 컨테이너기술 진화의 역사 – http://www.opennaru.com/cloud/physical-server-virtualization-container/
클라우드 네이티브 (Cloud Native) 소개
/in Kubernetes/by 오픈마루 마케팅0컨테이너 기술: 하이브리드 클라우드 핵심
/in Cluster, Container, Kubernetes, OpenShift/by 오픈마루 마케팅0컨테이너 기술: 개발자를 위한 필수 가이드
/in Cloud, Container, Kubernetes, OpenShift, Red Hat/by 오픈마루 마케팅0