모놀리틱 아키텍처의 이해

  • 10년전 E-commerce 스타트업 시작

    • 서비스 다운타임이 발생 합니다.

  • 서비스 다운타임을 해결

    • HA구성
      • L4에서 1번 WEB서버를 빼고, 배포 후 1번을 다시 연결
      • Application Gateway
    • 고객이 늘어 서비스가 느려졌습니다.

  • 서비스가 느려짐을 해결

    • Scale-out
    • 개발팀 신규 채용이 필요합니다.

  • 조직개편

    • 상품팀과, 주문팀으로 나눕니다.
    • 단일 Repository정책으로 사용하였습니다.
      • Branch Merge시에 Conflict발생
      • QA 진행 범위는?
      • 각자 다른일정, 배포이슈 - 정기배포일에 배포
      • 코드중복성으로 인한 공통코드 도입
      • etc...

  • 서버 아키텍처 개편

    • 공통코드 사이즈가 커지기 시작합니다.
    • 정기 배포가 복잡해지고, 오래 걸립니다.
    • ****-SNAPSHOT.jar 빌드시 라이브러리를 항상 새로 받습니다.
      • 의도하지 않은 의존성에 따른 오류 발생

  • 조직개편

    • 소스코드 중복성과 복잡도가 증가 합니다.
    • 개발환경이 복잡해 집니다.
    • 빠르게 서비스가 나아가기 어려워 집니다.

모놀리틱 아키텍처 정리

  • 대부분 IT회사의 시작은 모놀리틱
  • 장점
    • 개발이 단순하다. 
    • Scale-out이 단순하다.
    • 배포가 단순하다.
  • 단점
    • 무겁다 - IDE가 못받쳐줌
    • 어플리케이션 시작이 오래 걸린다.
    • 기술 스택을 바꾸기 어렵다.
    • 높은 결합도
    • 코드 책임 한계와 소유권이 불투명

변화

  • 전면 재개편
  • MSA 플랫폼을 구축하여 기존 Legacy를 고사(strangle)시킵니다.
    • Amazon, Netfix, 11번가, ...


  • No labels
Write a comment…