SpringCloud

[11번가 Spring Cloud 기반 MSA로의 전환] 1. 왜 MSA 를 도입하는지 어떻게 MSA를 도입할 것인지?

nineDeveloper 2021. 2. 8.
728x90

11번가 Spring Cloud 기반 MSA로의 전환 - 지난 1년간의 이야기


youtu.be/J-VP0WFEQsY

 


Why MSA in 11st?

2016년말 11번가는...

  • 초대형 거대 Monolithic System
  • 8년넘게 사용해 온 낙후된 S/W Stack
  • 너무나 커진 200만 라인의 공통 모듈
  • 폭증하는 트래픽으로 수년내에 감당하기 힘들것으로 예상되는 부하

이로 인해...

  • 많은 개발팀의 코드를 한번에 배포
    • 매주 목요일 밤샘 정기 배포, 잦은 장애
  • 개발자들이 새로운 기술을 접해 볼 기회 원천 봉쇄
    • JAVA 1.6, Spring 2.x or 외주 개발 Framework
  • IDE에 띄우는 것 조차 버거운 개발 환경
    • 200만 라인의 공통 코드로 인해 항상 메모리 부족

나의 과감한 수정은 전사 장애다!


어떻게 MSA를 도입할 것인가?

어떻게 서버 분리를 진행할 것인가?

  • 잘 사용 되지 않는 코드까지 수정할 필요가 있을까?
  • 새로운 Architecture에 대한 검증과 운영 경험 축적이 필요
  • 재개발 중에도 Biz 요구사항은 계속 반영 되어야 한다

Project Vine

11번가 점진적 MSA 전환 Project

  • Strangler Application Pattern
  • 열대 우림 지역의 Strangler Vine에서 차용
  • Legacy 교살 전략
    • 새로운 Application은 독립된 API 서버로 개발
    • Legacy와 함께 운영
    • 위의 과정을 반복


Hybrid MSA in 11st

  • 업무 도메인 별로 (혹은 더 잘게) 서버 분리
  • Legacy 코드에서는 새로운 API 서버들을 호출
  • 기존 코드와 새로운 API 호출은 DB Flag를 통해서 Switchable 하게

MSA 플랫폼 Solutions 선정

728x90

댓글

💲 추천 글