클라우드서비스 씨앗

씨앗소식

씨앗 이슈리포트
[2019-05] CLOUD NEWS 03 클라우드-네이티브 기술 동향 상세보기
[2019-05] CLOUD NEWS 03 클라우드-네이티브 기술 동향 게시글 정보입니다.
2019.05.16 16:32
[2019-05] CLOUD NEWS 03 클라우드-네이티브 기술 동향
03 클라우드-네이티브 기술 동향

마이크로소프트의 퍼블릭클라우드 서비스인 애저가 개발자들을 위한 쿠버네티스(Kubernetes) 친화적인 새로운 서비스를 내놓는다고 최근 발표했다.1) 여기에는 레드햇과 함께 만든 오픈소스 프로젝트인 KEDA(Kubernetes Event-Driven Autoscaling)가 포함된다. KEDA는 온프레미스(on-premise)뿐만 아니라 모든 퍼블릭 클라우드에서 필요시 자동으로 서비스 스케일을 키우거나 혹은 줄일 수 있도록 하는 쿠버네티스의 핵심 기능을 제공한다.

쿠버네티스는 최초 구글이 시작한 컨테이너 오케스트레이션 (container orchestraion) 도구이며 현재는 클라우드 네이티브 컴퓨팅 재단(CNCF)에서 관리하고 있다. 독커(Docker)로 대표되는 컨테이너는 실행환경 및 필요한 라이브러리 등을 하나의 패키지로 묶어 배포할 수 있도록 하는 소프트웨어 도구이다. 컨테이너 이미지는 실행에 필요한 모든 이미지를 포함하고 있기 때문에 컴퓨팅 환경과 관계없이 어디서나 동일하게 실행될 수 있다. 컨테이너 기반으로 운영되는 서비스의 경우 갑작스러운 수요 증가 시 컨테이너 이미지를 더 많은 컴퓨팅 자원에 배포하여 늘어난 수요를 분배할 수 있도록 한다. 이렇게 컨테이너 이미지를 더 많은 컴퓨팅 자원에 자동으로 배포하고, 또 회수하고, 외부의 실행 요구를 적절히 배분하는 역할을 하는 것을 컨테이터 오케스트레이션이라고 하며, 그 대표적인 것이 쿠버네티스이다.

 

클라우드-네이티브 = 컨테이너 기반

최근 서비스 개발 및 런칭 패러다임으로 많이 회자되는 소위 “클라우드-네이티브 (cloud-native)” 기술은 컨테이너 기반의 애플리케이션 개발과 동일한 의미로 설명되기도 한다. 가장 대표적인 클라우드 네이티브 플랫폼이 바로 쿠버네티스이다. 쿠버네티스를 사실상 표준 (de facto) 클라우드 운영체제라고 확대해석을 해도 무리가 없을 정도로 클라우드에서는 마치 x86 머신의 리눅스 운영체제 같은 존재가 되었다고 보아도 과언이 아니다.

클라우드-네이티브 애플리케이션은 몇 가지 주요 특성을 가진다고 전문가들은 말하고 있다.2)

⦁ 경량 컨테이너로 패키징: 가상머신 대비 규모 확장/축소가 용이하며, 가벼운 컨테이너로 배포됨으로써 인프라스트럭쳐 사용도 최적화 할 수 있음

⦁ 애플리케이션 도메인 또는 구현하고자 하는 기능에 최적화된 언어나 프레임워크를 활용: 컨테이너 특성상 실행에 필요한 환경을 모두 포함하고 있기 때문에, 연계되는 다른 컨테이너 기능과의 호환성에 대한 고민 없이 해당 기능 구현에 최적화된 도구를 활용할 수 있음

⦁ 마이크로서비스 아키텍처 기반: 각각의 독립적인 작은 서비스들을 느슨하게(loosely-coupled) 연결하여 더 큰 서비스를 구성하는 아키텍처로 구성

⦁ API를 중심으로 한 상호 연계 및 협업: REST, gRPC(Google Remote Procedure Call) 등과 같은 애플리케이션 인터페이스에 기반 한 서비스 호출 및 연계

⦁ 컨텍스트 혹은 상태(state)를 유지할 필요가 있는 서비스의 분리: 스토리지와 같이 상태 유지가 필요한 경우 이를 완전 별개의 마이크로서비스로 구성

⦁ 기반 시스템에 긴밀하게 종속되는 서비스의 분리: GPU를 사용하거나 혹은 특정 목적의 하드웨어 혹은 시스템과 직결되는 서비스의 경우 별도의 서비스로 분리

⦁ 고도의 자동화: 수많은 서비스들을 컨테이너 기반으로 배포하거나 동적으로 규모를 조정하기 위해서는 고도의 자동화된 도구가 필수적인 요소임

이 외에도 데브옵스(DevOps) 고도화 등 인프라스트럭쳐 관련된 유연한 운영 방식도 클라우드-네이티브의 주요 특성으로 들고 있다.

 

개발도구 동향

쿠버네티스를 탄생시킨 구글은 클라우드-네이티브 애플리케이션 개발을 돕는 클라우드 코드(cloud code)를 내놓았다.3) 클라우드 코드는 인텔리제이(IntelliJ) 같은 개발자들이 많이 사용하는 통합개발환경(IDE)의 플러그인으로 동작하며, IDE내에서 컨테이너 이미지까지 생성하는 것을 돕는다. 즉, IDE를 벗어나지 않는 상태에서 개발자들이 클라우드-네이티브 환경에서의 이미지 생성 및 컨테이너 레벨에서의 테스트까지 완료 할 수 있다는 것을 의미한다. 또한 클라우드 코드를 사용하면 구글 클라우드 내에서의 API 연동이 매우 쉬워진다는 장점이 있다고 한다. 물론 클라우드 코드는 구글 클라우드뿐만 아니라 다른 클라우드에서의 활용도 가능하다. 현재 인텔리제이와 비주얼 스튜디오 코드(VS Code)를 지원한다.

가장 많은 개발자들을 확보하고 있는 통합개발환경인 이클립스(Eclipse) 커뮤니티를 지원하는 이클립스 파운데이션에서는 이클립스 템페스트(Tempest)라는 쿠버네티스 플랫폼에 최적화된 개발도구 프로젝트를 제안했다.4) 구글의 클라우드 코드와 유사하다고 볼 수 있는 이 개발도구는 새로운 애플리케이션 개발 지원뿐만 아니라, 기존 애플리케이션의 독커(Docker)나 쿠버네티스 기반으로의 전환을 지원하기도 한다. 템페스트에는 이클립스 자바IDE, 이클립스-체(Eclipse-che)라는 클라우드 IDE, 그리고 마이크로소프트 비주얼 스튜디오 코드 에디터를 위한 플러그인이 포함될 예정이다. 베타버전은 2019년 3분기에 나올 것으로 알려졌다.

작년에 IBM이 인수발표를 하여 관심을 끌었던 레드햇(Red Hat)의 경우 클라우드-네이티브 애플리케이션 개발을 위한 IDE인 코드레디 워크스페이스(CodeReady Workspaces)를 발표했다.5) 코드레디 워크스페이스는 앞서 언급한 구글의 클라우드 코드와는 달리, 단순 플러그인이 아닌 이클립스체(eclipse-che)에 기반한 완전한 IDE를 제공하며, 레드햇의 오픈시프트(OpenShift)에 최적화 되어있다. 오픈시프트는 기업용 쿠버네티스 애플리케이션을 위한 오픈소스 하이브리드 클라우드 플랫폼이다. 코드레디 워크스페이스를 활용하여 애플리케이션을 개발 초기단계 부터 쿠버네티스에 최적화된 개발이 가능하다고 한다. 이전에는 쿠버네티스에 기반한 최종 테스트를 별도로 프로덕션 서버에서 진행을 해야 했다면, 오픈시프트 상에서 코드레디 워크스페이스를 활용하면 개발과 테스트 단계의 구분이 필요 없어진다는 것이 레드햇의 설명이다.

 

클라우드-네이티브 에코시스템

클라우드 분야에서 2019년 화두 중의 하나는 멀티클라우드이다. 프라이빗 클라우드와 퍼블릭클라우드를 동시에 사용하는 하이브리드 클라우드를 넘어 여러 벤더의 퍼블릭클라우드 도입까지 아우르는 트렌드라고 볼 수 있다. 클라우드-네이티브 관점에서 멀티클라우드로의 워크로드(workload) 확장은 필연적으로 여겨지며 이에 대한 논의도 활발하게 진행 중이다.6) 기존 퍼블릭클라우드 서비스 벤더들도 이미 클라우드-네이티브로의 서비스 확장을 하고 있다. 대부분 오픈소스 프로젝트를 기반으로 하고 있기에, 상호 호환성이 큰 문제가 되지 않을 것으로 예상해 볼 수 있으며, 따라서 멀티클라우드로의 확장 또한 기술적으로 큰 어려움을 없을 것으로 여겨진다.

최대 퍼블릭클라우드 사업자인 아마존의 경우 아마존 EKS(Elastic Container Service for Kubernetes)라는 쿠버네티스 서비스를 제공하고 있며, 앞서 언급하였듯이 마이크로소프트 애저(Azure) 서비스도 레드햇과 함께 KEDA 오픈소스 프로젝트에 기반한 쿠버네티스 서비스를 내놓고 있다. IBM의 레드햇 인수가 확정되어 있는 시점에 IBM의 잠재적 경쟁자인 마이크로소트와 래드헷의 파트너십 발표는 오픈소스에 기반한 클라우드-네이티브 진영에서 더 이상 기술적 장벽이 존재하지 않음을 시사한다. 기존 퍼블릭클라우드 서비스 벤더들도 쿠버네티스를 중심으로 한 다양한 오픈소스 프로젝트와의 레버리지를 통해 클라우드-네이티브 서비스 확장을 꾀할 것으로 여겨진다.

레드햇 오픈시프트의 경우 이미 아마존 웹서비스(AWS)와 구글 클라우드에서는 공식적으로 서비스가 되고 있으며, 마이크로소프트 애저도 공식적으로 지원되기 시작했다. 한편 공식적으로 지원되지는 서비스는 아니지만, 알리바바, IBM, VMware, OpenStack에서도 문제없이 실행된다. 레드햇을 인수한 IBM에서의 공식적인 오픈시프트 지원은 당연히 곧 이루어질 것으로 보이며, 알리바바에서도 조만간 공식적으로 서비스를 시작할 것으로 조심스럽게 예측해 볼 수 있다. 또한 OpenStack 혹은 VMware에서 공식 지원을 하게 된다면, 이들을 발판으로 한 에코시스템 확대가 본격화 될 수도 있다. 레드햇의 오픈시프트 담당 디렉터인 다이안 뮐러(Diane Mueller)는 쿠버네티스와 오픈시프트는 자체적으로 제공되는 기능을 넘어 광범위한 제품 및 서비스를 위한 에코시스템 구축의 견인차 역할을 할 것이라고 말했다.7)

레드햇은 며칠 전 오픈시프트 업그레이드 버전인 오픈시프트4를 발표했다.8) 이번 발표에서는 특히, 통신 사업자들이 네트워크 기능을 컨테이너화 하여 5G 네트워크를 구축할 수 있도록 플랫폼 기능을 설계하였다고 소개했다. 이는 클라우드-네이티브를 통한 네트워크 가상화를 염두에 둔 것으로, 실제 5G에서 중요한 특징으로 꼽는 네트워크 슬라이싱(slicing), 즉, 동일한 물리적인 네트워크 위에, 네트워크 활용 목적에 맞는 여러 가상의 네트워크를 구성하기 위해 오픈시프트 기술을 적용할 수 있음을 의미한다. 이처럼 클라우드-네이티브에 기반한 에코시스템은 소프트웨어 개발 및 서비스뿐만 아니라 다양한 서비스 영역으로 확대될 것으로 보인다. 멀티클라우드 환경으로의 확장 또한 눈여겨볼만 하다.

 

참고문헌

01) Venturebeat, “Microsoft and Red Hat launch Kubernetes autoscaling project”, May 6, 2019
02) The Newstack, “10 key attributes of cloud-native applications”, Jul 19, 2018
03) ITProToday, “Google Launches Cloud Code IDE Plugins for Building Cloud-Native Apps”, Apr 10, 2019
04) InfoWorld, “Eclipse proposes Kubernetes development tools”, Apr 19, 2019
05)SiliconANGLE Media, “Red Hat intros CodeReady Workspaces for Kubernetes-native container app development”, Feb 5, 2019 06) TechTarget, “Explore multi-cloud Kubernetes deployment options”, May 2019
07) Jaxenter, “The power of Kubernetes & OpenShift lies not only in the capabilities but also in the broad ecosystem of products”, Dec 6, 2018
08) LightReading, AWS's DocumentDB Takes Aim at MongoDB, Jan, 2019
09)LightReading, “Red Hat Sharpens OpenShift to Slash Kubernetes Hassles”, May 8, 2019