‘분산 환경(멀티 클라우드 및 MSA 등) 데이터 처리 가상화 솔루션’

[아이티데일리] 오라클이 발표한 ‘기업 인프라의 주류로 자리매김한 멀티 클라우드’ 보고서에 따르면 한국을 포함한 전세계 기업 중 멀티 클라우드를 채택한 곳은 98%이다. 4개 이상의 클라우드 서비스를 도입해 활용중이거나 활용할 계획이라고 답한 비율도 31%로 집계됐다. 대부분 기업이 비즈니스 변화에 민첩하게 대응하기 위한 IT 전략으로 멀티 클라우드를 채택하고 있는 것이다.

이 같은 상황에서 MSA(Microservcies Architecture, 마이크로서비스 아키텍처)를 선호하는 추세 역시 분명해지고 있다. 서비스를 최소 단위로 분산시켜 서비스의 변경, 추가 등이 용이해 기민한 고객 대응이 가능하기 때문이다. 거대 기업인 아마존, 넷플릭스, 우버 등과 함께 국내에서는 우아한형제, 쿠팡, 11번가 등이 도입한 사실이 알려지며 화제가 됐다. 국민은행, 농협은행 등 금융권에서도 MSA 도입을 적극적으로 진행 중인 것으로 알려졌다.

멀티 클라우드, MSA 등과 같은 IT 트렌드는 결국 기업이 비즈니스 변화에 따라 유연하게 대응하기 위한 움직임이라고 볼 수 있다. 그러나 이러한 분산 환경에서는 특별한 조치를 취하지 않은 이상 데이터 값이 일치하지 않는 데이터 사일로(silo) 현상, 다르게 말하면 데이터 불일치 현상이 존재한다. 추가 개발을 통해 데이터 불일치 현상을 없앨 수 있지만 운영의 복잡성 및 개발 난이도 증가 등 다른 문제들이 수반되게 된다.

‘SuperACID(슈퍼애시드)’는 멀티 클라우드, MSA와 같은 분산 환경에서 발생하는 데이터 사일로 또는 불일치 현상을 해결한다. 개발자가 데이터 간의 신뢰성 확보를 위한 추가 개발을 하지 않아도 ‘SuperACID(슈퍼애시드)’를 통해 데이터 정합성을 보장받기 때문에 개발 난이도나 운영 복잡성 또한 증가하지 않는다. 이 외에도 대시보드를 통해 서비스의 처리량, 호출빈도, 지연상황 등 복잡도에 대한 실시간 정보를 확인할 수 있다.

‘SuperACID’는 공공부문 SW AWARD 상용 SW 부문을 수상한 비투엔의 솔루션 개발 역량과 오픈랩스의 오픈소스 전문 기술을 집약시킨 솔루션이다. MSA기반의 서비스 처리 방법, 성능 보장 방법, 트랜잭션 가상화 처리 방법 등 3건의 특허 기술을 기반으로 개발되었다.

 

모든 분산 환경 지원

다양한 기업의 서비스 특성, 환경에 따라 멀티 클라우드나 MSA가 적합하지 않은 경우도 있다. 이에 ‘SuperACID’는 멀티 클라우드와 MSA를 포함해 온프레미스(On-Premise) 환경과 VM(Virtual Machine) 환경, 컨테이너(Container) 환경 등 모든 분산 환경에서 데이터 정합성을 보장한다.

 

글로벌 트랜잭션 관리를 통한 데이터 정합성 보장

모든 순간에 DB(데이터베이스)간 데이터 정합성(데이터 값의 정확성)이 일치할 수 있도록 2PC(Two Phase Commit) 기반의 XA 트랜잭션을 지원한다. 트랜잭션이란 DB의 상태를 변화시키는 작업의 단위를 뜻하고, 2PC는 트랜잭션을 복수의 DB에 실행시킬 때 데이터 합이 맞을 수 있도록 하기 위한 알고리즘이다.

이렇게 자동화된 분산 트랜잭션 관리를 통해 개발자가 높은 개발 난이도를 요구하는 보상 서비스를 개발하지 않아도 데이터 정합성을 보장받을 수 있다. 또한 서비스간 호출 증가에 따른 무결성 오류 발생의 위험을 원천 차단하여 개발자 또는 엔지니어가 안정적으로 서비스에만 집중할 수 있도록 도와 업무 생산성 향상을 지원한다.

다만 2PC 알고리즘 특성상 2단계로 데이터를 처리함으로써 성능 저하가 있을 수 있는데, SuperACID는 ‘마이크로 서비스 아키텍처 기반의 트랜잭션 가용성과 성능 보장 처리 장치 및 방법’과 ‘마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법’ 등의 특허를 바탕으로 2PC기반의 완전한 데이터 정합성을 보장함과 동시에 성능 저하 단점 또한 해결했다.

 

어노테이션을 통한 쉽고 빠른 적용

단 한 줄의 코드로 트랜잭션 처리를 할 수 있도록 자동화(Annotation) 기능을 제공하여 편의성을 높였다. 기존 프로그램의 변경을 최소화하면서 적용할 수 있기 때문에 이미 구축된 시스템에서도 쉽게 도입할 수 있다.

SuperACID가 Java의 Data Source Level에서 서비스 간 트랜잭션을 묶어서 처리함에 따라 개발자는 별도의 작업 필요 없이, 단 한 줄의 ‘@GlobalTransaction’ Annotation 만으로 서비스 간에 이루어지는 트랜잭션을 완전하게 처리하므로 손쉽고 빠르게 서비스간 트랜잭션을 구현/적용할 수 있다.

 

Async. 기반 병렬 처리 지원으로 시스템 성능 보장

여러 서비스 간의 병렬 처리를 지원하여 안정적인 처리 성능을 보장한다. 즉 서비스 호출간 대기 상태가 없어 병렬 처리가 가능해 트랜잭션으로 인한 성능 저하를 방지한다.

 

인메모리 데이터 클러스터로 데이터의 안정성 확보

클러스터(Cluster) 기반의 인메노리(In-Memory) DB를 탑재해 데이터 처리 오류 등 장애 상황 발생 시 이전 데이터로의 완전한 복구를 지원한다. 이로써 데이터 유실의 위험을 해결하고 데이터의 안정성을 확보할 수 있다.

또한, 인메모리 기반으로 데이터를 관리하여 트랜잭션 처리 성능을 보장하고, 3개 이상 노드에 클러스터를 구성(Active-Active Cluster 구성)해 일부 TM Server 장애 시에도 데이터 손실이 없다는 것이 장점이다.

 

완전한 Commit / Rollback 지원

완전한 Commit과 Rollback을 지원하여 DBMS Rollback과 동일하게 데이터의 무결성을 보장한다.

특히 기본적인 시스템 구성에서는 장애 발생 시 해당 서비스에 대한 데이터 복원이 가능하지만, 처리가 이미 완료된 서비스에서의 데이터를 직전 상태로 복구하는 것은 불가능하다. 이를 ‘SuperACID’는 TM Server를 통해 데이터 복원 처리하여 모든 서비스에 연동된 데이터를 이전 시점으로 Rollback시켜 효율적인 데이터 관리를 지원한다.

 

중요한 발견을 위한 데이터 시각화

대시보드를 통해 트랜잭션 처리량, 호출 빈도, 지연상황, 복잡도에 대한 실시간 정보를 제공하고 장애 상황을 손쉽게 파악할 수 있도록 돕는다. 시스템 장애 상황에서는 솔루션에서 남기는 로그를 이용하여 신속하게 점검할 수 있다. 또한 서비스의 효율적인 분산과 복잡도를 해소할 수 있는 정보를 통해 효과적인 서비스 설계를 지원한다.

이 외에 직관적인 비주얼라이제이션을 통해 글로벌 트랜잭션 유입량과 처리 상황을 애니메이션 플로우로 확인할 수 있으며 트랜잭션 당 처리되고 있는 평균 branch(각 서비스) 수, 평균 branch(각 서비스들), 완료된 트랜잭션 상태 등 각종 현황을 상세히 파악할 수 있도록 해준다.

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