정의
서비스 메시란 서비스가 서로 통신하여 애플리케이션 수명 주기 전반에 걸쳐 데이터와 일관성을 공유할 수 있도록 미리 구성된 애플리케이션 서비스입니다. 서비스 메시는 얇고 쓰기 가능한 컨테이너 레이어를 사용하여 마이크로서비스를 관리하는 데 사용됩니다. 쉽게 설정하고 배포할 수 있도록 구축된 서비스 메시는 마이크로서비스의 가치를 실현하여 기업이 새로운 서비스를 쉽게 발견하고 API 제품으로 관리할 수 있도록 지원합니다.
서비스 또는 애플리케이션 간 연결을 관리하기 위해 모니터링, 로깅, 트레이싱, 트래픽 제어와 같은 기능을 제공하며, 이런 기능들은 각 서비스의 코드와 독립적이므로 네트워크 경계를 넘어 여러 서비스 관리 시스템에서 작동 가능하다.
서비스 메시는 애플리케이션 컨테이너와 함께 작동하는 경량 프록시를 제공해서 각 프록시는 컨테이너 간에 발생하는 상호 작용에 대한 게이트웨이 역할을 한다. 프록시는 서비스 메시 전체에서 요청을 처리하는 적절한 다운스트림 컨테이너에 대한 요청을 용이하게 한다.
구성
서비스 메시 구현에는 일반적으로 데이터 플레인과 컨트롤 플레인이라는 구성 요소가 있다.
데이터 플레인
데이터 플레인은 사이드카 프록시와 함게 실행되는 서비스로 구성된다. 서비스는 비즈니스 로직을 처리하고 프록시는 서비스와 다른 서비스를 연결해주는 역할을 한다. 모든 트래픽, 수신 및 송신은 프록시를 통해 발생하며, 프록시는 트래픽을 다른 서비스로 라우팅(프록시)하는 역할을 담당한다.
서비스 메시는 많은 기능을 포함하고 있고 사이드카는 레이어 7 프록시가 된다. 이 계층에서 작동함으로써 서비스 메시는 관찰된 지연 시간을 기반으로 지능형 부하 분산과 같은 기능을 제공하거나 요청에 대해 합리적이고 일관된 시간 제한을 제공한다.
사이드카는 상호 전송 계층 보안(mTLS)과 같은 기능을 제공하여 통신의 각 당사자가 상대방의 인증서를 검증할 수 있도록 한다.
컨트롤 플레인
여러 서비스로 구성된 컨트롤 플레인은 서비스 메시를 통해 관리 기능을 제공하고 데이터 플레인의 동작을 구성하고 프록시가 동작을 조정할 수 있는 인터페이스를 제공한다.
운영자는 CLI 또는 API를 사용해 컨트롤 플레인을 통해 서비스 메시와 상호 작용한다.
운영자는 컨트롤 플레인을 이용해 라우팅 규칙을 정의하고, 서킷 브레이커를 생성하거나, 액세스 제어를 시행할 수 있다.
구현에 따라 컨트롤 플레인을 사용해 메트릭, 로그, 트레이싱과 같은 통합 가시성 데이터를 내보낼 수 있다.
장단점
- 장점 :
- 마이크로서비스와 컨테이너 모두에서 서비스 간 통신을 간소화 한다.
- 자체 인프라 계층에서 발생하기 때문에 통신 오류를 진단하기가 더 쉽다.
- 암호화, 인증 및 권한 부여와 같은 보안 기능을 지원한다.
- 애플리케이션을 더 빠르게 개발, 테스트 및 배포할 수 있다.
- 컨테이너 클러스터 옆에 배치된 사이드카는 네트워크 서비스 관리에 효과적이다.
- 단점 :
- 런타임 인스턴스는 서비스 메시를 사용하여 증가한다.
(컨테이너가 늘어난다는 얘기인 듯 하다.) - 각 서비스 호출은 먼저 사이드카 프록시를 통해 실행되어야 하므로 단계가 추가된다.
- 서비스 메시에서는 다른 서비스 또는 시스템과의 통합, 라우팅 유형 또는 변환 매핑을 다루지 않는다.
- 네트워크 관리 복잡성은 추상화되고 중앙 집중화되었지만 제거되지는 않아서, 누군가는 서비스 메시를 워크플로우에 통합하고 구성을 관리해야 한다.
- 런타임 인스턴스는 서비스 메시를 사용하여 증가한다.
내 생각
애플리케이션 끼리 통신해야 하는 경우도 생긴다. 이럴 때 서비스 메시를 이용해서 프록시 통신을 하게 되면 애플리케이션 컨테이너에서 통신하는 것보다 부하도 줄어들 것이고, 서비스 메시 자체적으로 로드 밸런싱도 가능하게 되어서 가용성이 많이 향상 될 것 같다. 또한 트레이싱이나 메트릭, 로그 등을 내보낼 수 있으니 분석이나 오류 발생 시 원인 파악도 쉬울 것이라 본다.
러닝 커브만 해결 된다면 이점이 많을 것 같다....
[참조] :
https://www.tibco.com/reference-center/what-is-a-service-mesh
https://konghq.com/learning-center/service-mesh/what-is-a-service-mesh
https://www.techtarget.com/searchitoperations/definition/service-mesh