클라우드 서비스

자바 애플리케이션 현대화 파트너로 MS애저가 중요한 이유는?

이상일
[디지털데일리 이상일기자] 자바(Java)는 지난 27년간 엔터프라이즈 소프트웨어 개발에서 가장 널리 사용되는 프로그래밍 언어 중 하나였고, 전 세계의 수많은 시스템이 자바 언어를 통해 구축됐다.

다만 기존 자바 애플리케이션은 모놀리식 특성으로 인해 개발자가 변경 사항을 적용할 때 민첩하게 대응하기 어려웠다. 때문에 최근 자바 애플리케이션 현대화가 업계의 화두로 부상하고 있다.

21일 <디지털데일리> 웨비나 플랫폼 ‘DD튜브’를 통해 진행된 ‘마이크로소프트 애저(Microsoft Azure)를 통한 자바(Java) 애플리케이션 현대화 전략’ 발표에서 한국MS 김나연 클라우드 솔루션 아키텍트는 “기존에는 개발자가 단 한 가지만 변경하려 해도 기존의 요소를 재컴파일 하고 테스트해 재배포해야 했다”며 “MS 애저는 자바 애플리케이션을 현대화에 필요한 클라우드 네이티브 IT 환경을 구축해 변화하는 비즈니스 요구 사항을 지원하고 있다”고 밝혔다.

컨테이너는 말 그대로 컨테이너 박스에 모든 것이 담겨 있는 형태로, 하나의 운영체제 안에서 커널을 공유하며 개별적인 실행 환경을 제공하는 격리된 공간이다. 그래서 언제든지 쉽게 이동하고 빠르게 배포할 수 있으며 기존의 가상머신(VM)에 운영체제(OS)가 새롭게 설치된 형태가 아니기 때문에 리소스를 더 효율적으로 사용할 수 있다는 이점이 있다.

다만 각 컨테이너가 독립적이기 때문에, 컨테이너가 많아질수록 관리와 모니터링, 트래픽 증가에 따른 유동적으로 운영 방법, 업데이트를 진행하고 문제가 생기면 롤백(roll back)을 진행하는 등, 오케스트레이션에 대한 요구사항이 대두되고 있다.

김나연 아키텍트는 “쿠버네티스는 컨테이너를 오케스트레이션해 리팩토링 비용을 줄일 수 있고, 앱 개발을 가속화하며, 더 빠르고 안전하게 코드를 배포할 수 있도록 자동화하고, 상대적으로 적은 레이턴시 프로세싱으로 더 좋은 퍼포먼스 구현한다. 또, 구축형이던 클라우드 던 다양한 곳에서 제약 없이 사용할 수 있는 이동성, 그리고 다양한 기타 오픈소스를 이용할 수 있는 에코시스템과 같은 장점들이 있다”고 밝혔다.

기업이 클라우드 네이티브를 위한 여정을 시작하거나 또는 유지 및 발전시키고자 할 때 MS 애저는 여러가지 선택지를 제공한다.

컨테이너 중심의 애저 컨테이너 앱스(Azure Container Apps), 애저 쿠버네티스 서비스(Azure Kubernetes Service), 레드햇 오픈쉬프트(Red Hat Openshift), 컨테이너 인스턴스(Container Instance)부터 컨테이너가 포함되어 있는 앱 서비스, 애저 스피링 앱스(Azure Spring Apps), Batch, 머신러닝 등이 있다.

애저 쿠버네티스 서비스(AKS)는 MS에서 제공하는 PaaS 솔루션이다. 단순히 AKS 하나만 쓰이는 것이 아니라, 컨테이너 레지스트리(Container Registry), 디스크(Disk), 파일공유(File Share), SQL, 애저 액티브 디렉토리(Azure AD), 애저 모니터(Azure Monitor) 등과 같이 애저 내의 수많은 서비스와 손쉽게 연결되기 때문에 활용도가 높고 확장성이 뛰어나다는 설명이다.

김나연 아키텍트는 “쿠버네티스 관리를 위해 애저에서는 설정에 따라 자동으로 업그레이드 및 패치를 진행할 수 있고, 클러스터 스케일링이 더 쉽고 안전할 뿐만 아니라, API 서버 모니터링, 그리고 마스터 노드를 애저에서 관리하기 때문에 오직 워커 노드 이용에 대한 요금만 부과된다는 장점이 있다”고 밝혔다.

그는 또 “AKS의 이점은 원하는 툴과 API를 사용할 수 있다는 점이다. 젠킨스나 그라파나같은 오픈소스는 물론이고, 애저와의 연동을 고려한다면 애저 데브옵스, 애저 깃허브는 기준정보(CI/CD)를 위해 아주 훌륭한 선택이다. 또한 다양한 모니터링 기능을 잘 이용한다면 마이크로서비스 아키텍처를 확인할 수 있게 된다”고 강조했다.

이어 발표에 나선 정승원 한국MS 솔루션 아키텍트는 벤더 종속성을 최소화 하고, 동시에 '스프링' 커뮤니티의 진보와 변화를 손쉽게 따라갈 솔루션에 대해서 소개했다. 스프링은 자바 애플리케이션 프레임워크 중 가장 각광받는 커뮤니티다.

마이크로서비스는 개별의 API 서비스를 말하고 마이크로서비스 아키텍처란 마이크로서비스 들로 구성된 업무적 완결성을 갖는 애플리케이션을 말한다. 마이크로서비스-클라우드 네이티브가 수많은 개발 운영상의 장점이 있지만 이로 인해 희생되는 부분도 있다.

정승원 아키텍트는 “쿠버네티스로 MSA 개발시엔 수많은 툴 체인이 따라붙는다. 때문에 설치와 운영에 상당한 공수가 투입되어야 한다. 또, API 컴포넌트에 문제가 있을 때 이를 디버깅하고 추적하는데 어려움이 있다. 수많은 서비스가 뿜어내는 로그를 통해서 문제를 인지하고 분석하는데 어려움이 있어 로깅, 모니터링은 중앙에 집중되어야 하며 분산된 배포를 하다보면 버전간의 종속성 관리를 놓치기 쉽고 휴먼에러가 끊이질 않는다”고 지적했다.

이에 대한 해결책으로 MS의 AKS는 관리형 쿠버네티스를 지향한다. 쿠버네티스 API에 대한 직접 액세스를 지원하고 모든 쿠버네티스 워크로드를 실행해 전체 클러스터는 사용자가 제어를 갖고 클러스터 구성과 작업할 수 있다.

구체적으로 서버리스 ‘Functions-as-a-Service’ 솔루션인 펑션(Functions)은 이벤트 기반 애플리케이션을 실행하는 데 최적화되어 있는 기능이며 웹 사이트 및 웹 API를 포함한 웹 애플리케이션의 매니지드 서비스 ‘앱서비스’는 WAS 같은 앱 런타임을 내장하고 있어서 레가시 웹 애플리케이션에 최적화되어 있다.

정승원 아키텍트는 “앱플랫폼은 클라우드 인프라를 생략하고 개발의 본업인 앱에 집중하도록 돕는다. 애저는 폭넓은 요구사항을 충족하는 다양한 앱플랫폼을 제공한다. 자바/스프링 개발의 경우 앱서비스, 스프링앱, 컨테이너앱 등이 최적의 선택이며 애저 스프링앱은 스프링부트/클라우드 표준을 충실히 준수하는 매니지드서비스로 다양한 스프링 스타터를 제공해 코드상의 종속성을 배제한다. 애저 앱플랫폼들은 깃허브 액션즈 등과 손쉽게 연동해 클라우드 네이티브 자동화 요건을 충족해 AAD, OpenID 와 통합 인증 구현도 용이하다”고 설명했다.
이상일
2401@ddaily.co.kr
기자의 전체기사 보기 기자의 전체기사 보기
디지털데일리가 직접 편집한 뉴스 채널