skip to Main Content

컨테이너 통합 관리 솔루션 Use Case (2)

지난 포스트 ” 컨테이너 통합 관리 솔루션 Use Case (1)” 에 이어서, 컨테이너 통합 관리 솔루션이 어떻게 사용되는지 안내해 드리도록 하겠습니다.

CASE 4. DevOps를 위한 CI/CD 지원

DevOps는 개발(Dev)과 운영(Ops)을 함께하는 것을 의미합니다. 시스템을 빠르게 개발, 배포 및 운영하기 위한 조직 문화를 기반으로 하여 정형화되고 반복적인 일을 자동화하는 프로세스 단순화가 핵심입니다.    

DevOps는 장애 발생 및 시장 변화에 신속하게 대처하고 안정적인 서비스 품질을 보장할 수 있으며, 개발자들과 운영자들이 더욱 긴밀하게 협업할 수 있기 때문에 비효율적인 업무를 줄여 시간을 절약할 수 있습니다.

DevOps 구현을 위해 고려해야 할 여러 요소 가운데 핵심은 자동화이며, 그 가운데 가장 많이 언급되는 것이 바로 CI/CD입니다.

개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방식으로, 애플리케이션의 통합 및 테스트 단계부터 배포에 이르는 라이프사이클 전체에 걸쳐 지속적인 자동화와 모니터링을 제공합니다.

자동화된 플랫폼을 제공하기 위해서는 벤더에 종속적이지 않으면서 사용자가 쉽게 운영 및 접근할 수 있는 인프라 관리 기술이 필요합니다. 이러한 기술로 많이 언급되는 것이 컨테이너입니다.

컨테이너 기반의 환경 구성은 경량화된 시스템을 추구합니다. 이에 따른 속도 향상, 용이한 컨테이너 간 이동 및 마이크로 서비스 적용, 스케일링 향상, 유연한 결합 및 서비스 확산이라는 효과까지 제공합니다.

CI/CD 프로세스를 통해 생성된 컨테이너 이미지는 로컬 개발 환경, 서버 환경 등 어디든 배포 및 실행 되며, 운영과 동일한 환경으로 테스트를 수행할 수 있습니다. 이런 컨테이너 빌드 및 배포의 전 과정은 컨테이너 통합 관리 솔루션 ‘아코디언’을 통해 손쉽게 자동화할 수 있습니다.

CI/CD 파이프라인을 간편하게 사용하면서 유연한 환경을 구성할 수 있습니다. 또한 생성된 컨테이너 이미지는 버전 관리가 가능하며, 유사한 형태로 베이스 이미지를 만들어 재사용 및 공유할 수 있습니다. 배포 역시 빌드 후 자동으로 이루어집니다.   

그렇다면 쿠버네티스와 컨테이너 기반의 DevOps를 위한 CI/CD의 고려사항은 무엇일까요?

개발자가 쿠버네티스 기반에서 개발 및 테스트 후 개발 서버에 반영한다고 가정해 보겠습니다. 개발자는 소스 코드 작성 및 저장 후 컴파일을 하고 Dockerfile을 이용하여 컨테이너로 이미지화한 뒤 레파지토리에 업로드 합니다. 명령어를 통해 쿠버네티스에 이미 배포된 Pod의 이미지를 업로드한 이미지로 교체 하여 시스템에 반영합니다. 정상 배포 여부를 확인하기 위해서는 테스트 하면서 Pod의 터미널에 접속하거나, 명령어를 통해서 로그를 확인해 봐야 합니다.

개발자가 소스코드를 수정 할 때 마다 이런 반복된 과정을 거치게 되면 개발 집중력이 현저하게 저하될 수 있습니다. 이러한 문제를 해결하기 위해서는 수정된 소스코드가 클러스터에 배포 및 반영되기까지의 과정을 자동화하여 프로세스를 단순화는 툴이 필요합니다.

컨테이너 통합 관리 솔루션 ‘아코디언’에서는 소스코드 저장소 연동부터 쿠버네티스 클러스터에 배포하고 반영하기 까지 일련의 과정들을 Jenkins를 통해 자동화 해 줍니다.

아코디언은 또한 다양한 개발 언어의 빌드를 지원하고 있습니다. 맞춤형 파이프라인을 이용하여 코드 분석, 단위 및 통합 테스트, 보안 검사 등을 추가할 수 있습니다. 빌드 된 컨테이너 이미지는 태그를 붙여서 아코디언에서 제공하는 레지스트리 혹은 등록된 레지스트리로 업로드 후 자동 배포됩니다. 만약 배포 실패 또는 오류가 발생하는 경우에는 빌드 시 원하는 지점에 원 클릭으로 롤백 할 수 있습니다.

이처럼 아코디언에서 제공하는 CI/CD를 이용한다면 앱 라이프사이클을 자동화 하여 DevOps환경을 손쉽게 구현 할 수 있습니다.

CASE 5. 리소스, 오토스케일링 

애플리케이션 운영에서 인프라 담당자는 정상적인 운영에 필요한 인프라 환경을 유지하기 위해 애플리케이션에서 필요로 하는 리소스의 상태를 확인하고 모니터링 하고 싶어 합니다.

일반적으로 인프라 서버 리소스는 CPU, 메모리, 네트워크, 디스크 등을 의미합니다. 이 가운데 CPU와 메모리는 애플리케이션 서비스를 운영할 경우 중요한 리소스이며, 쿠버네티스 기반의 애플리케이션 서비스를 운영할 경우, 컨테이너 CPU나 메모리 사용량 정보는 메트릭 API를 통해 클러스터 상의 노드나 파드의 리소스 상태 정보를 확인하거나 모니터링 할 수 있습니다. 중요한 애플리케이션 서비스를 운영하는 경우, 과부하로 인하여 서비스에 문제가 발생하지 않게, 리소스를 효율적으로 사용하여 대처하는 것이 중요합니다. 

예를 들어, 운영중인 애플리케이션에서 서비스 요청이 늘어나게 되면 서버에 부하가 발생하게 되므로 원활한 서비스 처리를 위해, 실제 애플리케이션에 맞는 적절한 리소스를 동적으로 할당하고 관리하는 기능이 필요하게 되며, 이런 역할을 수행하는 것을 오토스케일링 이라고 합니다. 오토스케일링은 리소스의 임계치를 설정하여 컨테이너 상태 및 리소스 메트릭 정보를 모니터링 해서 특정 이벤트에 대해 컨테이너를 확장 및 축소하는 기능을 제공하는 서비스입니다.

쿠버네티스의 경우, CPU나 메모리와 같은 일반적인 수준의 메트릭 정보를 통한 오토스케일링이 가능합니다. 하지만 실제 운영 환경의 여러 복잡한 상황에 대처하기에는 제약 사항이 존재하게 됩니다. 운영 환경에서 애플리케이션 서비스를 운영하다 보면 다양한 유형의 서비스 부하 상황을 경험하게 됩니다.

예를 들어, WAS를 사용하여 운영 중인 서비스에 사용자는 폭주하는데, CPU나 메모리 사용량은 낮고, 응답시간이 늦어지거나 사용자 요청을 처리하는 Thread가 부족한 경우 등으로 인해서 서비스가 원활하지 않을 수 있습니다.

이러한 여러 상황을 고려하여, 컨테이너 통합 관리 솔루션 ‘아코디언’은 CPU나 메모리뿐 아니라 WAS의 thread/tps/elapsed time/gctime 등 다양한 오토스케일링 기준 방식을 제공하며, 무중단 스케일 아웃까지 지원합니다.

또한 Time Based 자동 확장으로 트래픽이 발생하는 시간을 고려하여 사전에 컨테이너를 확장해 놓을 수 있는 예약 기능을 제공할 뿐 아니라 자동 확장 시작 시간 및 종료 시간 까지 설정할 수 있습니다.

이는 온라인 쇼핑몰의 타임 세일이나 대학교의 수강 신청과 같이 예측 가능한 환경에서 리소스를 확장해 놓고 이벤트가 끝나는 시점에 종료하도록 설정함으로써 리소스를 효율적으로 사용할 수 있도록 합니다.

CASE 6. 모니터링

컨테이너 기반 애플리케이션과 마이크로서비스의 도입이 확대되면서 모니터링 및 관리에 대한 중요성이 점점 커지고 있습니다.

쿠버네티스 기반의 애플리케이션 서비스를 운영하는 경우, 자원 상태 및 서비스 성능 등에 대한 모니터링을 하려면 직접 별도의 모니터링 시스템을 구축하거나 전문 솔루션을 이용해야 합니다.

사용자가 오픈 소스 등을 활용해 자체적으로 시스템을 구축하게 되면 사용자가 직접 유지보수 및 관리를 해야 하는 어려움이 있을 뿐 아니라, 어떤 지표를 모니터링 해야 할 지 등에 대한 추가 노하우도 필요합니다.

호스트와 컨테이너, 쿠버네티스에 대한 모니터링을 제공하는 오픈 소스가 있지만 애플리케이션 지표에 대한 모니터링과 로깅 기능은 제공하지 않기 때문에 별도로 구축해야 하는 경우도 있습니다.

하지만 이런 모든 기능을 한번에 제공하는 전문 솔루션을 사용하게 되면 시스템 구축 및 유지보수에 필요한 리소스의 낭비를 막을 수가 있습니다.

컨테이너 통합 관리 솔루션 ‘아코디언’은 사용자가 직관적으로 볼 수 있는 Web UI 형태의 다양한 대시보드를 제공합니다.

멀티 클러스터와 애플리케이션을 위한 통합 모니터링 대시보드를 통해 리소스 모니터링을 할 수 있으며, 실시간 상태 및 알림을 제공합니다. 

관리자 대시보드 및 프로젝트 대시보드를 통해 애플리케이션의 통합 현황 관리를 할 수 있습니다.

멀티 클라우드 대시보드를 통해 다양한 클라우드 공급업체에서 구성된 클러스터 관리 및 오브젝트 관리, 도커 레지스트리 관리를 할 수 있습니다. 또한, 웹 서비스에서 가장 많이 사용되는 WAS에 대한 성능 모니터링을 위한 APM 기능도 제공합니다.

‘아코디언’은 멀티 클러스터 및 클러스터 자원에 대한 모니터링, 컨테이너 시스템 모니터링, 애플리케이션 성능에 대한 실시간/이력 모니터링, 장애 모니터링 등 다양한 모니터링을 제공할 뿐 아니라 모니터링 메트릭에 대한 관리 기능을 제공합니다.

이와 같이 아코디언이 제공하는 다양한 모니터링을 통해, 장애 발생 시 빠르게 원인을 파악하고 대응하여 시스템을 안정적으로 운영할 수 있습니다.

이로써 총 6가지 컨테이너 통합관리 솔루션 Use Case를 알아보았습니다.

클라우드의 시대 알맞는 컨테이너 통합관리 솔루션 아코디언으로 성공적인 클라우드 네이티브 성공 전략을 세우시길 바랍니다.

Back To Top