앞서, 서비스 메시

서비스 메시란?

면접용
-----
서비스 메시는 MSA에서 서비스 간 호출이 많아지면서 타임아웃/리트라이/서킷브레이커, 인증 및 암호화, 모니터링 및 트레이싱 같은 공통 요구가 생깁니다.
서비스 메시는 이를 각 서비스 코드에 넣지 않고 사이드카 프록시(데이터 플레인)가 처리하고, 컨트롤 플레인이 정책을 중앙에서 배포해서 일관성과 운영성을 높이는 구조입니다.

등장 배경

  1. 기존 모놀리식 아키텍처 → MSA 전환

    시스템이 분산됨에 따라 통신 복잡성이 증가하여, 다음과 같은 문제가 대두
    1. 복잡한 서비스 관계
    	 - 서비스 간 상호작용 증가로 장애 전파 위험도 증가
    
    2. 관찰 가능성 부족
    	 - 분산 시스템에서 무슨 일이 일어나고 있는지 파악하기 어려움
    
    3. 일관된 보안 정책 부재
    	 - 다양한 팀이 서로 다른 보안 접근 방식 사용
    
  2. 내부망 진입점의 역할의 문제

    내부망의 진입점의 역할을 하는 GW의 경우 모든 동작 처리가 무거워지고, 내부망 내부 통신이 어려웠음
    
  3. 신뢰성 문제

    클라우드 인프라 신뢰성은 100%가 아니므로(일시적이거나 간혹 사용 불가능, SLA 99.99%), 이를 염두에 둔 앱을 설계할 필요성 증가
    

기존 시도

⇒ 즉, MSA에서 통신 품질 + 보안 + 관측 같은 공통 기능을 서비스마다 라이브러리로 구현하던 부담을, 인프라(프록시/정책)로 내려서 표준화하기 위함

인프라에 전가하기 위한 노력

서비스 메시 구조