서버 관리의 변화
•
서버 관리가 매우 어려움
•
문서화를 잘하자 → 그래도 어려웠음 (환경, 버전 변경시)
따라서 이러한 tool을 써서 서버를 설정을 관리했었음
가상머신
•
충돌 날 일이 없다
•
하지만 요즘 클라우드가 대세
•
기본적으로 느리다
도커
•
굉장히 효율적
•
어디서든 동작
컨테이너의 특징
•
가상머신과 비교하여 컨테이너 생성이 쉽고 효율적
•
컨테이너 이미지를 이용한 배포와 롤백이 간단
•
언어나 프레임워크에 상관없이 애플리케이션을 동일한 방식으로 관리
•
개발, 테스팅, 운영 환경은 물론 로컬 피시와 클라우드까지 동일한 환경을 구축
•
특정 클라우드 벤더에 종속적이지 않음
모든것을 컨테이너로 관리하기 시작함
도커가 나오고 나서 모든 프로그램 개발 과정이 정형화 됨
컨테이너 수가 계속 늘어나게 됨, 따라서 도커 또한 관리하기가 어려워짐
도커 그 이후는?
•
배포를 어떻게 할까?
하나씩 서버를 설정해주어야 함
•
롤아웃/롤백이 너무 귀찮아짐
•
규모가 커질 수록 도커의 한계가 들어나기 시작함
마이크로 서비스의 등장으로 너무나 많은 로드 밸런서 설정을 해주어야 함
따라서 많은 컨테이너들을 관리해주기 좋은 도구가 생겨나게 됨
Container Orchestration
서버 관리자가 대신해주는 프로그램을 만듬
CLUSTER
•
중앙 제어
•
컨테이너를 클러스터 단위로 추상화 해서 관리
•
MASTER 서버 하나로 cluster에 명령
•
Cluster 안에서 서버들끼리 통신 가능
STATE
•
상태관리 자동화
SCHEDULING
•
배포 관리
•
효율적으로 서버 리소스를 관리 및 자동화
ROLLOUT & ROLLBACK
•
버전 관리
•
중앙에서 한 번에 자동화
SERVICE DISCOVERY
•
서비스 등록 및 조회
•
프록시 서버에서 프로세스 설정 변경 자동화
VOLUME
•
스토리지 연결을 자동화
초반에는 다양한 제품이 만들어졌음
하지만 최종적으로 쿠버네티스가 Container Orchestration의 표준으로 자리 잡게 된다.