일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 네트워크
- 정규화
- 캐시 오염
- 낙관적 락
- Redis
- Dirty Checking
- 비관적 락
- 3-way handshaking
- HTTP
- buildSrc
- well-know port
- Kotlin
- null
- 삽입 이상
- JPA
- Kafka
- 삭제 이상
- java
- 갱신 이상
- MSA
- 데이터베이스
- 자바
- 자료구조
- 스레드 풀
- DB
- gatway
- Spring
- 페이지네이션
- ocp
- AWS
Archives
- Today
- Total
어 나 갱수.
Oracle Ace 님의 MSA 발표 정리 본문
728x90
일상화된 마이크로서비스 아키텍처
B21 스텔스 폭격기는 마이크로서비스 아키텍처와 쿠버네티스에 기반해 다목적 임무 수행(폭격, 전투 지휘, 정보 수집)이 가능한 형태로 제작됨
서비스 중심의 아키텍처
- 경계가 지어진 맥락에서 결합도가 낮은 구성 요소를 포함
- 네트워크로 통신 + 개별적으로 서비스 업데이트
- 다른 마이크로서비스 내부를 모르면서 코드를 업데이트 가능
이점
간소화된 배포
- 지속적인 통합과 배포(CI/CD)로 출시 시간 단축
필요에 따라 성능 확장
- 서비스마다 독립적인 컨테이너 또는 데이터 플랫폼 확장 가능
고가용성 확보
- 전체 애플리케이션에 영향을 주지 않고 독립적으로 서비스 교체 가능
대부분의 배포는 사람이 하지 않는다. 그러나 금융권은 대부분 사람이 직접 배포한다.
플랫폼
- 서비스 레지스트리: 서비스 등록/탐색
- API 게이트웨이 : 다양한 API 조합 제공, 인증/인가/추적 처리
- 외부 구성 저장소: 데이터베이스 연결 정보, 파일 스토리지 정보
- 로깅, 모니터링과 추적
애플리케이션
- 동기/비동기 통신 방식: RESTful API와 메시지 중개인
- 저장소 분리: 각자 비즈니스를 위한 데이터 직접 소유
- 동기보다 비동기가 성능적으로 좋다
자바 마이크로서비스 = GraalVM 추천
Kubernetes Docker 무조건 학습 추천
Grafana, Prometheus, Kibana 모니터링 툴 추천
CNCF 도 공부해 보자!!
컨테이너 레지스트리
컨테이너 이미지를 안전하게 저장하고 공유하는 관리형 도커 레지스트리 서비스 관리형 쿠버네티스와 연계, CI/CD 도구와 연계
Oracle Cloud Functions
서버리스 란?
서버리스(Serverless)는 클라우드컴퓨팅의 모델 중 하나로 개발자가 서버를 직접 관리할 필요가 없는 아키텍처를 의미
한다.
사용자가 없다면 자원을 할당하지 않고 대기하다 요청이 들어오면 그때 자원을 할당해서 요청을 처리하고 다시 대기 상태로 들어가게 된다.
- (서버리스) 코드 작성 후 배포만 하면 자동 프로비저닝/확장 가능
- 도커 이미지로 자동 패키징
- 파이썬/고/자바 지원
개발자 서비스 부문
API 게이트웨이
- API 수명 주기를 관리하는 서비스
- API 개발을 위한 apiary 연계
데브옵스
- Visual Builder Studio를 사용해 소프트웨어 전 개발 주기 지원
- CI/CD 플랫폼 지원
- 테라폼 지원
- 모니터링과 로깅 지원
관찰 능력과 관리 부문
APM
- 운영에 도움이 된다
- 관측성을 높이기 위한 분산 추적 서비스
- OpenTracing과 OpenTelementry지원
데이터베이스 관리
- 모니터링/관리 단위를 그룹으로 묶어 간소화
- CDB와 PDB 별로 그룹화한 다음에 관리 가능
- 데이터베이슬 하나를 쓰더라도 잘 분리하자(멀티 테넌트 데이터베이스)
보안부문
IAM
- 생명주기와 자격 관리를 통한 자원에 대한 접근 제어(SSO/MFA) 지원
- 권한에 대한 관리 중요
배스티언(Bastion)
- 공용 엔드포인트 없이 클라우드 자원에 대한 접근
- SSH 접근 가시성 확보, 관리 단순화
Kafka
Kafka 란?
- Linkedin 내부 문제 해결을 위한 Jay Kreps 개발
- Publish/Subscribe 구조의 메시지 중개인
- 2012년 오프소스화
- Confluent에서 Kafka와 Ecosystem 개발
특징
- High Throughput
- 실시간 로그 통합
- 무중단
- 이기종과의 호환성
- 간단한 스케일 아웃
- 프로듀서와 컨슈머 역할 분리
- 확장성
- 영속성: 디스크 저장, Durability
- 유연성: 연계 기술 및 플러그인
- 신뢰송: 메시지 전달 보증 기능 제공
- 실시간 & 배치
Kafka 이전
Messaging System
- 메시지 큐
- IBM MQ JMS(Java Messaging System)
- ActiveMQ, RabbitMQ
- 전달 보증으로 인한 오버 스펙
- JMS는 Commit/Rollback 제공
UseCase
- 다른 종류의 에코 시스템과 연결하기 위한 메시지 버스
- 실시간 파이프라인과 배치 파이프라인
- 데이터 종류 별로 멀티 클러스터를 만들고 데이터 선 터 간 연결
초기 설계 원칙
- producer와 consumer 분리
- 메시징 시스템과 같이 영구 메시지 데이터를 여러 컨슈머에게 허용
- 높은 처리량을 위한 메시지 최적화
- 데이터가 증가함에 따라 스케일 아웃이 가능한 시스템
Messaging Architecture
- Pub/Sub model
프로듀서와 컨슈머의 분리
- 웹 서버에서 요청을 보낼 때 카프카로 다 보낸다.
특징
- 디스크 메시지 저장
- 기존 메시지 시스템과 차별성
- 일반적으로 큐에 저장 후 전송 후 삭제
- Kafka는 일정 기간 메시지 보관
- Consumer의 지연처리 및 재처리에 매우 유리
- 확장성
- 지속적 확장성
- 무중단 확장성
Kafka 발전 방향
- 카프카를 통한 고성능의 Pub/Sub 모델이 가능
- 서비스 기반 아키텍처 SOA, Service Oriented Architecture의 엔터프라이즈 서비스 버스(ESB, Enterprieise Service Bus) 구현 용이
- SOA는 업무를 서비스라는 단위로 분리
- 빅데이터 분석 파이프라인(RDW)
넷플릭스에서는 카프칸에 저장된 정보로 뭘 할까?
- 알고리즘
- 콘텐츠 추천
ksql
- Kafka에서 사용하는 sql
728x90
'MSA' 카테고리의 다른 글
[MSA] Message Queue를 알아보자 🤗 (2) | 2023.11.25 |
---|---|
[MSA] API Gateway란? 😊 (0) | 2023.11.23 |