클라우드런치 다중클라우드 애플리케이션 배포 플랫폼
초록
클라우드런치는 다양한 IaaS 클라우드에 애플리케이션을 단일 인터페이스로 등록·검색·배포할 수 있게 하는 웹·API 기반 시스템이다. 애플리케이션 별 플러그인 구조와 CloudBridge 추상화 레이어를 활용해 개발자는 한 번의 정의만으로 여러 클라우드에 배포 가능하며, 사용자는 웹 UI 혹은 REST API를 통해 손쉽게 원하는 클라우드에 애플리케이션을 실행할 수 있다.
상세 분석
본 논문은 클라우드 환경에서 소프트웨어 배포 시 발생하는 ‘벤더 락인’ 문제와 다중 클라우드 지원의 복잡성을 해결하기 위해 설계된 CloudLaunch 시스템을 상세히 제시한다. 핵심 설계는 크게 세 층으로 구분된다. 첫째, 프론트엔드는 Angular 기반 싱글 페이지 애플리케이션으로, 사용자가 애플리케이션 선택, 클라우드 제공자 및 런치 옵션을 입력하도록 UI를 제공한다. 플러그인 기반 UI 컴포넌트는 각 애플리케이션이 요구하는 입력 양식을 자유롭게 정의할 수 있게 하여, 복잡한 스토리지, 네트워크, 보안 설정까지도 사용자에게 노출한다. 둘째, 백엔드는 Django와 Django‑REST‑Framework로 구현된 RESTful API이며, Celery와 RabbitMQ(또는 Redis) 기반 작업 큐를 이용해 비동기 배포 작업을 수행한다. 여기서 중요한 점은 CloudBridge 라이브러리를 통해 IaaS 제공자(AWS, GCP, OpenStack 등)의 API를 추상화함으로써, 플러그인 개발자는 클라우드 별 SDK 호출을 직접 구현할 필요가 없다는 것이다. 셋째, 플러그인 구조는 두 가지 레이어로 나뉜다. 프론트엔드 플러그인은 JSON 스키마 형태의 설정 데이터를 생성하고, 백엔드 플러그인은 해당 데이터를 해석해 실제 배포 로직을 수행한다. 배포 로직은 단순 VM 생성부터 복잡한 클러스터 구축, Ansible 플레이북 호출까지 자유롭게 확장 가능하며, health‑check, restart, delete와 같은 관리 작업도 동일한 플러그인 인터페이스에 의해 제공된다.
논문은 기존 AWS Marketplace, Google Launcher 등은 단일 클라우드에 종속된 레시피를 제공하는 반면, CloudLaunch는 오픈·표준 기반(REST, JSON, Python)으로 다중 클라우드 지원을 원스톱으로 제공한다는 점을 강조한다. 또한, 배포 과정에서 애플리케이션 이미지·스토리지 등 사전 요구 리소스가 각 클라우드에 존재해야 함을 명시하고, 이를 보완하기 위해 컨테이너화 혹은 이미지 레지스트리 연동을 권장한다.
시스템의 확장성은 플러그인 인터페이스가 최소화된 메서드(예: configName)만을 요구함으로써 새로운 애플리케이션을 빠르게 추가할 수 있게 설계된 점에서 확인된다. 또한, 백엔드 API가 독립적인 pip‑installable 패키지(djcloudbridge)로 제공되어 다른 과학 게이트웨이와의 연동이 용이하다. 향후 TOSCA 표준 지원을 계획하고 있어, 보다 선언적 인프라 정의와 자동화가 가능해질 전망이다.
한계점으로는 배포 이후 런타임 관리(스케일링, 자동 복구, 지속적 스토리지 관리 등)가 현재 범위에 포함되지 않으며, 이는 별도의 오케스트레이션 툴이나 PaaS 레이어와 연계해야 함을 의미한다. 또한, 다중 클라우드 환경에서 이미지·데이터 동기화 문제는 여전히 개발자에게 부담이 남는다. 전반적으로 CloudLaunch는 **‘배포 엔진’**에 초점을 맞춘 모듈식 플랫폼으로, 다중 클라우드 전략을 채택하려는 연구기관·기업에 실용적인 기반을 제공한다.
댓글 및 학술 토론
Loading comments...
의견 남기기