TIL

14장 유튜브 설계

설계 범위 예시

개략적 규모 추정

비디오 스트리밍 개략적 설계안

비디오 업로드 절차

프로세스 a - 비디오 업로드

  1. 비디오를 원본 저장소에 업로드
  2. 트랜스코딩 서버가 원본 저장소에서 비디오를 가져와 트랜스코딩을 시작
  3. 트랜스코딩이 완료되면 아래 두 절차가 병렬 수행
    1. 완료된 비디오를 트랜스코딩 비디오 저장소로 업로드
    2. 트랜스코딩 완료 이벤트를 트랜스코딩 완료 큐에 전송
      1. 트랜스코딩이 끝난 비디오는 CDN에 업로드
      2. 완료 핸들러가 이벤트 데이터를 큐에서 꺼낸다.
      3. 완료 핸들러가 메타데이터 데이터베이스와 캐시를 갱신
  4. API 서버가 단말에게 비디오 업로드가 끝나 스트리밍 준비가 되었음을 알림

프로세스 b - 메타데이터 갱신

비디오 스트리밍 절차

비디오 스트리밍 상세 설계

비디오 트랜스코딩

유향 비순환 그래프(DAG) 모델

비디오 트랜스코딩 아키텍처

시스템 최적화

속도 최적화: 비디오 병렬 업로드

속도 최적화: 업로드 센터를 사용자 근거리에 지정

속도 최적화: 모든 절차를 병렬화

안전성 최적화: 미리 사인된 업로드 URL

안정성 최적화: 비디오 보호

비용 최적화

오류 처리

더 논의해볼 점