마이크로소프트(MS)가 레드햇과 손잡고 개발한 컨테이너 인프라의 확장(scaling) 자동화 기술을 공개했다. 컨테이너가 소비하는 중앙처리장치(CPU)와 메모리에 기반했던 고전적 확장방식을 떠나 실제 컨테이너가 필요한 '이벤트'에 반응해 확장을 수행한다는 게 핵심이다.
지난주 미국 시애틀에서 진행된 MS 연계 개발자 컨퍼런스 빌드2019에서 선보인 '쿠버네티스기반 이벤트드리븐 오토스케일링(KEDA)' 얘기다. 발표 내용에 따르면 KEDA는 MS 애저 클라우드의 서버리스 컴퓨팅 서비스 '애저 펑션(Azure Functions)'의 함수를 컨테이너화해, 그 확장 동작을 동일하게 유지하는 함수를 쿠버네티스 클러스터에 배포할 수 있게 해준다.
MS는 컨퍼런스 첫날인 지난 6일 공식 블로그를 통해서도 KEDA를 소개했다. 쿠버네티스로 컨테이너 기반 애플리케이션을 개발하고 배포하는 기업 사용자들은, 이 기술을 활용해 애플리케이션의 사용량에 따른 확장 자동화 및 이벤트 기반 프로그래밍 모델의 이점을 활용할 수 있다고 밝혔다. [원문보기 ☞ Announcing KEDA: bringing event-driven containers and functions to Kubernetes]
블로그 글 작성자 제프 홀란 MS 애저 펑션 시니어 프로그램 매니저는 "쿠버네티스에서 확장은 컨테이너의 CPU와 메모리 소비에 기반한 수동 반응이다(reactive)"라며 "반면 애저 펑션같은 서비스는 이벤트 소스를 민감하게 인지하고, 따라서 CPU와 메모리가 영향을 받기 전에 이벤트 소스로부터 오는 신호를 직접적으로 이용해 확장할 수 있다"고 설명했다.
MS는 레드햇과 함께 KEDA를 만들었다. 간단히 표현하면 KEDA는 쿠버네티스 위에서 서버리스 이벤트 주도 컨테이너 배포를 지원하는 툴이다. 양사 협력으로 개발된 KEDA는 MS 퍼블릭클라우드 서비스의 애저 쿠버네티스 서비스(AKS)라는 매니지드 컨테이너 서비스 환경과 레드햇 오픈시프트(OpenShift) 프라이빗 클라우드 또는 온프레미스 환경에서 쓰일 수 있다.
홀란 매니저는 "MS와 레드햇은 어떤 쿠버네티스 워크로드에든 이벤트 주도 기능을 제공하는 오픈소스 컴포넌트를 만드는 데 협력했다"며 "KEDA는 카프카(Kafka) 스트림이나 애저 큐(Azure Queue) 길이와 같은 이벤트 척도를 기반으로, 어떤 컨테이너든지 인스턴스를 영(0) 개에서 잠재적으로 수천개까지 확장케한다"고 표현했다.
그는 "KEDA는 컨테이너가 HTTP로 디커플링되지 않은 이벤트 소스로부터 직접 이벤트를 소비케 해준다"며 "또 어떤 컨테이너의 확장이든 제어할 수 있으며, 새로운 이벤트 소스에 확장성을 띤다"고 덧붙였다.
MS에 따르면 KEDA는 또 쿠버네티스 클러스터에 컨테이너로 배포될 수 있는 애저 펑션의 새 호스팅 옵션으로 제공된다. 이는 애저 펑션 프로그래밍 모델과 스케일 컨트롤러 기능을 다양한 쿠버네티스 구축 환경에 활용할 수 있게 해준다는 설명이다.
홀란 매니저는 "애저 펑션을 컨테이너화할 수 있기 때문에, 여러분은 이제 함수의 확장 동작을 애저 펑션 서비스에서와 동일하게 유지하면서 어떤 쿠버네티스 클러스터에든 배포할 수 있다"며 "클라우드와 온프레미스에 워크로드를 전개해야할 때, 여러분은 애저 펑션 서비스를 클라우드에서 호스팅되거나 온프레미스 기반인 쿠버네티스 환경을 아울러 쉽게 선택할 수 있다"고 강조했다.
이어 "고객 수천명이 애저 펑션을 서버리스 연산 서비스로 사용해 매일 수십억개 이벤트를 처리한다"며 "애저 펑션은 완전한 매니지드 서버리스 서비스를 제공하지만 많은 고객들은 그들이 관리할 수 있는 개방된 환경에서 서버리스를 자유롭게 구동하고 싶어한다"고 지적했다. 이어 "KEDA를 릴리즈함에 따라 어떤 팀이든 쿠버네티스에 직접 그와 같은 도구로 만든 함수 애플리케이션을 배포할 수 있다"고 덧붙였다.
13일 현재 깃허브 사이트에서 MS와 레드햇이 공개한 KEDA 오픈소스 프로젝트를 확인할 수 있다. 프로젝트에서는 KEDA의 실제 작동 방식에 대해서도 설명하고 있다. [바로가기 ☞ GitHub - kedacore/keda: KEDA is a Kubernetes-based Event Driven Autoscaling component. It provides event driven scale for any container running in Kubernetes]
깃허브의 프로젝트 설명에 따르면 KEDA는 "이벤트 없이 0에서 늘어나거나 0으로 줄어들도록 배포를 활성화 및 비활성화하는 에이전트 역할"과 "(외부 트리거 소스로부터) 큐 길이나 스트림 지연같은 이벤트 데이터를 쿠버네티스의 구성요소 중 하나인 '호라이즌탈 팟 오토스케일러(Horizontal pod autoscaler)'에 노출시켜 수평확장을 수행하는 '쿠버네티스 메트릭스 서버' 역할"을 수행한다.
KEDA는 배포가 활성화 또는 비활성화돼야 하는지 여부를 탐지하고 특정 이벤트 소스로부터 커스텀 메트릭을 받아들이는 '스케일러(scalers)'라는 구성요소를 여럿 포함하게 된다. 현재 KEDA의 스케일러가 지원하는 이벤트 소스는 카프카, 래빗MQ(RabbitMQ), 애저 스토리지 큐(Azure Storage Queues), 애저 서비스 버스 큐 앤드 토픽(Azure Service Bus Queues and Topics)이다.
KEDA는 다른 컨테이너나 배포 환경에 쓰일 수 있지만 애저 펑션이 갖춘 도구와 막바로 통합될 수 있다. 기업은 애저 펑션 오픈소스 코드를 가져와 그 호스트를 구축하고 여기에 연계되는 KEDA 기능을 체험해볼 수도 있다.
지난해 레드햇은 MS 애저 퍼블릭클라우드에서 돌아가는 오픈시프트를 내놓았는데, KEDA의 개발은 기존 MS 협력관계의 연장으로도 해석된다. 양사 협력은 클라우드 시장에서 어떤 의미가 있을까. [관련기사 ☞ MS-레드햇, 애저 기반 오픈시프트 제공]
MS는 레드햇과의 협력을 통해 애저 퍼블릭클라우드와 상호운용 가능한 오픈시프트 기반 컨테이너 운영환경의 장점을 추가했다. 이는 레드햇의 오픈소스 클라우드 구축 솔루션을 활용 중인 기업이 퍼블릭클라우드 기반의 매니지드서비스 도입을 검토할 때 MS 애저를 유력한 대안으로 검토할 수 있게 도울 것으로 보인다.
관련기사
- MS, 애저+AI로 생산성 클라우드 시대 연다2019.05.13
- MS-레드햇, 애저 기반 오픈시프트 제공2019.05.13
- 레드햇, 구글 클라우드서 오픈시프트 서비스 제공2019.05.13
- 컨테이너 기술 갖는 지름길 ‘오픈시프트’2019.05.13
레드햇은 MS와의 협력을 통해 KEDA를 활용한 이벤트 기반 자동 확장 기술을 '오픈시프트' 활용 기업 고객에게 제공할 수 있게 됐다. 오픈시프트는 당초 프라이빗 클라우드 서비스형 플랫폼(PaaS)이었는데 이후 컨테이너 앱 배포와 관리용 제품으로 발전했다.
다만 아직 KEDA는 완성된 기술이 아니다. 이 소프트웨어는 실험 단계로 더 개발돼야 할 여지가 있으며, 제공하는 쪽에서도 현업의 워크로드와 유사한 용도로는 쓰지 말라는 권고를 하고 있다.