김범 엔코아 전략사업본부 전무

▲ 김범 엔코아 전략사업본부 전무

[컴퓨터월드] 차세대 시스템 구축이라는 목적아래 기존의 거대한 모놀리식(Monolithic) 시스템을 또 다른 거대한 Monolithic 시스템으로 재구축하려는 움직임은 전 세계 모든 산업군에서 여전히 진행중이다.

모든 시스템 구축과 마찬가지로 특히 차세대 시스템 구축 과정에서는 인프라 재구성, 애플리케이션 재구성 그리고 데이터 재구성이라는 세가지 중요 핵심 축이 존재한다. 차세대 시스템의 성공여부는 상당부분 개발단계에서 우선순위가 높은 데이터를 제공하느냐와 오픈 직전에 정확하고 신속한 데이터 재구성을 위한 데이터 이행 전략을 수립하느냐에 달려있다.

하지만, 최근 고객들의 MSA(Microservice Architecture)로 향한 시스템 구축 방향에서 기존의 Monolithic 차세대 구축에서 활용된 데이터 이행 전략이 과연 성공할 수 있을까 라는 의문을 가지게 된다.

 


성공적인 Monolithic 차세대 구축 경험을 통한 Microservice 데이터 이행 여정

기존 Monolithic 차세대 시스템 구축시에도 시스템이 개발될 동안 기존 고객의 업무의 연속성 때문에 레거시 Monolithic 데이터 구조의 변경은 계속 발생됐으며 이는 신규 시스템의 데이터 구조가 확정될 때까지 데이터 변환, 매핑, 이행을 위한 스크립트를 확정 짓기 어려운 이유로 작용했다.

사실, 데이터 모델러들과 데이터 이행 개발자들의 충분한 정보 공유가 없는 상황에서 데이터 이행 담당자들은 빠른 시간에 데이터를 이행해야 하고, 개발자들에게 개발용 데이터를 빨리 전달해주어야 했다. 또한 차세대 오픈 전에 충분한 데이터 이행 시간 시뮬레이션을 해야했고 최종 데이터 이행 이후에 데이터 검증까지 수행해야만 했다.

 

이런 상황에서 레거시(Legacy, AS-IS) Monolithic 데이터 구조의 변경은 어려울 수밖에 없었다. 차세대 프로젝트의 실패 원인이 상당부분 데이터 이행때문이라는 것을 알아야 할 필요가 있다.

사실 엔코아의 수많은 Monolithic 차세대 구축 성공의 열쇠는 최적의 데이터 구조를 설계하는 것에서 찾을 수도 있지만 더 큰 이유는 데이터 모델러들이 직접 데이터 이행을 수행하고, 레거시(Legacy, AS-IS) Monolithic 데이터 구조의 변경에도 불구하고 실시간으로 데이터 이행과 검증 스크립트를 생성해내는 자동화된 솔루션이 뒷받침하고 있었기 때문이다.

그렇다고 전반적인 비용이 증가한 것도 아니었다. 오히려 모든 차세대 구축 기간에 데이터 모델러들이 데이터 이행까지 수행하는 전략을 통해 지연없이 확실한 데이터를 이행함으로써 비용을 절감할 수 있었다. 이 모든 경험을 Microservice 구축을 위한 데이터 이행 전략에 담을 필요가 있다.


MSA 구축에서는 더 이상의 DA(Data Architect)는 필요 없다는 오해

기존 애플리케이션이 운영되는 대용량의 Monolithic 데이터 구조를 리팩토링(Re-factoring)하는 것은 Microservice를 구축할 때 가장 어려운 문제이다. 기존 Monolithic 시스템에서 업무의 독립성 측면, 데이터의 유연성 측면, 시스템의 성능 측면, 향후 운영관리 측면에 부합되고 각각의 Microservice의 특성을 고려한 데이터 분리가 매우 중요한 요소이며, 우선 여기에서 DA의 역할이 크게 존재한다.

데이터를 특성에 따라 파악하는 것도 필요하다. 자주 변경되지 않지만 지속적으로 조회가 필요한 참조 데이터, 코드 정보나 고객정보 같이 중복 최소화와 때론 중앙 집중식의 접근이 필요한 마스터 데이터, 필수적인 조인과 업데이트가 자주 일어나는 트랜잭션 데이터, 문서나 동영상, 이미지 같은 Blob 저장소가 필요한 데이터 등 데이터의 특성 분석이 필요하며 Microservice에 맞게 최적의 DBMS 선택하는 것 역시 DA의 중요한 역할이다.

 

 개발자들의 시각에서 Microservice는 서비스 특성에 맞게 다양한 종류의 DBMS, NoSQL을 사용할수 있는 데다 Hibernate, JPA등의 API 프레임워크를 통해 직접적이고 물리적인 DB 접근보다 논리적인 데이터 입출력만 고민하는 심플한 API 특성으로 인해 개발자들의 환영을 받고 있다.

하지만 여기서 간과하지 말아야 할 것은 Microservice라 하더라도 체계적인 데이터 모델, 전체적인 다른 Microservice와의 조화, 데이터 특성을 고려하지 않게 된다면 전사적인 데이터 관리, 즉 거버넌스의 프레임에서 빠져나오게 되어 기업 입장에서는 향후 수많은 데이터 오류, 중복, 복잡성이 발생해 Microservice의 원래 목적을 잃어버릴 수 있게 된다는 점이다.


Monolithic과 Microservice의 공존 기간에 대한 이해, 데이터 최신성 보장도 고려해야

기존의 Monolithic 시스템 차세대는 여러가지 단계별 시스템 오픈 전략에 맞추어 대규모 데이터 이행이 이루어지는 것이 통상적이었다. 하지만 업무의 연속성을 위해 Monolithic시스템이 한동안 운영되면서 Microservice별로 차근차근 오픈되는 소위 Monolithic 시스템의 시간차 고사작전 전략이 수행되고 Microservice의 치명적 오류로 인해 잠시나마 업무의 연속성을 위해 Monolithic으로 다시 전환해야 하는 경우도 발생한다.

이를 위해 기존 Monolithic에서의 Microservice로의 애플리케이션 분기점을 생성해 놓는 기법을 준비하는 경우가 많다. 이러한 여러가지 상황으로 인해 Monolithic과 Microservice의 공존기간이 발생하는 경우 Monolithic과 Microservice사이의 전환에 따른 데이터 최신성을 어떻게 보장할 것인가도 중요한 고려대상이다.


애자일, 데브옵스 기반의 Microservice 구축을 위한 Monolithic 데이터 이행 전략, 데이터 가상화 기술 활용도 하나의 해법

Microservice를 구성하면서 클라우드 서비스, 도커, 애자일, 데브옵스, 이기종 데이터 등 다양한 기술과 서비스의 조합을 통해 새로운 조직, 즉 소위 데브옵스 기반의 애자일 개발 정착이 이루어짐으로써 매우 빠른 데이터 구조의 변경이 이루어지고 아직 완전한 Microservice가 오픈되기 전까지는 변경된 데이터 구조에 맞게 Monolithic 데이터를 빠르게 수집 혹은 공급받을 필요가 있다.

그때마다 새로운 개발 및 검증할 데이터를 이행해야 하는 부담이 발생하며 통상적으로 ETL과 같은 물리적인 데이터 이동은 여러가지 시간적, 비용적 부담을 가져온다. 이를 해결하기 위해 데이터 가상화를 활용해 보는 것도 좋다.

데이터 가상화는 ETL과 같이 물리적인 데이터 이동이 아닌 인메모리(in-memory) 공간에 가상의 DB와 가상의 테이블을 구성함으로써 물리적인 데이터 이동없이 다양한 데이터 변형에 원천 Monolithic 시스템의 최신 데이터를 공급해 줄 수 있는 기술이다. 최근 데이터 가상화 기술은 데이터 마스킹, 접근 이력과 같은 안전한 데이터 보호 기능과 더불어 검증된 데이터를 Microservice가 원하는 물리적인 장소에 동일한 구조의 데이터를 전송하는 기술까지 탑재되어 Microservice 구축에 따른 개발테스트 데이터 검증으로 훌륭한 전략을 구사할 수 있다.

▲ 가상화 기술 기반의 데이터 이행


분산 데이터 검증을 위한 통합 데이터 저장소

Microservice의 각 시스템들은 서로 독립적인 데이터 구조로 구축되고 분산구조를 가질 수밖에 없다. 하지만 기업의 비즈니스 특성상 End-to-End의 비즈니스를 검증하기 위해 각 Microservice가 운영하는 데이터를 연결하여 논리적인 데이터 정합성을 검증할 경우가 있다. 더구나 고객의 VOC가 많은 항목이나 비즈니스적인 이상징후가 발생할수록 각 서비스별로 독립된 분산된 시스템 환경에서의 데이터 정합성을 점검하는 과정은 누구나 겪게 될 수밖에 없다.

Microservice마다 독립적으로 기술적인 검증 특히 데이터 검증만으로 이러한 전사적인 End-to-End의 비즈니스 관점의 논리적 데이터 검증을 이룰 수는 없다. 따라서, 전사적인 관점에서 분산서비스 내부의 기본 데이터 검증부터 분산서비스 간의 데이터 관계 검증, 비즈니스 검증, 트랜잭션 검증을 수행할 별도의 통합 데이터 저장소를 고민할 필요가 있다.

통합데이터 저장소는 단순한 데이터 집합이 아니라 데이터 정합성을 검증할 프로세스, 품질 규칙, 참고 데이터 모델 등 다양한 데이터 관리를 위한 콘텐츠도 같이 마련되어야 한다. 통합 데이터저장소는 데이터 정합성, 데이터 체계관리, 비즈니스 누수 탐지 등 다양한 데이터 관련 정보를 제공할 수 있는 데이터 포털의 기반이 되기도 한다. 물론, 통합 데이터 저장소는 물리적 구성과 함께 데이터 가상화 기술을 활용한 탄력적인 기술의 결합으로도 가능하다.


Monolithic에서 Microservice로의 변화하는 여정에서 유연한 데이터 전략은 필수

Microservice는 기존 Monolithic이 가질 수 없는 Loosely-Coupled라는 탄력성으로 인해 시스템의 장애에 대비하고 빠르고 독립적인 서비스 배포와 관리를 지원함으로써 이미 하나의 큰 트랜드로 자리잡았다. 하지만, Monolithic에서 Microservice로 변화하는 과정에서 데이터 이행, 검증, 거버넌스, 활용체계 마련을 위한 데이터 전략을 구사하지 않고는 Microservice의 여정에 빨간 불이 켜질 수밖에 없다는 것을 유념해야 한다.

저작권자 © 컴퓨터월드 무단전재 및 재배포 금지