키워드 위주의 복습용 정리
모놀리식이 꼭 나쁠까?
개발의 편이성(IDE는 단일 App 최적화)
테스트 및 배포 용이성(테스트 과정의 단순화)
확장 용이성(다중 인스턴스)
모놀리식이 나빠지는 순간
복잡성의 과부하(대규모 개발 조직에 따른)
개발 속도 저하(테스트 및 배포 과정의 과도화)
확장성의 저하(다양한 리소스)
전달성 및 신기술 도입 어려움
확장큐브
애플리케이션을 확장한다는 의미에는 크게 3가지 방향
X축 확장 -> 여러 인스턴스에서 같은 서비스 나눠서 처리(동일 인스턴스의 증가)
Z축 확장 -> 요청의 속성에 따라 서비스 나눠서 처리(고객 아이디 A~H, L~P, R~Z)
Y축 확장 -> 서비스를 나누기(주문 서비스, 결제 서비스, 고객 서비스 등)
MSA의 여러 특징
마이크로서비스는 모듈성, 각개의 DB 가 핵심이다.
SOA와 비교하면 서비스 규모와 Bus 구조및 DB 구성에 따른 인프라의 차이점이 존재
(주의점: 각개의 DB가 꼭 물리적으로 DB서버를 운영해야만 하는 것은 아님, 논리적으로도 나눌 수도 있음)
장점
- 크고 복잡한 애플리케이션을 지속적 배포/전달 가능
- 서비스 규모가 작아서 관리 용이성
- 서비스 독립적 배포/확장 가능
- MSA의 아키텍처에 따른 자율적 팀 움직임
- 결함 격리
- 신기술 도입 용이성
핵심은 서비스를 나눠서 관리할 수 있다(언어, 환경, 기술 도입, 배포)!
단점
딱 맞는 서비스 찾기 힘듬
분산 시스템의 복잡성(통신, 다중DB 쿼리 등)
공통 기능에 대한 관리
현실적으로 도입 시기에 대한 문제
MSA 패턴
강제 조항 : 반드시 해결해야 하는 이슈
결과 맥락 : 패턴 적용에 따른 결과
- 장점 : (해결된 이슈에 따라) 패턴의 장점
- 단점 : (미해결 이슈에 따라) 패턴의 단점
- 이슈 : 패턴에 따른 새로운 이슈
연관 패턴 : 다섯 가지 관계 유형
- 선행자 : 이 패턴을 필요하게 만든 패턴(모놀리식 패턴)
- 후행자 : 이 패턴으로 야기된 이슈를 해결하는 패턴
- 대안 : 이 패턴의 대체 솔루션을 제공하는 패턴
- 일반화 : 문제를 해결하는 일반적인 솔루션에 해당하는 패턴
- 세분화 : 특정 패턴을 더 세부적으로 나타낸 형태
MSA 패턴 2
인프라 패턴 : 개발 영역 밖의 인프라 문제 대응
애플리케이션 인프라 : 개발에도 영향을 미치는 인프라 문제 대응
애플리케이션 패턴 : 개발자가 맞닥뜨리는 문제 대응
그 외 MSA와 연관된 패턴(고려해야할 패턴들)
- 통신 패턴
- 트랜잭션 로깅을 위한 일관성 패턴
- 데이터 쿼리 패턴
- 관측성 패턴
- 서비스 테스트 자동화 패턴
- 횡단 관심사 처리 패턴
- 보안 패턴
'Archived(IT) > MSA' 카테고리의 다른 글
마이크로 서비스 패턴 #3 IPC (0) | 2020.09.10 |
---|---|
마이크로 서비스 패턴 #2 마이크로 서비스 아키텍처 (0) | 2020.09.07 |
마이크로 서비스 패턴 #0 MSA에 대해 정리하기 (0) | 2020.09.04 |
SOA(Service Oriented Architecture) (2) | 2020.06.28 |
Monolithic vs Microservice(MSA) (0) | 2019.10.29 |