[Architecture] 마이크로서비스 아키텍쳐 (MicroService Architecture,MSA)

반달곰수·2024년 3월 28일
0

마이크로서비스 아키텍쳐 ?

  • 애플리케이션을 작은 독립적인 서비스로 분해하는 접근 방식을 채택
  • 각 서비스는 특정 비즈니스 기능을 담당
  • 서로 통신하여 전체 애플리케이션 형성
  • 애플리케이션을 더 작고 유연하며 확장 가능하게 만들 수 있음
  • 서비스 , 프로젝트가 크고 복잡하고 , 장기적으로 운영될 수록 MSA의 장점이 더욱 드러남

즉 하나의 큰 어플리케이션을 여러개의 작은 어플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍쳐

모놀리식 아키텍쳐 (Monolithic Architecture) ?

  • 전통적인 소프트웨어 개발 방식
  • 모든 기능과 서비스를 하나의 코드 베이스에 통합하여 구현하며 , 단일 데이터베이스에 모든 데이터를 저장함
  • 코드 베이스가 커질수록 개발 및 배포에 복잡성이 증가
  • 간단한 아키텍쳐이고 , 유지보수가 용이하기 때문에 소규모 프로젝트에 적합

모놀리식 아키텍쳐의 한계점

  • 부분 장애가 전체 서비스의 장애로 확대될 수 있음
  • 부분적인 Scale-Out(여러 서버로 나누어 일을 처리하는 방식)이 어려움
  • 서비스의 변경이 어렵고 , 수정 시 장애의 영향도 파악이 힘듬
  • 배포 시간이 오래 걸림
  • 한 Framework와 언어에 종속적

MSA의 특징

  • API를 통해서만 상호작용 가능
  • 서비스의 end-point를 API 형태로 외부에 노출하고 , 실질적인 세부 사항은 모두 추상화
  • 내부 구현 로직 , 아키텍처 , 프로그래밍 언어 , 데이터베이스 , 품질 유지 체계와 같은 기술적인 사항들은 서비스 API에 의해 철저하게 가려짐

MSA의 장점

  • 서비스가 커지면서 생겼던 모놀리식 아키텍쳐의 문제점들을 어느정도 보완 가능
  • 서비스 간 독립성으로 인해 확장성과 유연성이 높아짐
  • 일부 서비스가 실패하더라도 전체 시스템에 큰 영향을 미치지 않음

MSA의 단점

  • 서비스 간 통신이 필요하며 , 서로 간 연결 구축 및 관리의 복잡성 증가
  • 초기 개발 및 통신 등에 시간이 소요됨

즉 대규모 복잡한 프로젝트 , 시스템을 독립적으로 개발하고 확장해야 하는 경우 MSA가 적합하다

참고


[MSA] MSA란 무엇인가? 개념 이해하기

MSA 제대로 이해하기 -(1) MSA의 기본 개념

[MSA] 마이크로서비스 아키텍처(MSA)란 뭘까?

0개의 댓글