불변의 인프라스트럭처 – 아직도 서버를 애지중지 관리한다고?
불변과 가변의 인프라스트럭처에서 서버 운영 방법을 비교하여 개념과 장점을 설명 드립니다.
이제 IT 환경이 왜 머신 중심에서 애플리케이션 중심으로 전환되고 있는지에 대해서 살펴보겠습니다.
자 시작합니다.
Immutable Infrasturcture 유튜브 동영상 보기
애플리케이션 중심 인프라스트럭처 – Kubernetes 발표자료 다운로드
Immutable Infrasturcture – Kubernetes 발표자료 다운로드
발표 슬라이드의 내용을 각각 살펴 보겠습니다.
물리서버와 가상서버인 변경 가능한 인프라의 문제점 – Configuration Drift
서버의 경우에는 OS 설정 변경이나 업데이트 그리고 애플리케이션 배포가 자주 발생하는 경우에 서비스의 안정성에 큰 영향을 미치며, 서버 환경 자체가 파괴되는 경우도 있습니다.
언제 어느 부분이 변경되었는지 이력관리가 되지 않고, 변경 정보 공유가 되지 않으면 시스템 작업 시에 문제가 발생하여도 대처 방법을 알 수 없습니다.
이러한 문제를 해결하기 위한 방법이 바로 서버를 구축한 이후에는 변경이나 업데이트를 할 수 없게 하는 Immutable Infrastructure (불변의 인프라스트럭처 : 변경 불가능 한 인프라) 입니다.
불변의 인프라스트럭처의 배경
“변경 불가능한 인프라” 란 서버를 변경 불가능한 (Immutable) 것으로 취급하는 개념입니다.
만약 변경이 필요한 경우에는 아예 새로운 서버를 구축하는 방법입니다.
서버를 변경하지 못하도록 하여 얻을 수 있는 가장 큰 장점은 바로 “서버를 항상 깨끗 ( Clean) 한 상태한 상태로 유지” 하는 것입니다.
이 개념은 마치 DVD 로 소프트웨어를 배포할때 소프트웨어의 변경이 생기면 새로운 이미지로 DVD를 제작하는 개념입니다.
즉 서비스 운영환경을 호스트OS 와 분리한 후 이미지로 생성하여 서버에 배포하여 실행합니다.
서비스를 업데이트하는 경우에는 운영환경을 변경하지 않고 이미지를 새로 생성하여 배포하는 것입니다.
가변 vs 불변의 인프라 비교
불변의 인프라는 고급 도자기 찻잔과 비유 될 수 있습니다.
일회용 종이컵은 한번 쓰면 버리고, 구매하는데도 큰 부담이 없습니다.
하지만 고급 도자기 찻잔은 어떨까요?
애지중지 관리하며 깨지면 모든 것이 끝나게 됩니다.
가변 vs. 불변 인프라스트턱쳐 운영 방법 비교
가변 인프라 스탈 업체에서 아파치 웹 서버를 설치합니다.
아파치 웹 서버 소스를 다운로드 받고 컴파일 해야 합니다.
웹서버 구성 파일을 설정한 뒤 정상 동작하는지 확인합니다.
서버는 이제 웹 서버가 설치된 서버로 상태가 변경되었습니다.
오픈 전에 보안 취약점 테스트에 문제가 된 부분들이 되었습니다.
설치된 웹서버에 httpd 펌프 등 구성 파일들을 수정하고 정상 동작을 확인합니다.
서버는 보안 취약점 조치가 완료된 상태로 변경되었네요.
임시로 오픈하면서 사용자가 늘어나 부화가 발생하였습니다 .
특정 시간에 응답 시간이 느려지거나 아예 반응이 없는 경우도 있습니다.
문제 해결을 위해 아파치 웹 서버의 프로세스나 스레드 그리고 타임아웃 값들을 운영 수준으로 튜닝 하였습니다.
정식 오픈 후 사용자 대량 접속으로 서버를 20개까지 확장해야 합니다.
VM 생성하고 보안 취약점 조치부터 튜닝까지 20번을 반복하던지.
아니면 튜닝을 완료한 vm을 20개를 복사해서 사용해 해야 할까요?
서버들의 상태는 모두 다르게 될 것입니다.
물리 서버나 가상 서버와 같은 가변의 인프라 스트럭처는 서버의 상태가 계속해서 변경됩니다.
불변의 인프라 스트럭처에서 아파치 웹 서버 설치는 어떻게 다른지 살펴보겠습니다 아파치 웹 서버 이미지를 컨테이너로 실행하면 설치는 완료됩니다.
컨테이너 환경에서 스케일아웃은 기존의 환경보다 월등히 편리하다는 것을 확인할 수 있습니다.
그럼 보안 취약점 조치를 한다면 기존 방법과 어떤 차이점이 있을까요?
취약점 조치가 완료된 이미 다시 빌드 합니다. 그리고 롤링 업그레이드 기능을 해서 무중단으로 서비스를 유지하면서 배포합니다.
기존 쓰는 자동으로 폐기됩니다.
서비스 가오픈을 위한 튜닝이 필요한 경우에는 튜닝된 이미지를 만듭니다.
이미지는 마치 DVD 처럼 dvd 플레이어 넣고 돌리면 컨테이너가 플레이 되는 것입니다.
서비스 중단 없이 이미지는 차례대로 컨테이너로 실행하고, 기존 컨테이너는 폐기 됩니다.
불변의 인프라스트럭처 환경에서 20개까지 서버를 확장한다면 어떻게 할까요?
지금까지 완료한 최종 이미지를 20번 실행시켜주면 됩니다.
이 이미지는 하이브리드 클라우드를 지원하여 퍼블릭 클라우드에서도 동작합니다.
머신 중심에서 애플리케이션 중심 인프라로 변화
물리서버나 가상서버 환경에서는 머신이 중요했습니다.
불변의 인프라 환경에서 머신은 더 이상 소중히 다룰 필요가 없습니다.
컨테이너 기술은 운영팀과 개발팀에게 머신을 추상화하여 애플리케이션 중심으로 전환할 수 있게 해줍니다.
아직도 서버를 애지중지 키우시고 계신 가요?
- “어제까지는 문제 없는데. 오늘 작업하신 분 계세요?”
- “누구 마음대로 리 서버에 막 배포하시는 거예요? 혹시 경험이 있으신가요?”
뮤터블 인프라스트럭처에서 서버는 더 이상 중요하지 않습니다.
아직도 서버를 애지중지 키우시고 계신 거 아니시죠?
References & Related Links
- Trash Your Servers and Burn Your Code: Immutable Infrastructure and Disposable Components by Fowler, Chad – http://chadfowler.com/2013/06/23/immutable-deployments.html
- What Is Immutable Infrastructure? – https://www.digitalocean.com/community/tutorials/what-is-immutable-infrastructure
- 가장 빨리 만나는 Docker 1장 Docker – http://pyrasis.com/book/DockerForTheReallyImpatient/Chapter01
- BlueGreenDeployment by Martin Fowler – https://martinfowler.com/bliki/BlueGreenDeployment.html
- The Netflix Tech Blog : Deploying the Netflix API – https://medium.com/netflix-techblog/deploying-the-netflix-api-79b6176cc3f0
- 컨테이너기술의 장점 – 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/
CentOS 단종 – 보안 이슈 고려하여 무료 레드햇 리눅스 사용하기
/in Container, Kubernetes, Linux/by 오픈마루 마케팅1마케터가 이해하는 쿠버네티스 – 쿠버네티스는 교통경찰이다?
/in Kubernetes/by 오픈마루 마케팅1클라우드 네이티브는 아는데 Immutable Infrastructure는 모르신다고요?
/in Cloud, Container, Kubernetes/by 오픈마루 마케팅1