컨테이너 인프라 환경은 크게 컨테이너, 컨테이너 관리, 개발 환경 구성 및 배포 자동화, 모니터링으로 구성된다.
각각 현업에서 가장 많이 쓰이는 도구 위주로 소개하겠다.
컨테이너 – 도커
도커(Docker)는 컨테이너 환경에서 독립적으로 애플리케이션을 실행할 수 있도록 컨테이너를 만들고 관리하는 것을 도와주는 컨테이너 도구이다.
운영 체제 환경에 관계없이 독립적인 환경에서 일관된 결과를 보장한다.
컨테이너 관리 – 쿠버네티스
쿠버네티스(Kubernetes, k8s)는 다수의 컨테이너를 관리하는 데 사용 되는 도구이다.
컨테이너의 자동 배포와 배포된 컨테이너에 대한 동작 보증, 부하에 따른 동적 확장 등의 기능을 제공한다.
컨테이너 인프라 기반으로 API 게이트웨이, 서비스 디스커버리, 이벤트 버스, 인증 및 결제 등의 다양한 서비스(== 마이크로서비스)를 효율적으로 관리할 수 있는 환경을 제공하고 이를 내외부와 유연하게 연결해 준다.
컨테이너 – 젠킨스
젠킨스는 지속적 통합(CI, Continuous Integration)과 지속적 배포(CD, Continuous Deployment)를 지원한다.
지속적 통합과 지속적 배포는 개발한 프로그램의 빌드, 테스트, 패키지화, 배포 단계를 모두 자동화해 개발 단계를 표준화하여 개발 생산성을 높인다.
컨테이너 인프라 환경처럼 단일 기능을 빠르게 개발해 적용해야 하는 환경에 매우 적합한 도구이다.
컨테이너 – 프로메테우스, 그라파나
프로메테우스(Prometheus)와 그라파나(Grafana)는 모니터링을 위한 도구이다.
프로메테우스는 상태 데이터를 수집하고, 그라파나는 수집한 데이터를 관리자가 보기 좋게 시각화한다.
컨테이너 인프라 환경에서는 많은 종류와 소규모 기능이 각각 나누어 개발되기 때문에 중앙 모니터링이 필요하다. 이때 프로메테우스와 그라파나의 조합이 크게 효과적이다.
프로메테우스와 그라파나는 컨테이너로 패키징돼 동작하며, 최소한의 자원으로 쿠버네티스 클러스터의 상태를 시각적으로 표현한다.
[참조] 길벗 – 컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커