Monolithic Architecture : 애플리케이션 안에 모든 비즈니스 로직이 다 들어가 있는 구조
마이크로서비스 : 서비스를 비즈니스 경계에 맞게 세분화하고, 서비스 간 통신은 네트워크 호출을 통해 진행하여 확장 가능하고 회복적이며 유연한 어플리케이션을 구성하는 것. 앞단에 API Gateway를 둬서 서비스를 외부에 노출하지 않음
MSA는 기존 Monolithic 방법론의 문제점들(개발 유연성의 한계, 요구사항 대처 시간 소요, 장애 격리/신뢰성, 배포/롤백 리스크, 리소스 낭비 => 여러 기능이 뭉쳐 강하게 결합되어 있다는 문제점에서 비롯됨)을 보완했다.
MSA를 구성하는 주요 Component
1. Config Management : 서비스의 재빌드, 재부팅 없이 설정사항을 반영. 환경 변수를 별도의 객체로 관리
2. Service Discovery : MSA 기반 서비스 배포 시 서비스 검색 및 등록
3. API Management : 클라이언트 접근 요청을 일원화
4. Centralized Logging : 서비스별 로그의 중앙집중화
5. Distributed Tracing : 마이크로서비스 간의 호출 추적
6. Centralized Monitoring : 서비스별 메트릭 정보의 중앙집중화
7. Resilience & Fault Tolerance : MSA 구조에서 하나의 실패한 서비스가 다른 서비스에 파급 효과를 발생시키지 않도록 하기 위한 계단식 실패 방지 구조
8. Auto-Scaling & Self-Healing : 자동 스케일링, 복구 자동화를 통한 서비스 관리 효율화
MSA를 구현하는 기반 기술
Service Mesh : 마이크로 서비스 간 통신을 위해 각 서비스를 식별하고, 경로를 파악하며, 로드밸런싱을 하고, 전체 서비스의 장애 전파를 차단하며, Telemetry와 통합되어 로깅, 모니터링, 트레이싱 기능을 담당한다. 서비스 매쉬를 사용하면 마이크로 서비스 안에 통신 로직을 다 담을 필요 X
MSA 적용 사례 : 넷플릭스, 배달의 민족, 11번가
'공부 기록 > 영상 후기' 카테고리의 다른 글
[입문용] 프로토콜과 OSI 7 layer 설명! 네트워크의 기능들이 어떻게 구조화 돼서 동작하는지를 설명합니다! (0) | 2023.03.29 |
---|---|
셸 스크립팅 에센스 E01 - 셸. 커널. 터미널. (shell. kernel. terminal) (0) | 2023.03.29 |
도커 한방에 정리 (모든 개발자들이 배워보고 싶어 하는 툴!) + 실습 (0) | 2023.03.27 |
가장 쉬운 리눅스 강좌 (0) | 2023.03.27 |
DBCP (DB connection pool)의 개념부터 설정 방법까지! hikariCP와 MySQL을 예제로 설명합니다! (0) | 2023.03.27 |