모놀리틱 아키테처와 마이크로서비스

모놀리틱 아키텍처

  • 전통적 개발 모델
  • 전체 애플리케이션을 하나의 통합된 패키지로 개발 및 배포
  • 규모가 커지면 유지보수 복잡도 필연적으로 증가
  • 한 기능에서 문제를 일으키면 나머지에도 영향
  • 한 모듈 수정해도 전체 애플리케이션을 다시 배포해야 함
  • 한 패키지로 된 코드여서 빌드, 배포에 오래걸림

마이크로서비스 아키텍처

  • 독립된 각각의 모듈 조립해 하나의 서비스 만드는 아키텍처
  • 업데이트, 테스트, 배포, 확장을 각 서비스별로 독립적으로 가능
  • 기민하게 수정이 가능하여 요구 사항에 민첩 대응 가능
  • 확장이 필요할때 특정 서비스만 확장 가능
  • 기술 스택 파편화 가능
  • 쪼개진 만큼 운영에 모놀리틱보다 많은 인원 필요 할 수도 있음
  • 시스템 복잡도 늘어나는 만큼 운영 난이도 높음