모놀리틱 아키테처와 마이크로서비스
모놀리틱 아키텍처
- 전통적 개발 모델
- 전체 애플리케이션을 하나의 통합된 패키지로 개발 및 배포
- 규모가 커지면 유지보수 복잡도 필연적으로 증가
- 한 기능에서 문제를 일으키면 나머지에도 영향
- 한 모듈 수정해도 전체 애플리케이션을 다시 배포해야 함
- 한 패키지로 된 코드여서 빌드, 배포에 오래걸림
마이크로서비스 아키텍처
- 독립된 각각의 모듈 조립해 하나의 서비스 만드는 아키텍처
- 업데이트, 테스트, 배포, 확장을 각 서비스별로 독립적으로 가능
- 기민하게 수정이 가능하여 요구 사항에 민첩 대응 가능
- 확장이 필요할때 특정 서비스만 확장 가능
- 기술 스택 파편화 가능
- 쪼개진 만큼 운영에 모놀리틱보다 많은 인원 필요 할 수도 있음
- 시스템 복잡도 늘어나는 만큼 운영 난이도 높음