일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Parallel Old GC
- Spring Boot Actuator
- java 정렬
- 디자인패턴
- zipkin
- JPA
- The law of Demeter
- 사가 패턴
- Resilinece4j
- Spring Cloud Netfilx Eureka
- 스레드
- Java
- Serial GC
- spring cloud
- 배치
- 멀티스레드
- 체인 패턴
- Action Pattern
- 키클락
- 알고리즘
- thread
- TypeScript
- 스프링 배치
- 디자인 패턴
- spring batch
- 타입스크립트
- Transaction Pattern
- MSA
- saga pattern
- 생산자 소비자 패턴
- 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
출저
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의 - 인프런
Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해
www.inflearn.com
'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 |