Search
Duplicate

MSA, Istio, Service Mesh

태그

Monolithic & MicroService Architecture

모놀리틱 - 모든 것이 하나의 프로젝트에 들어가 있기 때문에 개발,빌드, 배포, 테스트가 용이한 구조 - 개발 환경과 개발 방법의 통일로 복잡하지 않음 - 애플리케이션이 크고 복잡해 지고 추가 요구사항, 기능들을 구현하면서 버그 수정이 어려움 - 부분적 확장이 어려움
마이크로서비스 - 하나의 큰 애플리케이션을 서비스 단위로 작게 나누고, 서비스들끼리 통신하는 형태 - 부분적 장애 발생시에도 복구 하는 동안 해당 서비스와 연관이 없는 서비스는 정상 동작 - 각각의 서비스가 클라우드, 컨테이너 등의 어느 환경에서도 동작 가능 - 서비스가 많아지면 서비스 사이의 통신 및 트래픽 관리가 어려워짐

Istio

마이크로서비스를 서로 연결, 관리, 그리고 보안기능을 제공(Service Mesh)하는 오픈 플랫폼 Envoy를 데이터 플레인으로 사용하고 이를 컨트롤 해주는 오픈 소스 솔루션이다.

Service Mesh

- 기존 모놀리틱 아키텍처에서 마이크로서비스 아키텍처로 변화하는 동안 발생하는 다양한 문제를 해결하기 위해 등장 - 각 프록시에 대한 설정 정보를 중앙 집중화된 컨트롤러가 통제하는 구조 - 마이크로서비스의 네트워크를 설명하며 이들을 구성하는 애플리케이션과 그들간의 상호 동작을 의미

Istio Architecture

Control Plane 트래픽 경로를 설정하고 관리하는 용도로 사용 Mixer의 정책을 설정하고 Telemetry를 수집 Citadel을 통한 보안 정책 수립
Data Plane 실제 데이터 트래픽이 돌아다니는 영역 Envoy를 서비스 옆에 사이드카 방식으로 배포를 해서 서비스로 들어오고 나가는 트래픽을 Envoy를 통해서 통제
Mixer Service Mesh 전체에서 엑세스 제어 및 정책 관리 각종 모니터링 지표를 수집 플랫폼 독립적, 다양한 호스트 환경 & 백엔드와 인터페이스
Pilot 서비스 디스커버리, A/B test, 카나리아 디플로이와 같은 트래픽 관리 기능들을 제공 Envoy에 대한 설정 관리 Timeouts, retries, 서킷 브레이커와 같은 resilency 제공
Citadel 보안 모듈 내장된 자격증명과 크레덴셜 관리를 통해 서비스 to 서비스, 엔드유저 인증 기능을 제공