티스토리 뷰
실제 서비스 운영을 고려..
MSA를 적용하여 확장성과 안정성을 강화하고자 하였습니다.
근거는 다음과 같습니다.
- 저희의 MVP(Minimum Viable Product)는 멀티 모드였습니다. 처음 기획할 때 목표는 멀티 모드를 빠르게 배포하여 서비스를 운영하면서 추가 기능을 독립적으로 개발하고자 하였기 때문에 MSA를 적용해야겠다고 생각했습니다.
- 장애 격리를 목표로 하였습니다. 각 게임 모드를 독립적인 서비스로 분리하여, 하나의 서비스에 장애가 발생해도 다른 게임 모드는 정상적으로 운영되면 좋겠다고 생각했습니다.
예를 들면, LOL을 할 때 랭크 게임에 문제가 발생해도 일반 게임이나 칼바람의 나락은 정상적으로 플레이 할 수 있는 것과 같이 구현하고 싶었습니다.
Monolithic방식에서 서버에 장애가 발생하면 멀티 모드와 배틀 모드가 모두 불가능하다. 
MSA로 설계할 경우 멀티 모드 서버에 장애가 발생하여도, 배틀 모드는 정상적으로 동작한다. - 수평적 확장(Scaling Out)을 고려하였습니다. 만약 여러 게임 모드 중 특정 모드에 트래픽이 집중된다면, 해당 모드에 대한 서버만 확장하여 효율성을 얻을 수 있겠다고 생각했습니다.

멀티 모드 서버에만 트래픽이 집중된다면 
멀티 모드 서버만 Scale Out하여 트래픽을 분산시킴
'Tech' 카테고리의 다른 글
| [Street Coding Fighter] Kafka를 도입한 이유 (0) | 2024.09.02 |
|---|