Service Management Layer (서비스 관리 레이어)
일반적으로 하나의 어플리케이션 및 서비스는 다수의 컨테이너로 구성된다. 특히 Kubernetes와 같은 오케스트레이션 엔진의 경우 컨테이너 외에도 서비스 포트, 컨트롤러, 볼륨등의 추가적인 객체를 필요로 한다. 따라서 컨테이너 기반의 어플리케이션 및 서비스를 관리하기 위해서는 컨테이너와 관련 객체를 패키징하고 관리하는 추상화 단위가 필요하다. 서비스 관리 레이어는 이를 담당하는 레이어다.
청지윈의 서비스 관리는 다음과 같은 계층 구조를 가진다.
- Service : 최상위 계층으로 서비스에 필요한 클러스터 자원, 이미지 레지스트리, 이미지 빌드를 할당 관리하는 그룹이다. 개발, 운영자의 역할에 따라 권한을 부여하여 독립적인 관리를 할 수 있다. 청지윈에서는 필요에 따라 다수의 서비스를 생성하고 팀 또는 서비스 별로 할당하여 관리 할 수 있다.
- Application Map : 어플리케이션의 구성과 관리를 하는 단위로 하나의 워크로드(Workload)에 대응 된다. 예를 들면 하나의 서비스가 개발계, 검증계, 운영계에 해당하는 어플리케이션 맵으로 구성될 수 있으며, 데이터 관리, 분석 시스템과 같이 역할을 기준으로 어플리케이션 맵을 구성 할 수도 있다. 논리적으로 어플리케이션 맵은 워크로드를 위한 다수의 컨테이너 구성을 관리하는 단위라 할 수 있다. 앞서 설명한 서비스는 하나 이상의 어플리케이션 맵으로 구성 된다.
- Cengjiyun Server : 컨테이너와 연관 오케스트레이션 객체를 패키징하는 단위이다. 어플리케이션 맵은 하나 이상의 청지 서버로 구성된다. 예를 들면 웹서버, DB서버등과 같은 컴포넌트를 기준으로 서버를 구성 할 수도 있고, 작은규모의 마이크로서비스도 청지윈 서버로 구성할 수 있다. 층적운 서버는 다음에서 좀 더 자세히 살펴 보도록 하겠다.
아래 그림은 서비스 관리 레이어의 구성을 도식화 한 것이다.
Cengjiyun Server
서비스 관리 레이어에서 가장 핵심적인 역할을 담당하는 것이 청지윈 서버이다. 앞서 언급했듯이 청지윈 서버는 컨테이너와 관련 오케스트레이션 객체를 패키징 하는 단위이다. 청지윈은 패키지 된 객체의 생성, 업데이트 등 라이프사이클을 관리하며 상태와 자원을 패키지 단위로 모니터링하고 관리한다.
아래는 이를 도식화 한 그림이다.
청지윈이 제공하는 관리기능에는 다음과 같은 것들이 있다.
워크로드의 생성, 수정(업데이트), 정지, 재기동, 삭제 오토 스케일링
롤링 업데이트
서비스 포트 관리
볼륨 관리
모니터링
인스펙팅 : 오케스트레이션 객체의 상태 및 배포 정보 조회
웹터미널, 로그 조회 : 컨테이너 쉘 접속. 컨테이너 로그 조회