# Microservices

# Architecture (MSA)

저희는 Microservice Architecture(MSA)를 지향합니다. 서비스들을 목적에 맞게 작게 분해하여 서로간의 의존성을 낮추어 모듈화를 계속해나가고 있습니다. 이는 모듈화된 서비스별 용이한 확장성을 보장하고, 장애시 빠른 문제해결이 가능하도록 돕고 있습니다.

THEEGO - Microservice Architecture
THEEGO - Microservice Architecture

# Kubernetes (EKS)

Kubernetes는 대규모 컨테이너식 애플리케이션을 배포하고 관리하는 데 유용합니다. 저희 개발팀은 MSA의 복잡도가 증가하고 관리포인트가 다양화 됨에 따라 보다 쉽게 대규모 서비스들을 관리하기 위해 Kubernetes(EKS)를 도입했습니다. 이 환경은 Bitbucket의 CI/CD Pipeline및 ECR과 결합하여 지속적인 통합/배포를 책임지고 있습니다.

THEEGO - Amazon Elastic Kubernetes Service
THEEGO - Amazon Elastic Kubernetes Service

# Kafka (MSK)

THEEGO는 수 많은 서비스를 담고 있는 플랫폼 위의 플랫폼으로서 서비스를 제공하고 있습니다. 때문에 수 많은 고객 및 고객사로부터 대량의 이벤트가 수시로 발생하고 있으며, 이를 통합 관리할 수 있어야 했습니다. 저희는 대규모의 메시지 데이터를 빠르게 처리할 수 있는 Kafka의 강점을 활용하여, Notification의 Queue를 적재하기 위한 데이터 파이프라인, Chat, WebRTC등의 사용자 이벤트 처리등에 활용하고 있습니다.

THEEGO - Amazon Managed Streaming for Apache Kafka
THEEGO - Amazon Managed Streaming for Apache Kafka

# CI/CD

THEEGO는 빠른 통합과 배포, 자동화 테스트 등을 위해 CI/CD개념이 적용되어 있습니다. 이는 클라우드 기반의 Infrastructure뿐만이 아니라 오랜기간 운영되어 왔던 레거시한 온프레미스 환경에도 독립적으로 구축되어 있습니다. 어느 환경에서 작업을 하던 통합 및 배포의 관리로부터 철저하게 개발자의 리소스 부담을 절감시켰습니다.

THEEGO - Continuous Integration / Continuous Delivery
THEEGO - Continuous Integration / Continuous Delivery