Service Mesh는 서비스 간의 통신(네트워크)을 담당하는 요소입니다.
Service Mesh는 통신 및 네트워크 기능을 비즈니스 로직과 분리한 네트워크 통신 인프라. 모든 서비스의 인프라 레이어로서 서비스들 간의 통신을 처리
컨테이너 기반 배포, scaling 등으로 ip가 동적으로 바뀐다. instance를 서비스 이름으로 service registry에 등록하여, 위치를 찾아갈 수 있게 한다
Client-side는 Euerka Server고, Server-side는 로드 밸런서는 service registry로 query를 날리고 각각 요청을 가용할 수 있는 서비스 인스턴스로 라우팅 방식으로 AWS ELB가 대표적 예시이다
모든 request에 대한 end-point 통합하고, 인증/권한/로깅 등 추가적인 기능을 한다
아키텍처상 API Gateway는 마이크로서비스 그룹의 외부 경계에 위치하여 역할을 수행하지만, ServiceMesh는 경계 안에서 그 역할을 수행
하나의 서비스를 여러개 실행하는 주 목적은 사용자 요청의 분산과 서비스 응답 속도의 향상 때문이다. apigateway나 loadbanlancer 등에서 사용자의 요청을 리소스가 충분한 서비스나 사용자와 가까운 지역의 서비스 등으로 forwarding 시킬 수 있다.
유연한 시스템. 신뢰성이 있는 빠른 응답성을 제공하고 부분적 장애가 빠르게 복구되고 또한 수요증가에 탄력적으로 대응하기 위해서는 시스템 자체가 변화,확장에 언제든지 대응할 수 있는 아키텍처 적 유연성을 갖추는 것이 필수다.
아키텍처 적 유연성은 시스템을 구성하는 구성요소간의 관계들이 느슨하게 연계되어 있어 언제든지 대체되거나 추가 확장될 수 있는 특성을 말한다. 특히 클라우드 인프라 자체가 변화무쌍한 비즈니스 환경에 대응할 수 있는 유연성과 확장성이 있기 때문에 그것을 사용하는 어플리케이션 아키텍처도 반드시 이러한 언제나 쉽게 변경될 수 있는 아키텍처 적 유연성을 갖춰야한다