솔루션과 구조

솔루션의 핵심 시나리오인 실시간 변환구조를 기반으로 문제분석 의 내용을 극복할 수 있을 뿐만 아니라 비용관점 의 최적화가 가능하다.

Important

스토리지에 저장된 원본 비디오로부터 클라이언트가 원하는 구간과 해상도의 비디오를 실시간 생성한다.

레거시 구조를 유지한채 점진적으로 안정성을 확보, 전면도입까지의 과정을 알아보자.

Note

디테일한 비디오 가공은 transcoder 비디오 엔진의 How to use 를 참고한다.

레거시 구조

일반적인 비디오 서비스 플로우는 아래와 같다.

../../_images/asis.png

기존 백엔드 비디오 처리 프로세스를 수정하지 않고 도입할 수 있어야 한다.

비디오 SaaS

비디오 SaaS를 이용할 수 있다.

../../_images/saas1.png

이런 경우 기존 URL은 유지한채 도메인만 변경하는 것으로 마이그레이션이 가능하다.

../../_images/saas2.png

만약 스토리지에 원본 비디오가 존재하지 않는다면 마이그레이션동안 비디오 SaaS를 원본으로 연결가능하다.

도입 구조

M2Live로드밸런서 과 비디오가 저장된 스토리지 사이에 위치한다.

Note

urlRewrites 모듈을 이용하면 어떠한 레거시 호출규격이라도 transcoder 비디오 엔진규격으로 변환이 가능하다.

테스트 구조

테스트 목적이라면 라이브 서비스 백엔드에 넣지 않고 타겟 사용자만 hosts 파일 변조등을 통해 접근한다.

../../_images/test.png

부분도입 구조

전면도입 이전 안정성을 검증하고 싶다면 로드밸런서 를 통해 트래픽을 분산시킬 수 있다.

../../_images/stg.png

프로덕션 구조

프로덕션에서는 모든 비디오 트래픽이 유입/처리되며 CDN에 응답시 캐싱 정책을 구성할 수 있다.

../../_images/tobe1.png

레거시 시스템은 이제 불필요하여 제거한다.

../../_images/tobe2.png

Scale Out & Fail Over

서비스 규모에 맞추어 M2Live 노드를 증설한다.

../../_images/scaleout.png

최소 2기가 있어야 무중단 업데이트가 가능하다.

스토리지 사이에 로드밸런서 를 추가할 수도 있지만 M2Live 에는 이미 L7과 동등한 수준의 원본 health 감지 기능이 탑재되어 있어 없어도 무방하다. 대규모 서비스에서는 분산처리를 위해 2-Tier 구조 가 도입되기도 한다.

Note

일반적으로 스케일 업은 32코어까지만 권장하며 이후는 스케일 아웃을 권장한다.

확장과 통합

이미지 서비스와 비디오를 완전히 통합할 수 있다.

Note

두 서비스는 도메인 또는 URL 패턴/키워드로 구분된다.

또는 이미지 서비스의 확장과 통합 구조를 동일하게 구성할 수 있다.