티스토리 뷰
반응형
- MSA의 개념과 특징, 장단점
- 성공적인 MSA를 위한 아키텍처 패턴
- 이벤트 주도 아키텍처의 개념과 장단점
- 대용량 시스템을 위한 DB 아키텍처 및 NoSQL
- 글로벌 서비스의 REST API 문서 분석 해보기
What is MicroServices
1. 하나의 어플리케이션을 다수의 독립적인 서비스들의 집합으로 구성하는 것
2. 각자의 서비스가 별도의 프로세스에서 실행되며
HTTP API 같은 가벼운 매커니즘으로 통신하는 작은 애플리케이션
작은 서비스들은 각자의 비즈니스 기능을 담당하고
완전 자동화 된 절차에 따라 독립적으로 배포 됨
각 서비스는 서로 다른 프로그래밍 언어나서로 다른 데이터 저장 기술을 사용 할 수 있다
-마틴 파울러
전통적 개발 방법 Monolithic
전체 기능을 단일 코드베이스로 개발
단점
- 스케일 아웃 시 전체 시스템을 확장해야 하는 비효율
- 빌드/배포 시간 오래 걸림
- 작은 수정에도 전체 시스템 빌드/배포 해야 함
- 하나의 버그에 전체 시스템이 실패할 수 있음
단점의 원인
- 기능들 간의 결합도가 일반적으로 높음
- 기능 변경 시 영향도 파악 어려움
ex) 코드 의존 관계, 데이터 의존 관계
결과적으로 코드가 운영환경에 민첩하게 배포 되기 어려움
장점
- 상대적으로 운영하기 용이
- ex) 코드 관리, 장애 관리, 로그 관리, 모니터링
- 내부 메소드 호출로 성능 문제 없음
- ex) MSA는 Network를 통한 Interface 호출
- 트랜잭션 관리 용이
MSA의 장점
- 작은 서비스 단위로 확장 가능
- 일부의 장애가 시스템 전체 장애로 이어지지 않음
- 서비스 단위로 자율적 배포 가능
- 결과적으로 빠르게 변화하는 비즈니스 환경에 민첩하게 대응 가능
- 빠른 Delivery
- 탄력적이고 선택적인 확장
MSA의 단점
- 운영 관리가 어려움
- 모니터링 대상 증가
- DB 트랜잭션 처리 어려움
MSA를 잘 분리하는 것을 판단하는 요소
서비스마다 얼마나 독립적이고 응집도가 높은지
분산된 Monolitic Architecture가 되지 않게 주의해야한다
MSA 분리하는 방법
행위가 아닌 주요한 개념(명사) 위주로 분리
- 클래스 설계와 유사
변경이 낮고 중요한 행위인 경우에는 행위 기반 분리도 가능
- 파일 업로드 서비스
반응형
'프로젝트 > SmileGate윈터데브캠프' 카테고리의 다른 글
웹 크롤링에 대해서 (0) | 2023.02.11 |
---|---|
개인프로젝트 피드백 (0) | 2023.01.14 |
메시지 브로커란? (0) | 2022.12.16 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- oauth2.0
- DML
- 프로그래머스
- 우분투
- git 예전 커밋 수정
- Android Studio
- SpringBoot
- 로스트아크 캐릭터
- 데이터3법
- 오픈소스
- infcon 2024
- 2024인프콘
- oauth
- git
- authorization_code
- 리눅스
- SQL
- 데이터베이스
- 인프콘2024
- git commit 수정
- 데이터 3법
- authorization code
- bfs
- html
- DDL
- 클로아
- CSS
- kloa
- javascript
- html #웹 #웹사이트 #플레이리스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함