728x90
반응형
■ MA 란?
기존의 서버 형태는
Monolithic Architecture (MA) 개념에 가깝다.
Monolithic 의 사전적 정의를 보자.
'단단히 짜여 하나로 되어 있는' 응용 프로그램이 단일 코드베이스로 구성되는 아키텍처이다.
즉, 하나의 서비스의 장애가 다른 서비스로 전이되어 전체 시스템 장애로 이어질 수 있는 구조이다.
모든 기능이 하나의 애플리케이션으로 결합되어 배포되며,
모듈들은 내부적으로 긴밀하게 결합되어 있는 것이 특징이다.
<MA 장점>
이러면 단순한 개발 및 배포/관리가 가능하다는 장점이 있다.
심지어 같은 메모리 공간에서 실행되므로 서비스 간 통신 오버헤드가 적어 cpu성능 면에서 좋을지도 모른다.
그러나 서비스가 커질 수록,
<MA 단점>
=> 애플리케이션 전체를 확장해야 하므로 자원 낭비가 발생하고 의존성이 높아져
유연성이 떨어지고, 전체적인 프로그램의 비효율을 이끈다.
이래서 생겨난 게 MSA이다.
■ MSA 란?
MSA는 MicroService Architecture의 약자로,
서버를 하나만 두지 말고, 각 용도 별로 여러 개 운영하자는 것이다.
MSA 내부에선 여러 개의 WAS가 각기 다른 서비스를 담당하며, 서로 독립적으로 동작하는 것을 전제로 한다.
쪼개어 각자 동작하고 합치니, Monolithic Architecture의 문제점을 보완이 가능한 것이다.
<MSA 장점>
- 배포(deployment),운영 관점
-서비스 별 개별 배포 가능 (배포 시 전체 서비스의 중단 필요X )
-요구사항을 신속히 반영한 빠른 배포 - 확장(scaling) 관점
-신기술 적용에 유리함
-특정 서비스에 대한 확장성이 용이
-클라우드 사용에 적합
-서비스를 다양한 언어로 개발 및 운영 가능 - 장애(failure) 관점
-장애가 전체 서비스로 확장될 가능성 ↓
-부분적 장애에 대한 격리가 수월
<MSA 단점>
- 성능 관점
-서비스 간 호출 시 API를 사용하므로, 통신 비용 발생 - 테스트 관점
-서비스가 분리되어 있어 테스트와 트랜잭션의 복잡도 증가 - 데이터 관리 관점
-데이터가 여러 서비스에 걸쳐 분산되어 한번에 조회가 어려움
이런 MSA 구조를 사용하게 되면 CORS를 조심해야 한다.
다음 글을 참고하자.
반응형
'Server' 카테고리의 다른 글
[Network] 네트워크 통신을 위한 포트의 역할과 필요성 (0) | 2024.05.12 |
---|---|
[Server] 사용자 인증 방식 종류 / 쿠키,세션,토큰 방식 / 각 특징과 차이점 (feat. JWT토큰) (0) | 2024.02.08 |