Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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
more
Archives
Today
Total
관리 메뉴

채채

MSA & Event Driven Architecture & 서버 클러스터 & CI/CD 본문

카테고리 없음

MSA & Event Driven Architecture & 서버 클러스터 & CI/CD

HChaeEun 2023. 8. 1. 21:50

MSA


 Event Driven Architecture

(1) Event: 프로그램에 의해 감지되어 처리해야 할 하나의 동작

 

(2) EDA

- 이벤트 발생에따라 트리거를 만들어, 송신자로부터 수신자로 이벤트를 비동기적으로 전송하고 처리하는 기술

- MSA 도입 시 발생하는 새로운 요구 사항을 달성하는 개념입니다. 서비스, DB의 분리, 폴리글랏 등에 대응해 효과적으로 동작합니다. EDM은 실패를 허용하는 분산 구조, 이벤트 브로커 등을 통해 문제를 해결하고 MSA 도입의 난관을 해결할 수 있도록 도와줍니다.

 

(3) 발행-구독(Pub-Sub) 비동기 통신

- Rest와 달리 요청을 생성하는 서비스는(Publish) 요청을 소비하는 서비스(Subscribe)의 세부 정보(주소, 이벤트 수신 여부)를 알 필요가 없다.

 

(4) 강한 결합/느슨한 결합

- 강한 결합의 예

- 느슨한 결합의 예

? 이벤트 기반이 아닌 아키텍처에 비해 어떤 장점이 있는가?

1. Loosely Coupling

 - 분산 시스템간 느슨한 결합도를 제공한다.

 

2. 분산된 시스템간의 의존성 배제

  - 약속된 메시지를 통해 통신하게 때문에 다른 시스템의 정보 알 필요가 없다.

 

3. 확장성, 탄력성 향상


✅ 서버 클러스터

- 여러 대의 서버를 네트워크로 연결하여 전체적으로 하나의 서버처럼 보이게 하는 기술

- 한 대의 서버가 고장이 나도 다른 서버에서 처리를 계속할 수 있어서 서비스의 신뢰성을 확보

(1) 공유 스토리지 구성(Single quorum device cluster)

- 여러 대의 서버가 공유하는 스토리지를 마련하여 데이터의 무결성 확보
- 확장성이 높아서 대규모 시스템(대용량 데이터를 다루는 서버)
에 적합

(2) 데이터 미러 구성(Majority Node Set Cluster)

- 스토리지를 완전히 똑같은 내용으로 복제하여 무결성을 확보

- 저가로 구축할 수 있어 소규모 시스템에 적합, 대용량 데이터를 다루는 서버에는 부적합


✅ CI/CD

(1) CI(Continuous Integration)
지속적 통합이라는 의미로 다른 개발자의 코드와 내가 작성한 코드를 통합하여 빌드->테스트->머지 과정을 반복하는 것

(2) CD(Continuous Delivery/Continuous Deployment)
지속적 제공/배포라는 뜻으로 Continuous Delivery/Continuous Deployment를 복합적으로 의미한다.
- Continuous Delivery: github와 같은 공유 저장소에 업로드 한다.
- Continuous Deployment: 성공적으로 병합된 내역을 저장소뿐만 아니라 사용자가 사용할 수 있는 배포환경까지 릴리즈한다.