최근에 일어나는 애플리케이션 현대화는 고객 피드백을 빠르게 앱에 반영하고, 타임투마켓을 단축하는 것을 목표로 이뤄진다. 컨테이너 기반으로 앱 환경을 바꾸고, 쿠버네티스와 여러 개발도구를 통해 자원할당을 자동화함으로써 개발자의 생산성을 높이는 게 핵심 준비 사항이다.
퓨어스토리지가 6월 발간한 보고서 ‘The Voice of Kubernetes Experts Report 2024’에 따르면, 쿠버네티스를 채택한 조직 중 41%는 이미 클라우드 네이티브 플랫폼에서 대부분의 새로운 애플리케이션을 구축하고 있다. 향후 5년 안에, 그 숫자는 2배 늘어날 예정이며, 80%는 대부분의 새로운 애플리케이션을 클라우드 네이티브에 구축할 계획이다.
이를 위한 개발 환경은 퍼블릭 클라우드에 구축되기도 하지만, 여전히 대부분의 기업은 사내 구축형 인프라에 개발 환경을 운영한다. 이 때 사내 인프라를 얼마나 개발자 친화적으로 구성하느냐에 따라 개발 속도가 달라지는데, 퓨어스토리지는 데이터 부분에 주목해야 개발자의 생산성 향상을 도모할 수 있다고 강조한다.
지난 17일 바이라인플러스 웨비나 <쿠버네티스 10주년, 클라우드 네이티브의 현재와 미래>에서 퓨어스토리지코리아 강신우 이사(표지 사진)는 ‘stateless에서 stateful 워크로드까지, 애플리케이션의 컨테이너 전환을 위한 스토리지 설계 및 최적화 방안’을 주제로 발표를 진행했다.
강신우 이사는 “앱을 지속적으로 개발하고 배포하는 부분을 빠르게 진행하려면 개발자가 인프라와 플랫폼 빠르게 프로비저닝 받아야 하고, 운영 환경 자동화가 전제돼야 한다”며 “이런 근간에서 가진 제품과 서비스가 지속적으로 전환될 수 있다”고 밝혔다.
강신우 이사는 “컨테이너로 배포하는 앱이나 레거시 환경의 앱 모두 아랫단의 데이터 관리가 중요하다”며 “데이터센터 관점에서 데이터가 유실되면 서비스를 원활히 제공할 수 없게 된다”고 말했다.
컨테이너 환경을 소규모로 운영하는 것과 엔터프라이즈급 프로덕션 환경에서 운영하는 건 다른 문제다. 복잡한 시나리오에 대응해야 하고, 다양한 구성요소에서 발생하는 수많은 문제에 대응하는 게 쉽지 않다.
아 이사는 “엔터프라이즈 환경은 데이터를 보호하기 위해 복제나 스냅샷 등 여러가지 방법을 데이터센터 내에 구축해 데이터 복원력을 강화한 상황에서 운영한다”며 “컨테이너도 엔터프라이즈급 환경으로 가려면 지금의 스테이트리스뿐 아니라 스테이트풀 환경이 더 많아질 텐데 데이터 관리와 배포 자동화에 대한 설계가 반드시 필요하다”고 강조했다.
그는 “쿠버네티스 환경을 엔터프라이즈 등급으로 확장하는 게 쉽지 않으며, 매우 복잡하다”며 “현재 많은 기업이 초기의 설계 모습보다 훨씬 더 복잡한 설계를 만나고 있으며, 전용의 데이터 관리 솔루션 없이 엔터프라이즈로 확장하기 어렵다는 걸 깨닫고 있다”고 말했다.
전통적인 기업 애플리케이션은 데이터베이스를 따로 두고, 상태(state)를 로직과 분리해 관리하는 형태로 만들어졌다. 반면, 컨테이너 기반 애플리케이션은 로직과 상태를 모두 갖는 ‘스테이트풀’ 형태를 만들기 쉽다.
논리적인 형태는 로직과 상태를 하나로 합치지만, 물리적으로 수많은 데이터를 외장형 스토리지에 저장하는 게 일반적이다. 쿠버네티스는 외장형 스토리지에 있는 데이터를 애플리케이션에 연결하기 위해 ‘컨테이너스토리지인터페이스(CSI)’ 드라이버를 활용하게 한다. 스토리지는 서버의 CSI 드라이버로 통신하며, 애플리케이션에 ‘퍼시스턴트볼륨(PV)’을 할당해 컨테이너의 이동에도 데이터 연결을 유지할 수 있다.
CSI 드라이버는 주로 스토리지 제조업체에서 제공한다. 강신우 이사는 “이 드라이버는 소규모 컨테이너 환경의 스테이트풀 환경에서 괜찮지만, 엔터프라이즈 급으로 확장하거나 실제 서비스로 활용하기에 부족하다”며 “CSI가 스토리지 커넥터로서 외장형 스토리지를 API로 호출하는 것이므로, 보안, 성능 병목 등 스토리지의 기본적인 제약사항을 그대로 노출하기 때문”이라고 설명했다.
수많은 컨테이너가 CSI 드라이버로 스토리지를 호출하면 병목을 만들 수 있고, 백업과 복제를 스토리지 차원에서 수행해야 해 애플리케이션의 데이터 보호가 컨테이너 안과 밖으로 이원화된다.
퓨어스토리지는 클라우드 네이티브 애플리케이션에 최적화된 스토리지를 써야 한다는 입장을 유지해왔다. 컨테이너의 특수성을 이해하고 PV를 할당하며, 애플리케이션 차원에서 데이터를 복제하고 가용성을 보장하는 형태의 스토리지여야 한다는 것이다.
퓨어스토리지 포트웍스는 클라우드 네이티브 스토리지로 설명된다. 포트웍스는 컨테이너와 쿠버네티스 환경에서 데이터 백업과 복구, 데이터 이동 등의 기능을 제공한다.
그는 “개발자는 데이터 백업과 복구, 데이터 이동 등의 기능을 원하지만, 이를 직접 구현하기 어렵다”며 “스토리지에 대한 수많은 요청이 API 기반으로 생성되는데 이를 얼마나 큰 용량으로 자동화할 수 잇느냐가 중요하다”고 강조했다.
포트웍스는 ‘포트워스 데이터 서비스’, ‘포트웍스 엔터프라이즈’, ‘포트웍스 백업 및 재해복구’ 등 3가지로 나뉜다.
포트웍스 데이터 서비스는 일종의 ‘서비스형 데이터베이스’로, 카탈로그를 정의하고 개발자가 셀프 프로비저닝하며 스케줄을 관리할 수 있는 데이터 볼륨을 제공한다. 포트웍스 엔터프라이즈는 CSI를 더 컨테이너 네이티브하게 제공하는 기능을 갖고 있다. 스토리지나 데이터 프로비저닝을 자동화하고 데이터를 쉽게 관리하게 해준다. 포트웍스 백업 및 재해복구는 애플리케이션 차원의 백업 특화 기능을 제공해 비즈니스 크리티컬 앱 수준의 재해복구 시스템을 구축할 수 있다.
강 이사는 “포트웍스 엔터프라이즈는 CSI를 대체해 워커노드 상 컨테이너에 대한 내외장 디바이스를 하나의 스토리지 풀로 가상화할 수 있다”며 “프로비저닝 자동화뿐 아니라 각 앱에 대한 가용성도 제공하며, I/O 프로파일링으로 앱 레벨의 성능 최적화 기능도 제공한다”고 설명했다.
그는 “기존의 일반적 통합 백업과 달리 컨테이너는 각 요소가 달라서, 앱이 자체 라벨을 갖기도 하고 각자 커스텀 디파인 리소스 풀을 가져서 개별 백업을 해야 하는 환경도 있다”며 “이를 레거시 백업으로 대응하기 어려운데, 컨테이너에 최적화된 백업 소프트웨어로서 포트웍스 백업을 사용해 스냅샷과 백업 시스템을 구축할 수 있다”고 덧붙였다.
포트웍스 백업 및 재해복구는 또한 백업 내에서 사이버공격으로부터 안전하게 보호하고, 백업본에 대한 악의적 공격도 방어할 수 있다.
포트웍스 데이터 서비스는 사전 정의한 카탈로그에서 원하는 데이터베이스를 선택해 원하는 쿠버네티스 클러스터에 배포할 수 있다. 배포할 때 리소스 부분은 사전에 정의된 리소스 크기로 배포되고, 포트웍스 백업 기능과 연계해 원하는 백업 스케줄과 복구 정책을 설정, 운영할 수 있다.
강 이사는 “포트웍스의 3가지 제품을 통해 용량 관리를 자동화하고, 개발에 필요한 데이터 환경을 빠르게 할당 받을 수 있으며, 컨테이너 환경을 엔터프라이즈 수준으로 운영할 수 있다”며 “데이터 이동의 경우에도 마이그레이션 도구를 활용해 간편히 수행할 수 있다”고 말했다.
포트웍스는 현재 11개 이상의 데이터 서비스를 제공하며, 쿠버네티스 배포판 10종을 지원한다. 데이터 보호는 100%를 보장한다.
강 이사는 “포트웍스는 애플리케이션 타임투마켓을 3배 단축해 주며, 애플리케이션과 데이터베이스 가용성을 99.999% 보장한다”며 “클라우드 인프라 비용도 3분의 1 절감할 수 있다”고 밝혔다.
그는 “컨테이너 환경을 엔터프라이즈로 전환하거나 기존 앱을 현대화할 때 중요한 부분은 데이터 여정의 설계”라며 “퓨어스토리지 포트웍스는 이런 데이터 설계를 가장 잘 할 수 있도록 도와준다”고 강조했다.
글. 바이라인네트워크
<김우용 기자>yong2@byline.network