Architecture ‐ MSA(Microservice Architecture) - dnwls16071/Backend_Summary GitHub Wiki

📚 MSA 개요

  • 독립적이고 느슨하게 결합된 서비스
  • 서비스 별로 코드 베이스를 구분해 독립적이고 소규모로 관리
  • 잘 정의된 API를 사용하여 통신
  • 각각의 서비스는 독립적이고 자율적으로 배포 가능
  • 독립적인 다양한 기술 스택 사용 가능
  • 다른 서비스와 공유되지 않는 스토리지 사용 가능
  • 단일 책임 원칙(SRP)에 따라 서비스의 책임을 분리한다.
  • 비즈니스 역량을 중심으로 서비스 구성
  • 서비스 별로 컴포넌트화
  • 분산된 책임 소재 -> Single Responsibility Principle
  • InfraStructure 자동화 -> Inner/Outer Architecture
  • Design for failure -> 잠재적 실패를 예상하고 계획

📚 MSA 장단점

  • (+) 민첩한 배포가 가능
  • (+) 유연한 확장성
  • (+) 소규모의 집중된 팀
  • (+) 소규모의 분리된 코드 관리
  • (+) CI/CD
  • (+) 다양한 기술 스택 적용 가능
  • (+) Resilience & Fault Isolation
  • (+) Data Isolation
  • (-) 복잡도 증가
  • (-) Network Latency
  • (-) 테스트와 개발이 어려움
  • (-) Data Integrity
  • (-) Deployment
  • (-) Logging & Monitoring
  • (-) Debugging