Netflix의 MSA 컨셉
Netflix의 Micro Service Architecture 컨셉
Last updated
Netflix의 Micro Service Architecture 컨셉
Last updated
넷플릭스 마이크로 서비스 가이드 - 혼돈의 제왕 YouTube 영상을 시청하며 요약한 글입니다.
Microservice 정의
MSA 가 필요한 이유
MSA 를 위해 필요한 것
Netflix 서비스 구조
Netflix가 Microservice 를 구현하면서 겪었던 힘들었던 점과 해결법
조직의 구조와 아키텍처가 서로 어떻게 연관되어 있는가
Java Application code base가 Monolithic 이다.
매주 반복적으로 배포되는 애플리케이션의 코드베이스에 모든 사람들이 한꺼번에 붙어서 작업을 해야했다.
구조 변경이 발생할 때마다 이슈가 발생했고, 원인 분석이 어려웠다.
Why? 코드 변경 -> 구동 -> 원인 분석 -> 변경 일련의 과정들에서 하나의 애플리케이션에 너무 많은 변경이 발생하므로 분석 소요시간이 점점 늘어남.
Database 는 더 심각한 Monolithic 이다.
거대한 하드웨어에서 동작하는 거대한 1개의 오라클 DB
이 DB가 다운되면 서비스 전체가 다운됨.
트래픽 피크에 대비하기 위해 더 좋은 하드웨어를 계속 찾아다녀야했다.
모든게 서로 너무 깊게 연결되어서 변경에 속도가 나지 않는다.
바로 이런 모델이 오늘날 만들면 안되는 서비스의 전형적인 모습입니다.
2000년대 사용했던 Monolithic 문제의 해결이다.
"위험을 잘게 쪼개어 내는 것"
일종의 추상화
모듈화
서비스에 필요한 데이터를 캡슐화
거대한 워크로드를 여러개의 작은 부분으로 분리해서 처리하는 분산의 개념
탄력성을 가진 가상화 기반 환경
운영은 최대한 자동화
-
✔️번외) 마틴 파울러가 정의한 Micro Service
작은 서비스의 집합으로, 하나의 애플리케이션을 구현하는 것이며, 각각의 작은 서비스들은 자신만의 독립적인 프로세스를 가지고 있고, 가벼운 구조를 가지는데, HTTP 기반의 API 를 사용해 서로 연동한다.
갑자기 폭증하는 트래픽
뜻밖의 DDOS 공격
서비스 구동 환경에 변화를 주어야하는 상황
위와 같은 상황들을 처리하는 중 이슈가 발생하여 고객들이 서비스 사용을 할 수 없는 상황이 올 수 있습니다.
Zuul: 프락시 계층
동적 라우팅 수행
NCCP: 레거시 계층
오래된 옛날 장치를 지원
기본적인 영화 재생 기능 제공
API
API 게이트웨이를 통해 제공
고객이 발생시키는 요청에 대한 응답을 처리하기 위해 다른 많은 서비스들과 통신한다.
8600만명 사용자
190여개 국가
10개 이상의 언어로 제공
1000여개의 장치에서 동작
모든 Micro Service 는 AWS 위에서 동작합니다.