본문 바로가기

Cloud & Backing services

(18)
Netflix 미디어 데이터베이스 Netflix의 목표는 전 세계 수백만 회원의 재생 시작 시간을 최소화하는 것이다. 이를 위해서 ISO BMFF의 Header 크기에 대한 통계량(최소값, 최대값, 중간값, 평균값등)을 수집해야 한다. Netflix의 Transcoding Pipeline은 방대한 콘텐츠 카탈로그를 서비스하며 모든 콘텐츠에 대해 다양한 코덱+품질 조합을 생성한다. 과거에는 비트 스트림 헤더 정보를 클롤링하는 일회성 스크립트를 작성해야만 데이터를 분석할 수 있었고 이러한 접근 방식에는 확장성이 없었다. 본 글에서는 Netflix의 Media Data Base 시스템에 대해서 소개하고자 한다. 왜 미디어 전용 데이터 베이스가 필요한가? 의미있는 개인화 및 효율적인 스트리밍은 최종 사용자가 서비스를 정의하는 주요 요소이다. 이..
NetflixOSS Hollow “모든 것을 효율적으로 Cache 할 수 있다면 게임 체인저가 될 수 있다.” Netflix는 메타 데이터 Caching을 위해 Java로 작성된 범용 Cache인 Hollow를 OSS로 제공하고 있다. 일반적으로 소프트웨어 엔지니어들은 “빅데이터"라는 데이터를 보급을 요구하는 문제에 직면한다. 이런 유형의 문제는 다음과 같다. 전자 상거래 사이트내 제품의 메타 데이터 검색 엔진의 메타 데이터 영화 및 TV 프로그램에 대한 메타 데이터 이런 문제에 직면할 때 일반적으로 아래의 두 가지 방법 중 하나를 선택한다. Consumer의 원격 접근을 위해 데이터를 중앙 집중화하여 보관 (e.g. RDBMS, NoSQL, Memcached, Redis.,) 데이터를 직렬화(e.g. json, xml)하고 Consu..
비디오 메타 데이터 확장을 위한 Object Cache 본 글은 Netflix의 Tech 블로그의 글을 기반으로 작성되었습니다. Netflix의 도전 과제중 하나는 40개국 이상의 3천 6백만명의 고객의 요구사항을 맞춰 서비스를 확장하는 것입니다. Netflix의 영화, TV Shows는 복잡한 메타데이터를 지니고 있습니다. 메타데이터에는 제목, 장르, 시놉시스, 출연진, ratings등의 정보가 포함되어 있고 이미지, 예고편, 인코딩 된 비디오 파일, 자막 및 에피소드 그리고 시즌에 대한 링크 정보도 포함되어 있습니다. 그리고 맞춤 장르를 위한 tag가 존재합니다. Netflix의 경우 Global 서비스를 하기에 메타데이터들이 다국어로 번역되어야 합니다. 메타데이터는 서비스에서 활용되며, 각 서비스마다 다른 형태로 사용됩니다. 사용자에게 콘텐츠 정보를 제..
Netflix Open Connect에서 인기 콘텐츠 관리 방법 Netflix의 Open Connect 콘텐츠 딜리버리팀은 콘텐츠의 인기도를 예측하여 인프라 효율을 극대화 하려고 합니다. Content Delivery관점에서는 시청 횟수로 인기 콘텐츠를 판별합니다. 즉, 스트리밍된 총 바이트 수를 Asset의 크기(byte)로 나누어 계산합니다. 그럼, 콘텐츠와 CDN 최적화는 어떤 관계가 있을까요? 일반적으로 CDN에서는 짧은 네트워킹 경로를 통해 최대한 많은 콘텐츠를 제공하려고 합니다. 네트워크 대기시간을 줄임으로써 사용자들의 스트리밍 환경을 극대화 할 수 있기 때문입니다. 서버당 사용할 수 있는 디스크 공간이 제한되어 있으므로 모든 Edge Server에 모든 콘텐츠를 넣을 수가 없습니다. 따라서 가장 많이 사용되는 콘텐츠만 Cache하게 됩니다. Netflix..
Kubernetes vs Mesos with Marathon (기술적 관점) 이전 포스팅에서 Kubernetes와 Mesos에 대한 사업적 관점에서 비교를 했었습니다. 본 글에서는 기술적 관점에서의 비교글을 작성합니다. Kubernetes Kubernetes는 컨테이너 어플리케이션의 automating deployment, scaling 및 관리를 위한 오픈 소스 시스템입니다. Kubernetes의 아키텍처는 아래와 같습니다. Kubernetes Cluster와 관련된 구성 요소들은 아래와 같습니다. etcd: etcd는 분산 key-value store이고, Kubernetes에서는 Master Node의 API Server가 HTTP/JSON API를 이용하여 접근할 수 있는 구성 데이터를 저장하는 용도로 사용됩니다. API Server: Master Node의 Hub입니다...
OCA(Open Connect Appliance)에서 100Gbps 서비스 본 글은 Netflix Tech 블로그의 내용을 번역한 내용입니다. (관심 있는 부분만…) 원문: https://medium.com/netflix-techblog/serving-100-gbps-from-an-open-connect-appliance-cdb51dda3b99 2015년 여름, Netflix Open Connect CDN팀은 NVM Express(NVMe) 스토리지 기반의 단일 FreeBSD OCA에서 100Gbps 속도로 서비스 할 수 있도록 100GbE 네트워크 인터페이스 기술을 활용하는 프로젝트를 수행하기로 결정 했습니다. Fake NUMA(Non-uniform Memory) OCA의 경우 대부분의 콘텐츠는 디스크에서 제공되며 인기있는 타이틀 10–20%만 메모리에서 제공됩니다. 초기의 ..
Load Balancer 비교 어플리케이션의 고 가용성을 설정하고 성능을 향상시키는 쉽고 가장 빠른 방법 중 하나는 LB(Load Balancer)를 이용하는 것입니다. 로드밸런서는 세 가지 유형이 있습니다. 하드웨어 로드 밸런서는 부하 분산을 제공하는 전용 장치이고 하드웨어 벤더 중 일부는 다음과 같습니다. 하드웨어 로드 밸런서는 가격이 비싸지만, 좋은 성능을 제공합니다. 클라우드 로드 밸런서는 클라우드의 인기와 더불어 많이 사용되고 있습니다. 클라우드 로드 밸런서를 사용하는 것은 하드웨어 어플라이언스에 투자하지 않고도 관련된 모든 기능을 즐길 수 있는 저렴한 방법 중 하나입니다. 다음은 클라우드 로드 밸런서 중 일부입니다. AWS Google Cloud Cloudflare Incapsula DigitalOcean Azure 월 기..
Kubernetes vs. Mesos: 어느 Container Orchestrator를 사용해야 할까? (사업 관점) 다른 용도로 사용되는 10개의 컨테이너가 있다고 가정한다면, 많은 인스턴스를 사용하고 이러한 컨테이너를 실행하는 것은 매우 쉽습니다. 어플리케이션이 커지면서 배포한 컨테이너 수가 점점 증가하면 서로 다른 버전, 네트워크 구성을 가진 수천 개의 컨테이너를 관리할 때는 상황이 애매해집니다. 컨테이너에 의존하는 개발 기술을 사용하는 회사의 경우, 이러한 유형의 아키텍처를 확장하는 문제가 발생합니다. 오케스트레이션 인프라 스트럭처의 요점은 컨테이너를 “스케줄링”하는 간단한 방법을 제공하고 기본 인프라가 나머지를 수행하도록 하는 것입니다. 이것이 오케트스레이션의 핵심입니다. Kubernetes, Mesos, ECS, Swarm 그리고 Nomad와 같이 5개의 툴이 존재합니다. 이 도구중 어떤 도구를 사용할지에 대..