EXIS Software Engineering
구글 클라우드의 관리형 서비스로 신속한 서비스 제공 및 가용성 최대화 (Containerization / DevOps)
EXIS Software Engineering(이하 EXIS)는 풀무원을 비롯한 여러 고객사에 신선 식품을 성공적으로 공급 관리해주는 시스템(소프트웨어, 물류로봇 시스템)을 가지고 있습니다. On-Premise에서 작동하는 시스템과 private cloud에서 작동하는 시스템을 더 확장하고자 하는 계획이 있었습니다. 이를 효과적으로 빠르게 확장하기 위해서는 클라우드 사용을 결정하였고, 클라우드로 이전하면서 현재의 애플리케이션이 좀 더 효과적으로 관리할 수 있는 아키텍처를 구성하고자 했습니다.
이를 위한 EXIS는 온프레미스 가상화 시스템을 구글 클라우드로 옮기기로 결정합니다. 단순히 리프트 앤 시프트(Lift and Shift) 방식으로 옮기는 것이 아니라 메가존소프트의 권고에 맞게 가상화 애플리케이션을 컨테이너 애플리케이션 형태로 변경하기로 결정합니다. 그리고 구글 클라우드에 제공하는 데브옵스(DevOps)들을 적극적으로 사용하기로 결정합니다.
메가존소프트와 함께 진행한 구글 클라우드 관리형 서비스로 진행한 마이그레이션 프로젝트는 리팩토링이 포함된 다소 많은 작업들이 포함되어 있음에도 8개월 만에 성공적으로 마무리되었고, EXIS는 원하는 수준 이상의 신속한 신규 공급망 시스템을 배포할 수 있게 되었고, 운영 측면에서도 애플리케이션의 서비스 가동률이 기존에 비해서 몇십 배 높아지는 결과를 만들게 되었습니다.
EXIS는 물류 고객사들을 위해서 RabbitMQ(주문의 순서가 지켜지도록 서비스를 보장해 주는 Queue System)와 Redis(반복적인 작업을 더 빠르게 하기 위해 캐시 역할을 함)를 활용하여 매우 효과적인 공급망 관리(Supply Chain Management, SCM)를 구성하고 운영하였습니다. 이에 풀무원과 같은 공급망 관리가 매우 중요한 신선식품에서 기술력을 인정받고 이에 대해서 다른 고객사에 확대 적용하고자 하는 비즈니스 계획이 있었습니다.
하지만 현재 구성된 가상화 환경에서 신규 고객을 위한 공급망 관리 확대는 서버 구매, 구성, 배포 그리고 관리 등 많은 시간과 자원이 소모되는 작업이었습니다. EXIS 내부적으로 이러한 작업이 필요할 때 바로 적용할 수 있도록 클라우드로 옮기고자 하는 요구 사항이 있었으나, 클라우드 마이그레이션 경험과 인력 부족에 봉착하였습니다.
EXIS는 이러한 고민을 해결하고자 메가존소프트에 도움을 요청하였습니다. 이에 메가존소프트는 우선적으로 클라우드로 옮기는 것이 타당한지 기술적인 검토를 진행하였습니다. 검토 결과 가상화 시스템을 옮기는 것이 기술적으로 가능하긴 하나, 현재 사용하고 있는 시스템의 구성을 크게 2가지 형태로 변경하는 것이 추후 확장 및 관리에 효과적이라는 결론에 도달하였습니다.
✅ 데브옵스 도구들에 대해 관리형 시스템으로 변경 추천
주요하고 사용하고 있는 도구로 Redis를 구글 클라우드에서 관리해 주는 Redis의 형태로 변경하는 것을 추천하였습니다. 또한 사용하고 있던 SQL Database를 Cloud Spanner 기반으로 변경하여 지속적인 확장에도 대응할 수 있는 아키텍처로 변경하는 것을 추천하였습니다. 관리형 컨테이너인 GKE의 인프라 구성에서 CI/CD pipe line 구축을 위한 GCP의 Container Registry를 이용하여 Integration된 이미지를 관리하여 Delivery를 pipeline으로 처리 자동화하였습니다. 운영 시스템과 개발 시스템을 동일한 환경의 GCP로 구축하여 개발된 서비스를 운영 서비스에 pipeline 변경만으로 Blue/Green 환경처럼 적용하였습니다.
✅ 관리형 컨테이너(GKE) 인프라 구성으로 변경
가상화 환경으로 되어 있는 인프라 구성은 확장이 유리하지 않을 뿐만 아니라, 관리를 일일이 해줘야 하는 약점이 있었습니다. 이를 관리형 컨테이너 기반으로 인프라로 구성 변경하여 보다 안정적이며 빠르게 도입할 수 있는 GKE 인프라로 변경하는 것을 추천하였습니다.
[그림 1] Exis의 AS-IS 구성
EXIS는 메가존소프트의 제안을 검토한 후 현재 가상화 운영 환경을 구글 클라우드에 관리하는 서비스들로 변경하기로 하였습니다. 메가존소프트는 총 5단계의 과정을 거쳐 신속하게 EXIS 운영 환경을 구글 클라우드로 마이그레이션 하였습니다.
첫 번째로 진행한 작업은 기존 환경 분석이었습니다. 메가존소프트는 현업 담당자와 함께 현재 시스템에서 사용하는 자원들에 대한 통계 정보를 수집하여 리소스를 산정하고, 컨테이너 환경으로 옮기기 위해 기능을 구분할 수 있는 요소별로 애플리케이션을 조사했습니다.
두 번째로 진행한 작업은 기존의 환경 분석을 통해 알아낸 정보를 통해 컨테이너 인프라 환경을 위한 애플리케이션의 리팩토링이었습니다. 이 단계에서 메가존소프트는 현업 담당자와 지속적인 미팅을 통해서 기능을 어디까지 구분해서 나눌 수 있는지 그에 따른 부작용은 없는지 등을 면밀하게 검토하고 해당 내용들을 반영하여 테스트 환경에서 반복 테스트를 통해서 애플리케이션에 생길 수 있는 문제를 최소화하였습니다. 또한 이러한 반복 과정을 통해서 사용하는 리소스에 대한 요청/한계를 파악하였고, 이를 명세서(Manifest)에 기록하여 컨테이너가 추후에 스케일 아웃(Scale-out)에 대응할 수 있도록 작성하였습니다.
세 번째로 진행한 작업은 작성한 애플리케이션들이 실사용자의 패턴 및 부하에 문제 없이 동작하기 위해 PoC와 BMT를 현업과 함께 진행하였습니다. 이미 명세서에 리소스에 대한 요청/한계가 기록되어 있었지만, 실제 구성에는 다른 패턴을 나올 수 있기 때문에 이 부분은 충분한 검토가 필요하였습니다. 이에 현업에서 요구하는 시나리오를 바탕으로 테스트하는 한편 카오스 엔지니어링에 걸맞은 테스트들을 통해 필요 쿠버네티스 노드를 적용하였습니다.
네 번째로 진행한 작업은 컨테이너 인프라 환경으로 고객이 이전하는 경우 새로운 개발 도구 및 배포에 적응하기 위한 많은 어려움을 겪게 되는데, 이를 위한 교육과 구성에 대한 설명회를 진행하였습니다. 그리고 기존에 고객사에서 사용하던 데브옵스 도구들을 클라우드에서 사용하는 도구들로 변경하는 것에 관해서도 여러 번의 미팅을 통해 고객 운영팀에서 진행할 수 있도록 하였습니다.
이때 실제로 프로젝트를 함께 진행한 담당자는 업무에 관해 충분히 이해할 수 있었지만, 참여하지 못했던 인력은 구성 부분이나 컨테이너 인프라 환경으로 변경되었을 때 이에 대한 고려 사항들을 다 함께 이해하는 시간이 꼭 필요합니다. 메가존소프트는 이에 대한 많은 경험과 지식을 가지고 있기 때문에 이를 고객이 효과적으로 사용할 수 있도록 하는 문서와 프로그램을 통해서 고객이 구글 클라우드의 새로운 컨테이너 인프라 환경에 적응할 수 있도록 하였습니다.
[그림 2] Exis의 TO-BE 구성
마지막으로 방화벽, IAM, Cloud Armor 최적화 작업과 애플리케이션 모니터링 환경인 고도화하는 그라파나(Grafana)와 연동 작업도 진행하였습니다.
EXIS는 8개월 만에 가상화 환경에서 구글 클라우드로 공급망 관리 시스템을 옮겼습니다. EXIS의 모든 애플리케이션은 가상화에 최적화되어 운영되고 있었으나, 새로운 환경인 구글 클라우드로 전환하는 데 있어 시행착오를 겪지 않았습니다. EXIS는 메가존소프트의 도움을 통해 전환부터 운영까지 내부 인력이 전환에 따른 혼선 없도록 사전 준비를 철저히 하였습니다.
EXIS는 구글 클라우드 환경으로 전환하며 신속한 개발 및 적용, 안정적인 서비스에 대한 니즈를 충족할 수 있었습니다. 구글 클라우드 환경으로 전환하는 과정에서, 내부적으로도 추후 내부적으로 진행할 공급망 관리 시스템 확장에서도 해당 구성을 그대로 활용하여 신속하게 진행할 수 있음을 알게 되었습니다. 실제 EXIS 신규 공급망 관리 시스템을 확장하는 데 걸린 시간은 24시간 이내였습니다. 운영에 있어서도 기존 애플리케이션이 작동하지 않을 때 수동으로 동작하게 했던 것에서 이제는 구글 클라우드에 관리하는 관리형 쿠버네티스에서 제공하는 기능으로 애플리케이션 가용성을 극대하였습니다. 구글 클라우드에서 제공하는 다양한 데브옵스 도구를 통해 이를 신속하게 적용하고 사용할 수 있었습니다.
EXIS는 이번 전환 프로젝트의 가장 큰 성과로 빠른 신규 공급망 관리 시스템 구축을 꼽습니다. EXIS는 구글 클라우드를 통해 구축한 이번 시스템을 통해 필요한 공급망 관리 시스템을 요구사항에 맞게 빠르게 배포할 수 있는 기술을 쌓았고, 이에 필요한 기술들을 모두 내재화할 수 있었습니다.
” EXIS는 메가존소프트의 지원으로 온프레미스 가상화 환경에서 문제가 되었던 사항들을 구글 클라우드로 마이그레이션하여 모두 해결하였습니다. EXIS 조직원들은 온프레미스 가상화 환경에 익숙한 상황이었지만, 구글 클라우드 전환에 있어 메가존소프트의 도움으로 안정적이고 빠르게 새로운 환경에 적응할 수 있었습니다.”
<윤재훈 실장,EXIS Software Engineer>