가장 초기 서버 관리는 문서화를 통해 이루어졌다.
하지만, 문서를 통해 유지 관리하는 것은 실질적으로 어려운 부분들이 많았다. (문서를 보고 실행을 해도 되지 않거나, 버전이 바뀌면 무용지물이 되는 등의 문제점 존재)
다음으로 CHEF, puppet과 같은 툴을 사용하여 서버를 관리하는 방식이 나타났지만, 서버가 복잡해질수록 해당 툴 사용법들도 복잡해지는 문제점이 존재했다.
가상머신이 다음으로 나타났지만, 클라우드 환경과의 통합의 문제와 속도가 느리다는 단점이 존재했다.
모든 실행환경을 컨테이너로 동작할 수 있도록 해준다.
어디서든 동작하고 사용법도 쉽고 속도도 빠르다.
서버 관리의 복잡함을 해소시켜주었다.
출처: https://www.youtube.com/watch?v=Ia8IfowgU7s&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb
가상 머신과 비교하여 컨테이너 생성이 쉽고 효율적이다.
컨테이너 이미지를 이용한 배포와 롤백이 간단하다.
언어나 프레임워크에 상관없이 애플리케이션을 동일한 방식으로 관리한다.
개발, 테스팅, 운영 환경은 물론 로컬 PC와 클라우드까지 동일한 환경을 구축할 수 있다.
특정 클라우드 벤더에 종속적이지 않다.
서비스의 규모가 커질수록 다수의 컨테이너를 관리하기가 어려워진다.
컨테이너 하나하나 일일히 관리하기 어렵다.
서비스 이상, 부하 모니터링이 힘들다.
롤아웃/롤백 같은 버전 관리가 힘들다.
복잡한 컨테이너 환경을 효과적으로 관리하기 위한 도구이다.
기존 서버 관리자가 하는 일들을 대신 해주는 프로그램이다.
Kubernetes(K8S), AWS EKS, Docker Swarm 등과 같은 서비스들이 존재한다.
출처: https://www.youtube.com/watch?v=Ia8IfowgU7s&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb
출처: https://www.youtube.com/watch?v=Ia8IfowgU7s&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb
컨테이너 오케스트레이션에서는 노드 단위가 아닌 클러스터 단위로 관리를 하게 된다.
마스터 노드를 통해 클러스터 내의 노드들을 관리한다.
클러스터 내의 노드끼리는 네트워크 통신이 원할히 되도록 설정해줘야 한다.
다수의 노드가 동작해도 문제가 없도록 노드 스케일을 신경써야 한다.
출처: https://www.youtube.com/watch?v=Ia8IfowgU7s&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb
컨테이너 오케스트레이션은 컨테이너의 상태들을 주기적으로 확인하며 관리한다.
예를 들어, 컨테이너에 문제가 생기면 해당 컨테이너를 제거하고 새로운 컨테이너를 생성하게 된다.
출처: https://www.youtube.com/watch?v=Ia8IfowgU7s&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb
출처: https://www.youtube.com/watch?v=Ia8IfowgU7s&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb
출처: https://www.youtube.com/watch?v=Ia8IfowgU7s&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb
출처: https://www.youtube.com/watch?v=Ia8IfowgU7s&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb