Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- okhttp3
- OkHttpClient
- Prototype
- atlas
- 스파크
- microservice
- docker
- replaceAll
- 정규식
- 파이썬
- Python
- 컨테이너
- 테이블정의서
- RDD
- REST
- 도커
- Data Lineage
- 크롤링
- 쿠버네티스
- kubernetes
- container
- CRAWL
- dataset
- MariaDB
- spark
- oracle
- web crawl
- dataframe
- MSA
- Java
Archives
- Today
- Total
J 의 기록
[MSA] MSA (Microservices Architecture)란? 본문
MSA (Microservice Architecture)
msa 는 한마디로 "하나의 큰 어플리케이션을 여러개의 작은 어플리케이션으로 쪼개어 변경과 조합ㅇ이 가능하도록 만든 아키텍처" 라고 표현 할 수 있겠다.
msa 의 이유를 설명하기 위해 기존의 일반적인 프로젝트 아키텍처(Monolithic Architecture)의 특징을 먼저 알아보겠다.
기존 우리의 개발 방식을 보면 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어있는 Monolithic Architecture 이다.
Monolithic Architecture 의 장단점을 살펴보자면
우선, 아키텍처 자체가 간단하여 소규모 프로젝트일수록 적합하며 유지보수에 용이하다.
하지만 일정 규모 이상의 서비스에서는 단점이 명확해진다.
- 전체적인 시스템 파악이 어렵다.
- 시스템 영향도의 파악이 어렵다.
- 빌드 및 테스트시간, 배포시간이 규모에 따라 기하급수적으로 늘어난다.
- 서비스를 부분적으로 scale-out 하기 힘들다. (scale-out은 서버의 대수를 늘려 처리 능력을 향상시키는 것. 수평 스케일이라고도 부름)
- 부분의 장애가 전체 서비스의 장애로 이어질 수 있다.
MSA는 이러한 단점을 극복하기 위해 나왔으며 비즈니스 민첩성(Business agility)과 관련이 큽니다.
서비스가 복잡하고, 프로젝트 규모가 크고 장기적으로 운영될 수록 MSA의 장점은 더욱 드러나게 됩니다.
Micro service의 특징
- 분리된 서비스 (서비스 자체는 하나의 모놀리틱 아키텍처와 유사한 구조를 가짐)
- 각 서비스들의 독립적 배포 가능
- 각각의 서비스에 대한 의존성 최소화
- 각 서비스는 개별 프로세스로 구동되며, REST 호출과 같이 가벼운 방식으로 통신됨
MSA 의 장단점
- 장점
- 배포 관점
* 서비스별 개별 배포 가능, 배포 시 전체 서비스의 중단이 없음. - 확장 관점
* 특정 서비스에 대한 확장성이 용이함. (클라우드 사용에 적합한 아키텍처) - 장애 관점
* 장애가 전체 서비스로 확장될 가능성이 적음
- 단점
- 보다 복잡한 아키텍처
- 서비스 간 호출 시 REST API 사용으로 인한 통신비용, Latency(지연시간) 증가
'개발' 카테고리의 다른 글
NPE(NullpointException) 에 대한 고찰 (0) | 2021.04.07 |
---|---|
[okhttp3] okhttp3 를 이용한 get/post restclient (0) | 2021.04.01 |
[Javascript] Javascript 에서 replaceAll() 구현하기 (0) | 2020.05.29 |
[Spark] RDD, Dataset, DataFrame의 차이 (0) | 2020.05.20 |
[ES] Elastic Search - spark (1) (0) | 2020.04.08 |