솔루션영역 05 / 06

오픈소스 데이터 시스템을 위한 엔터프라이즈급 확장

확장성

UPM for Enterprise는 Kubernetes와 OpenShift 플랫폼에서 실행되는 데이터 서비스에 고급 확장성 기능을 제공합니다. 혁신적인 아키텍처와 자동화된 오케스트레이션을 통해 MySQL, PostgreSQL, Redis, Kafka/Zookeeper, ElasticSearch 등 다양한 오픈소스 데이터 시스템에 엔터프라이즈급 확장 운영을 제공합니다.

UPM for Enterprise확장성
섹션3
분 분량~5
확장성

확장성 아키텍처

UPM for Enterprise의 확장성 기반은 관리 플레인과 데이터 플레인의 관심사를 분리한 이중 계층 아키텍처 위에 구축되어 있어, 제어 구성 요소와 워크로드 구성 요소를 독립적으로 확장할 수 있습니다.

플랫폼 계층에서는 UPM API-Server가 SpringCloud의 마이크로서비스 아키텍처를 활용하여 수평 확장 가능한 관리 기능을 제공합니다. 이 분산 설계 덕분에 데이터 서비스 규모가 커져도 컨트롤 플레인은 늘어나는 관리 요청을 효율적으로 처리할 수 있습니다. 플랫폼에는 Redis 기반 캐싱이 내장되어 있어, 집약적인 확장 작업 중에도 쿼리 성능을 최적화하고 데이터베이스 부하를 줄입니다. Helix 플랫폼 구성 요소는 다양한 데이터베이스와 미들웨어 서비스를 위한 전문 관리 기능을 제공하여 이러한 기능을 확장하며, 서비스 유형과 인스턴스가 늘어나도 일관된 성능을 보장합니다.

실제 워크로드 오케스트레이션을 담당하는 엔진 계층은 두 개의 주요 Operator로 구성됩니다. Unit Operator는 Unit과 UnitSet 개념을 통한 통합 추상화를 도입하여, 다양한 데이터 시스템 전반에서 일관된 워크로드 정의를 가능하게 합니다. 서비스 정의에 템플릿 기반 접근 방식을 사용하여, 데이터 시스템의 유형과 버전별 요구 사항에 맞춰 조정할 수 있는 버전 인식 구성을 제공합니다. Compose Operator는 복잡한 운영 워크플로를 위한 사용자 정의 리소스 정의(CRD)를 구현하여 이러한 기능을 확장하고, 확장 작업에 수반되는 복잡한 의존성과 상태 전환을 관리합니다.

데이터 서비스 확장 기능

UPM for Enterprise는 지원하는 각 데이터 시스템의 아키텍처와 운영 특성에 맞춘 포괄적인 확장 전략을 구현합니다.

MySQL과 PostgreSQL 배포의 경우, 플랫폼은 수직 확장과 수평 확장을 모두 관리합니다. 읽기 용량을 확장할 때는 적절한 복제 지연 관리를 통해 데이터 일관성을 유지하면서 읽기 전용 레플리카의 생성과 구성을 오케스트레이션합니다. 확장 작업 중에는 커넥션 풀을 조정하여 커넥션 폭주를 방지하고 애플리케이션 트래픽이 원활하게 전환되도록 합니다. CPU, 메모리, 스토리지 조정을 포함한 리소스 확장은 진행 중인 트랜잭션과 백업 작업을 신중하게 고려하여 수행됩니다.

Redis 확장 작업은 단일 구성과 클러스터 배포를 모두 완벽하게 지원합니다. 레플리카가 구성된 단일 모드에서는 UPM이 확장 중 마스터-레플리카 토폴로지 변경을 관리하여 적절한 복제 동기화를 보장합니다. Redis Cluster 배포의 경우, 클러스터 가용성을 유지하면서 슬롯 재조정과 리샤딩을 포함한 복잡한 클러스터 토폴로지 변경을 처리합니다.

Kafka 클러스터 확장은 분산 특성 때문에 특별히 주의를 기울입니다. 플랫폼은 브로커 추가와 제거를 관리하면서 파티션 재할당을 조율하여 데이터 분산의 균형을 유지합니다. 지능형 파티션 재조정 전략을 구현하여 확장 중 데이터 이동을 최소화하고 성능 저하를 방지합니다. 연관된 ZooKeeper 앙상블 확장은 Kafka 작업과 연계하여 관리되어 적절한 쿼럼과 성능을 유지합니다.

ElasticSearch 확장 작업은 검색 클러스터의 복잡한 노드 역할과 인덱스 분산을 고려하여 처리됩니다. 플랫폼은 데이터 노드의 수평 확장을 관리하면서 샤드 재조정과 할당을 자동으로 처리합니다. 적절한 클러스터 쿼럼을 유지하도록 마스터 노드 확장을 조율하고, 검색과 수집 워크로드를 최적화하기 위한 전용 코디네이팅 노드도 처리합니다. 인덱스 설정과 샤드 할당은 새로운 클러스터 토폴로지에 따라 자동으로 조정됩니다.

기술적 구현

확장 구현에는 정교한 리소스 관리와 상태 점검 메커니즘이 통합되어 있습니다. 확장되는 구성 요소의 리소스 사양은 과거 사용 패턴과 사전 정의된 확장 정책을 바탕으로 자동 산정됩니다. 플랫폼은 적절한 안티 어피니티 규칙과 Pod Disruption Budget을 적용하여 확장 작업 중에도 서비스 가용성을 유지합니다.

확장 작업 중의 구성 관리는 버전이 관리되는 템플릿 시스템으로 처리됩니다. 이 시스템은 확장된 배포 전반의 일관성을 유지하면서 각 구성 요소의 역할별 구성을 생성합니다. 매개변수는 새로운 토폴로지에 따라 자동 조정되며, 내장된 검증 기능이 잘못된 구성을 방지합니다.

플랫폼은 확장 프로세스 전반에 걸쳐 포괄적인 상태 점검을 수행합니다. 여기에는 리소스 가용성 확인, 의존성 준비 상태 점검, 서비스별 상태 검증이 포함됩니다. 확장 중 롤링 업데이트는 서비스 가용성 유지를 고려하여 관리되며, 상태 점검에 실패하면 자동으로 롤백됩니다.

이러한 기능을 통해 UPM for Enterprise는 운영 안정성과 성능을 유지하면서 엔터프라이즈 데이터 서비스를 확장하기 위한 견고한 기반을 제공합니다. 플랫폼의 통합된 접근 방식은 각 데이터 시스템의 고유한 특성과 요구 사항을 존중하면서 복잡한 확장 작업을 단순화합니다.