티스토리 뷰
Spring Cloud + Netflix OSS 를 이용한 microservice architecture는 이미 많이 알려졌다
Spring ecosystem에서 구현은 편하지만 여러 언어로 구성된 MSA인 경우에는 구성이 어렵다.
그리고 자바 프로젝트에서 구현할 때도 @Enable...로 시작하는 많은 애너테이션들을 코드에 삽입하고 여러설정들을 프로젝트에 설정해줘야 한다.
보통 마이크로서비스를 위한 인프라 계층(Network)를 service mesh라 부르고 이 계층에서 discovery, load balancing, failure recovery, metrics, monitoring
좀 더 복잡한 A/B testing, canary releases, rate limiting, access control, end-to-end authentication 등을 처리한다.
IBM, Google, Lyft에서 만든 istio service mesh는 이 부분을 지원한다.
이스티오 서비스 메시를 이용하면 불필요한 코드도 필요없고 다중 언어로 구성된 마이크로서비스 아키텍처를 쉽게 구현할 수 있다.
k8s pod에 애플리케이션과 함께 사이드 패턴으로 프록시가 같이 올라가고 서비스 애플리케이션은 프록시(Envoy)를 통해서 다른 서비스들과 통신을 한다.
istio 서비스메시 관심있게 지켜봐야할 프로젝트인 것 같다.
참고
마이크로서비스를 위한 서비스 메시 기술 ‘이스티오’가 뜨는 이유
http://tech.cloudz-labs.io/posts/istio/
IBM, Google and Lyft give microservices a ride on the Istio Service Mesh
https://www.ibm.com/cloud/info/istio
https://developer.ibm.com/kr/journey/manage-microservices-traffic-using-istio/
https://www.redhat.com/ko/topics/microservices/what-is-a-service-mesh