모놀리틱 아키텍처의 이해
10년전 E-commerce 스타트업 시작
서비스 다운타임이 발생 합니다.
서비스 다운타임을 해결
- HA구성
- L4에서 1번 WEB서버를 빼고, 배포 후 1번을 다시 연결
- Application Gateway
- 고객이 늘어 서비스가 느려졌습니다.
- HA구성
서비스가 느려짐을 해결
- Scale-out
- 개발팀 신규 채용이 필요합니다.
조직개편
- 상품팀과, 주문팀으로 나눕니다.
- 단일 Repository정책으로 사용하였습니다.
- Branch Merge시에 Conflict발생
- QA 진행 범위는?
- 각자 다른일정, 배포이슈 - 정기배포일에 배포
- 코드중복성으로 인한 공통코드 도입
- etc...
서버 아키텍처 개편
- 공통코드 사이즈가 커지기 시작합니다.
- 정기 배포가 복잡해지고, 오래 걸립니다.
- ****-SNAPSHOT.jar 빌드시 라이브러리를 항상 새로 받습니다.
- 의도하지 않은 의존성에 따른 오류 발생
조직개편
- 소스코드 중복성과 복잡도가 증가 합니다.
- 개발환경이 복잡해 집니다.
- 빠르게 서비스가 나아가기 어려워 집니다.
모놀리틱 아키텍처 정리
- 대부분 IT회사의 시작은 모놀리틱
- 장점
- 개발이 단순하다.
- Scale-out이 단순하다.
- 배포가 단순하다.
- 단점
- 무겁다 - IDE가 못받쳐줌
- 어플리케이션 시작이 오래 걸린다.
- 기술 스택을 바꾸기 어렵다.
- 높은 결합도
- 코드 책임 한계와 소유권이 불투명
변화
- 전면 재개편
- MSA 플랫폼을 구축하여 기존 Legacy를 고사(strangle)시킵니다.
- Amazon, Netfix, 11번가, ...
Add Comment