오픈소스로 쿠버네티스와 연동 가능…인프라 고민 해소

[아이티데일리] 2014년 AWS에서 처음으로 선보인 서버리스(ServerLess) 솔루션이 IT 업계 개발자들에 의해 한 달에 수십 조 번이 실행되는 등 큰 호응을 얻고 있다. 서버리스는 서버의 운영·관리를 개발자를 대신해 CSP(Cloud Service Provider)가 도맡아 실행하기 때문에, 실제로 서버는 존재하지만 개발자의 업무에서 사라지는 것처럼 보여 ‘서버리스’ 혹은 ‘서버리스 컴퓨팅’, ‘서버리스 아키텍처’라고 불린다.

서버리스 컴퓨팅은 개발자가 서버를 운영·관리할 필요가 없어 비즈니스와 개발 본연의 업무에 집중하고, 애플리케이션이 구동되는 환경과 컴퓨팅 리소스는 클라우드 서비스가 자동화를 기반으로 대신해준다는 장점이 있다. 이러한 장점을 가진 서버리스 환경은 최근 쿠버네티스, IoT 등 신기술과 결합돼 서비스가 제공돼 향후 시장에서의 고성장이 기대되고 있다.


오픈소스로 쿠버네티스와 연동 가능…인프라 고민 해소

서버리스는 컨테이너의 인프라를 관리하는 쿠버네티스에 대한 버전 업그레이드 및 유지보수 관리 측면에서 많은 기업들이 갖고 있는 고민을 해소시켜줄 수 있다. 서버리스는 서버가 개발자 입장에서 추상화되므로 인프라에 대한 고민을 할 필요가 없다는 장점이 있다. 여기에 쿠버네티스와의 결합으로 컨테이너 인프라에 대한 고민을 해소할 수 있다는 것도 이점이다.

먼저 서버리스가 컨테이너들을 관리할 수 있는 플랫폼으로 최근 IT 업계에서 각광받는 쿠버네티스에 구축될 시, 서버 또는 쿠버네티스 클러스터 분배와 하부 에코솔루션의 업데이트된 패치 적용, 운영체제 유지·관리, 리소스 분배 등과 같은 인프라 관리 작업을 덜 수 있다.

이러한 장점들로 인해 쿠버네티스는 서버리스 워크로드 및 마이크로서비스 애플리케이션 컨테이너를 관리하는 데 있어 상호 운영성을 얻을 수 있기 때문에 가장 선호되는 플랫폼이다.

쿠버네티스에 서버리스를 직접 구축·적용하기 위해서는 ▲케이네이티브(Knative) ▲피션(Fission) ▲쿠브리스(Kubeless) ▲아파치 오픈위스크(Apache OpenWhisk) 등 주요 프로젝트들을 활용해야 한다. ‘케이네이티브’는 구글이 쿠버네티스에서 서버리스 애플리케이션을 실행하기 위해 제작한 오픈소스 커뮤니티 프로젝트다. 서버리스 클라우드 네이티브 애플리케이션을 배포하고 실행, 관리하기 위해 쿠버네티스에 구성요소를 추가할 수 있다.

양승도 구글 클라우드 코리아 커스터머 엔지니어링 총괄은 “‘케이네이티브’는 쿠버네티스 내 서버리스 워크로드를 위한 기반 빌딩 블록을 제공한다”며 “쿠버네티스 상 어디에도 배포될 수 있는, 컨테이너에 기반한 최신의 클라우드 네이티브 애플리케이션을 생성할 수 있게 해준다”라고 설명했다. 이어 양 총괄은 “소스코드를 컨테이너에 구축하는 방식으로 접근 방식이 유연하며, 요청된 모델을 통해 컨테이너를 신속하게 배포하고 자동으로 확장해 온디맨드 기반 워크로드 처리가 가능하다”고 덧붙였다.

‘케이네이티브’로 활용할 수 있는 기능은 ▲비사용 시 리소스를 줄여 자원을 최적화하는 기능 ▲트래픽에 맞춘 자동 확장 기능 ▲쿠버네티스의 구성과 수정을 진행하는 기능 ▲인클러스터 이미지 빌딩 기능 ▲케이네이티브 기반 구축을 원활하게 해주는 트래픽 분배 ▲이벤트를 새롭게 만들거나 활용할 수 있는 기능 등 여섯 가지다.

양 총괄은 “구글 클라우드에서는 쿠버네티스를 기반으로 커뮤니티에서 개발된 개방형 가이드라인, 툴, 레퍼런스 세트를 제공하는 케이네이티브 서비스를 구축해 개방된 접근방식을 추구한다”며 “개발자는 처음부터 새롭게 개발을 시작할 필요 없이 기존 컨테이너를 사용할 수 있다”고 강조했다.

▲ 레드햇의 오픈시프트 하이브리드 서버리스 구조도(출처: 레드햇)

한편, 레드햇은 ‘케이네이티브’를 자사 ‘오픈시프트’ 플랫폼에 채택한 ‘오픈시프트 서버리스’로 멀티·하이브리드 클라우드를 지원하고 있다. 레드햇은 2018년 구글, SAP, IBM을 비롯한 여러 기업들과 하이브리드 서버리스 워크로드를 가져오기 위해 ‘케이네이티브’ 관련 협력을 체결한 바 있다. 당시 크리스 라이트(Chris Wright) 레드햇 부사장은 “‘케이네이티브’ 커뮤니티에 참여함으로써 엔터프라이즈 쿠버네티스와 오픈소스에 대한 전문성을 결합해 하이브리드 클라우드 전반과 쿠버네티스 상에서 서버리스를 위한 공통 빌딩 블록 생성을 지원할 것”이라고 말했다.

레드햇은 이러한 ‘케이네이티브’ 프로젝트를 기반으로 ‘레드햇 오픈시프트 서버리스’ 솔루션을 출시했다. ‘레드햇 오픈시프트 서버리스’는 하이브리드 클라우드와 멀티 클라우드 환경 전반에 클라우드 이식성과 일관성을 제공할 수 있는 서버리스 플랫폼이다. 또한, 오픈시프트 서비스 메시와 같은 오픈시프트 컨테이너 플랫폼 서비스, 클러스터 모니터링을 통해 애플리케이션을 통합하는 방식으로 서버리스 애플리케이션의 개발과 배포가 가능한 환경을 제공한다.

이러한 ‘레드햇 오픈시프트 서버리스’의 특징은 개발팀이 신속히 프로토타입을 만들고 새로운 콘셉트를 VM 또는 베어메탈보다 낮은 비용에 테스트할 수 있도록 지원한다는 점과 이를 통해 소프트웨어의 혁신을 가속화할 수 있다는 점이다.

‘케이네이티브’ 외에도 ‘피션(Fission)’이라는 쿠버네티스를 기반으로 하는 서버리스 컴퓨팅 프레임워크도 있다. ‘피션’은 관리형 쿠버네티스 회사인 ‘플랫폼9’가 개발하고 운영하는 프로젝트다. ‘피션’의 가장 큰 특징은 단순히 정의 파일만 가지고도 컨테이너를 구축할 필요 없이 FaaS 애플리케이션을 생성할 수 있다는 점이다.

또한, ‘피션’은 헬름(Helm) 차트를 포함하거나 포함하지 않고 설치가 가능하며, 두 가지 버전이 있다. 정식 버전은 로깅을 위한 메시지 큐 및 인플럭스DB를 지원하고, 약식 버전에서는 기본 함수만 제공한다. 주로 정식 버전은 실무 배치를, 약식 버전은 시험 운영에서 사용된다. 특히, ‘피션’은 함수 활동 역시 기록되고 재생될 수 있어 디버깅에 용이하며 아파치 라이선스를 통해 이용이 가능하고 필요할 때마다 자유롭게 개조할 수 있다.

세 번째로 ‘쿠브리스(Kubeless)’는 인스톨러의 개발자인 비트나미가 개발한 프로젝트로, 쿠버네티스의 네이티브 커스텀 리소스 정의를 이용해 함수를 처리한다. ‘쿠브리스’는 쿠버네티스의 중요 기능을 모두 활용하는 쿠버네티스 네이티브 서버리스 플랫폼이다.

특히, ‘쿠브리스’는 닷넷(.NET), 자바, 파이썬, 노드.js, PHP, 루비, 고, 그리고 심지어 클라우드 네이티브 개발을 위한 최신 발레리나 언어 등 다양한 언어를 지원한다. ‘쿠브리스’의 또 따른 유용한 기능은 바로 ‘AWS 람다’와 명령어 인터페이스(CLI)가 동일하다는 점이다. ‘AWS 람다’로부터 마이그레이션을 하지만 기존의 매니지먼트 스크립팅 유지를 원하는 경우 유용하게 사용이 가능하다. 이 외에도 ‘쿠브리스’는 새로운 명령 세트를 따로 배울 필요가 없으며, 서버리스 프레임워크의 플러그인 역할도 수행할 수 있다.

이 외에도 오픈소스로 제공되는 주요 서버리스 컴퓨팅 프로젝트인 ‘아파치 오픈위스크’는 스칼라(Scala)로 작성된 오픈소스 서버리스 클라우드 플랫폼이다. ‘아파치 오픈위스크’는 주로 HTTP 요청과 같은 트리거(DB, 장치 등에서 발생한 이벤트)에 반응해 자바 스크립트나 스위프트로 작성된 함수를 구동시킨다.

저작권자 © 아이티데일리 무단전재 및 재배포 금지