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
- Spring Boot Actuator
- saga pattern
- 스레드
- zipkin
- 디자인 패턴
- thread
- Java
- Parallel Old GC
- 멀티스레드
- 스프링 배치
- spring cloud
- Action Pattern
- 체인 패턴
- 생산자 소비자 패턴
- MSA
- java 정렬
- 디자인패턴
- Transaction Pattern
- Spring Cloud Netfilx Eureka
- JPA
- spring batch
- 키클락
- Resilinece4j
- The law of Demeter
- Serial GC
- TypeScript
- 사가 패턴
- 배치
- 알고리즘
- 타입스크립트
Archives
- Today
- Total
PSD( Private-Self-Development )
MSA 본문
MSA 란?
마이크로 서비스 아키텍처의 준말.
이 아키텍처는 소프트웨어 시스템을 작은, 독립적인 컴포넌트로 분할하여 각 컴포넌트를 개별적으로 배포하고 확장할 수 있게 한다.
이러한 아키텍처는 대규모 시스템에서 일반적으로 사용되며, 유연성과 확장성을 제공합니다.
현재의 IT 서비스들은 Cloud Natice Architecure(Anti-fragile) 로 진화하게 되었다.
이유
- 확장 가능한 아키텍처
- 탄력적 아키텍처 (Auto scaileing)
- 장애 격리
- 적은 금액
Cloud Native Application 의 요소 4가지
- Microservice
- DevOps
- CI/CD
- 지속적 통합(CI) / 지속적 배포(CD)
- Container 가상화
MSA 의 특징
- 프로세스 및 구조 변경을 위한 도전이 전제 조건
- 독립적 작은 서비스
- 서로 합치기 가능
- Restful
- 설정 정보는 외부에 두어야한다.
- 클라우드 환경
- 동적 스케일 업 아웃 적용
- CI/CD
- 시각화 하여 관리해야한다.
모든 서비스가 다 MSA 로 변경되어야 할까?
하기 항목들을 따져봐야 한다.
- 어느 정도의 공수가 드는가?
- 각각의 서비스가 독립 운영 가능 한가?
- 각각의 서비스의 독립적 확장성 이 좋은가?
- 오류 사항이 독립적인가?
- 외부 종속성 최소화 잘 되어 있는가?
- 여러 언어 사용 가능 한가?
카나리 배포
95% 사용자 이전 서비스
5% 사용자 새 버전 서비스
블루그린 배포
이전 → 새 버전 점진적 이전
MSA 의 구성 요소
이러한 MSA 에는 독립적 컴포넌트들을 연결 시켜주는 여러 구성 요소들이 존재하고 있고
구성 요소들을 구축하는데에는 다양한 선택지(기술, 언어)가 존재한다.
해당 강의를 통해
각각의 구성 요소들의 역할과 구축 및 사용 방법에 대해서 알아 볼 것이다
External Gateway
클라이언트가 요청하는 관문
서비스 엑세스를 관리하고 트래픽 관리, 보안정책 적용
- Policy Management
- API Gateway
- 클라이언트 요청이 처음 도착하는 관문 Service Route 에 해당 요청을 전송한다
- Consumer Identity Provider
Service Mesh
각각의 서비스를 관리하고 클라이언트 요청을 서비스에 전달 및 서비스간 통신을 자동화 해주는 미들웨어 영역
- Service Router
- 요청을 어디로 보낼 지 Serivce Discovery 를 통해 서비스가 어디있는지 확인
- Load Balancing
- 부하 관리를 위해 해당 서비스를 호출 할 것인지 정해준다
- Serivce Discovery
- 각 서비스들의 위치를 저장하고 찾아주는 역할
- Config. Store
- MSA 내부 환경 설정 정보를 저장하는 하는 저장소
- Identity Provider
- 각각의 서비스를 지칭할 ID 를 관리하는 역할
Runtime Platform
실제 서비스들이 위치하는 영역
- Platform API
- Container Mangement
- Instance
CI/CD Automation
서비스들을 자동으로 빌드/배포/구동 하는 영역
- Build Automation
- Image Repo
- Deployment Automation
- Platform Automation
Backing Service
MSA 에서 사용하는 Storege 들과 메시지 처리등을 관리하는 영역
- Persistence
- MOM
Telemetry
MSA 의 모니터링 및 진단 기능을 하는 영역
- Monitoring
- Diagnostics
공부에 사용한 Dependency
- Naming Server(Service Discovery) : Spring Cloud Netfilix Eureka
- API Gateway : Netflix Zuul (Deprecated), Spring Cloud Gateway
- Queuing System : Kafka
출저
'Backend > MSA' 카테고리의 다른 글
Kafka( 카프카 ) (0) | 2024.04.22 |
---|---|
Feign Client (1) | 2024.04.19 |
Spring Cloud Config (0) | 2024.04.16 |
API Gateway (0) | 2024.03.26 |
Service Discovery (1) | 2024.01.09 |