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