티스토리 뷰

Architecture/MSA

Netflix Stack

GOD동하 2019. 2. 17. 10:16

MSA와 Netflix


MSA (MicroService Architecture) 를 말한다면 성공사례로 Netflix 를 빼놓을 수 없다.

사실 MSA 1세대는 대부분 Netflix의 아키텍쳐를 따라간다. 

이후 컨테이너라는 기술이 나오면서 트렌드가 바뀌긴 했지만 Netflix는 자신들만의 기술들을 잘 구축했으니 한번 살펴보자

Netflix는 이런 MSA 구성을 위한 오픈소스들도 http://netflix.github.io/ 에 공개해놓았으니

우리들은 잘 구성해놓은 기술들을 잘 사용만 하면 된다.


MSA 구성을 위해 Netflix가 공개해놓은 기술 스택에 대해서 알아본다.


MSA 구성 시 고려사항


MSA 를 구성하려면 몇가지 고려사항이 있다.

아래 그림처럼 기존 Monolothic 구조를 Microservice로 분리했다고 보자.


                     [그림1] Microservice Architecture 전환 구성 예제



위 그림을 보면 서비스들을 분리하긴 했지만 그래서..? 의문점이 한 두가지가 아닐 것이다.

그럼 이 서비스들을 어떻게 한번에 관리하지?

서비스들간의 통신은? 각 서비스들의 URL을 또 관리하나?

각 서비스 자원을 사용하기 위한 인증&권한은 어떻게 처리하지?


이처럼 서비스를 잘 분리하는 것 이외에 

분리된 서비스들에 대한 Ochestration, 로그 수집, 트래킹, 라우팅, 인증처리 등을 처리하는 방법이 필요하다.


이런 의문점들을 해결하기 위해서는 VM을 사용하는 환경에서는 Netflix Stack을 고려해봐야 한다.

(추후 Container기반으로 구성할 때 K8S에 대한 내용을 정리해야지)


뭐 많은 고민없이 앞서 언급한 것 처럼, 잘 구성해놓은 기술들을 우리는 잘 사용하면 된다.



Netflix Stack?


Netflix 에서 사용되는 기술은 아래와 같다.

Zuul과 Eureka는 MSA 1세대 이후에도 많이 참조가 되는 모듈이므로 숙지하고 넘어가야 한다.

  • Zuul - Gateway, 인증, Logging 수집 등
  • Eureka - Service Registry & Discovery
  • Ribbon - Load Balancing
  • Hystrix - Circuit Breaker
  • Turbine - Hystrix Stream Aggregator



위 모듈들이 왜 도입되었는지 무슨 역할을 하는지에 대해서 자세히 생각해 볼 필요가 있다. 


Zuul의 역할


Eureka의 역할


Ribbon의 역할


Hystrix & Turbine의 역할


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함