(해외) GLOBO.COM 구성사례

관리자
2024-05-24
조회수 104

99da632e02be4.png


개요

Globo.com은 라틴 아메리카에서 가장 큰 온라인 미디어 그룹입니다. 시청자에게 뉴스, 엔터테인먼트, 스포츠를 제공합니다.


도전

2012년 브라질 최고의 미디어 및 엔터테인먼트 포털인 Globo.com은 하루에 백만 명이 넘는 방문자를 기록했으며 온라인 시청률이 전례 없이 증가했습니다. 국내 최고의 TV 브랜드인 Grupo Globo의 온라인 지점인 Globo.com은 미디어 회사의 뉴스, 스포츠 및 엔터테인먼트를 대규모이면서도 빠르게 성장하는 시청자에게 온라인으로 배포하는 일을 담당하고 있습니다.


방문객들은 단지 뉴스와 시사 기사를 확인하기 위해 Globo.com을 방문하는 것뿐만 아니라 많은 Globo 뉴스 보도, TV 쇼, 온라인으로 방송되는 스포츠 이벤트 등 훌륭한 비디오 콘텐츠를 즐기기 위해 Globo.com을 방문합니다 . 이러한 사용자는 기존 TV에 필적하는 사용하기 쉽고 고품질의 온라인 시청 환경을 기대합니다.


Globo.com이 처리해야 하는 엄청난 양의 트래픽으로 인해 인터넷을 통해 라이브 비디오를 제공하는 것은 심각한 기술적 과제가 되었습니다. 예를 들어, 최대 300,000명의 동시 시청자가 2010년 FIFA 월드컵 기간 동안 온라인으로 경기를 실시간으로 시청했습니다. 당시 Globo.com은 실시간 메시징 프로토콜(RTMP)과 함께 독점 미디어 서버를 사용하여 축구장에서 웹으로 비디오를 스트리밍하고 있었습니다. 그러나 이 솔루션은 이상적이지 않은 것으로 판명되었습니다.


미디어 서버는 특수 포트를 사용하여 비디오를 전달했는데, 이는 방화벽 뒤에 있는 사용자가 스트림을 보는 데 어려움을 겪었다는 것을 의미합니다. 독점적인 비공개 소스 소프트웨어였기 때문에 문제를 디버그하거나 작업을 모니터링하기 위한 계측기를 추가하기가 어려웠습니다. 게다가 동영상이 플래시를 통해 전달되었기 때문에 iOS 기기를 사용하는 사용자는 스트림을 시청할 수 없었습니다.


특히 부하가 높은 경우 성능도 문제였습니다. RTMP는 상태 저장 프로토콜이기 때문에 각 시청자는 여러 서버에서 비디오 콘텐츠를 얻을 수 있는 대신 세션당 단일 시스템에서 서비스를 받아야 했습니다. 로드 밸런싱이 제한되었고 장애 조치가 어려웠으며 캐싱이 존재하지 않았습니다.


그 결과 트래픽이 가장 많은 시간 동안 클라이언트는 과부하된 서버에서 쫓겨나고 자동으로 다른 서버에 다시 연결을 시도했습니다. 하지만 해당 서버에도 과부하가 걸려 계단식 오류가 발생했습니다. 한 번 사라진 많은 사용자는 다시 돌아오지 않았습니다.



해결책

시청자 기반이 증가하고 모바일 장치에서 비디오에 대한 수요가 증가함에 따라 Globo.com은 이전 미디어 서버와 함께 번들로 제공되는 RTMP 솔루션에서 NGINX와 함께 제공되는 HLS(HTTP 라이브 스트리밍)로 전환하기로 결정했습니다.


HLS는 iOS 장치에 대한 비디오 지원을 추가했을 뿐만 아니라 상태 비저장 HTTP 전달 방법을 통해 Globo.com은 캐싱을 활용하고 로드 밸런싱의 모든 이점을 활용하여 성능과 확장성에 큰 영향을 미쳤습니다. HTTP 기반 비디오 전달 및 NGINX를 사용하면 비디오 전달 아키텍처를 모니터링할 수도 있습니다.


“NGINX는 우리에게 놀라운 캐싱을 제공했습니다. 또한 다른 시스템이나 가상 서버를 가동하기만 하면 되므로 쉽게 확장할 수 있었습니다.”라고 Globo.com의 소프트웨어 엔지니어인 Leandro Moreira는 설명합니다. “HLS가 사용자가 어떤 비트 전송률 스트림을 받아야 하는지 더 잘 결정하기 때문에 더 나은 사용자 경험을 달성할 수 있었습니다. 그리고 서버 팜에서 무슨 일이 일어나고 있는지 확인할 수 있는 도구도 마음에 들었습니다.”


NGINX는 세계에서 가장 바쁜 100만 개의 웹사이트를 지원합니다. Netflix 및 Hulu를 포함한 온라인 비디오 분야의 리더들이 콘텐츠를 빠르고 안정적으로 전 세계에 전달하기 위해 사용하고 있습니다. Apple의 HLS, Adobe의 HDS(HTTP 동적 스트리밍) 및 RTMP와 같은 널리 사용되는 스트리밍 프로토콜에 대한 기본 지원을 통해 NGINX는 모든 장치 및 네트워크에 대한 스트림을 최적화합니다. 오픈 소스 NGINX 소프트웨어는 추가 비디오 기능을 지원하도록 확장될 수 있습니다. NGINX Plus에는 고급 비디오 기능이 내장되어 있습니다 .


NGINX를 사용하는 Globo.com의 HLS 스트리밍 아키텍처에서 원시 비디오는 HLS로 변환되고 전송을 위해 분할됩니다. 분할을 통해 Globo.com은 이전 미디어 서버에서는 불가능했던 DVR 유형 기능을 구현할 수 있습니다. NGINX 및 Lua는 Redis 데이터베이스와 함께 사용되어 동적 재생 목록을 생성합니다. 이를 통해 Globo.com의 맞춤형 비디오 플레이어 사용자는 홈팀 골과 같은 부분을 계속해서 시청하고 게임의 다른 부분을 건너뛰어 시청 경험을 완전히 제어할 수 있습니다.


NGINX는 캐싱 및 중복성을 제공하면서 HLS 파일을 쉽게 사용할 수 있도록 해줍니다. 애플리케이션은 지리적 위치, 권한 부여 및 인증(사용자 및 브로드캐스터 권리를 존중하는 데 중요)을 위한 모듈과 함께 마이크로서비스를 사용하여 구축되었습니다. 브라질 제품이기도 한 스크립팅 언어인 Lua는 혼잡한 연결에 있는 사용자를 위한 재생 목록 생성 및 대기열 시스템(“대기실”)에 사용됩니다.


또한 NGINX는 프런트엔드를 강화하여 iOS 및 Android 장치에 비디오 스트림을 제공할 뿐만 아니라 PC 사용자를 위한 맞춤형 웹 기반 Flash 비디오 플레이어를 통해 제공합니다.


“NGINX는 놀라운 캐싱을 제공했습니다. 또한 다른 시스템이나 가상 서버를 가동하기만 하면 되므로 쉽게 확장할 수 있습니다.

 HLS가 사용자가 어떤 비트 전송률 스트림을 얻어야 하는지 더 잘 결정하기 때문에 더 나은 사용자 경험을 얻을 수 있었습니다.

 그리고 우리는 서버 팜에서 무슨 일이 일어나고 있는지 확인할 수 있는 도구도 마음에 들었습니다. ”

– Leandro Moreira, Globo.com의 소프트웨어 엔지니어



결과

500,000명 이상의 사용자에게 손쉽게 라이브 비디오 스트리밍

축구는 브라질에서 인기가 높으며 온라인 시청률이 이미 엄청나고 성장하고 있는 상황에서 Globo.com은 2014 FIFA 월드컵을 통해 자사의 비디오 스트리밍 아키텍처가 시험대에 오를 것이라는 사실을 알고 있었습니다. 요청은 역시 NGINX를 실행하는 6개 백엔드 노드의 비디오 세그먼트를 캐시하는 두 데이터 센터의 80개 프런트엔드 NGINX 노드에 걸쳐 로드 밸런싱되었습니다.

2014년 월드컵 기간 동안 Globo.com은 피크 시간대에 500,000명이 넘는 시청자에게 경기의 라이브 비디오 스트림을 문제 없이 제공했으며 더 많은 것을 쉽게 처리할 수도 있었습니다. 비디오 요청은 초당 125,000건에 달했고 게임 중 전달된 처리량은 640Gbps를 초과했습니다.

비디오 전송은 매우 효율적이었습니다. 단 10%의 CPU를 사용하여 프런트엔드 노드는 19Gbps로 비디오를 전송할 수 있었으며, 이는 노드당 네트워크 용량이 20Gbps에 가깝습니다. 이전 아키텍처에 비해 크게 개선되었습니다. Bochi는 “NGINX 서버 2대만으로 100,000명의 사용자를 쉽게 처리할 수 있었습니다. 이는 이전 미디어 서버 50개로 얻을 수 있었던 수준입니다.” 이 시스템은 오늘날에도 계속 사용됩니다.


더 많은 인프라 최적화를 위한 심층적인 가시성

이전 미디어 서버는 Globo.com을 로그 파일 확인 및 리소스 사용량 모니터링으로 제한했습니다. Globo.com은 NGINX와 함께 제공되는 HLS 스트리밍으로 전환하면서 스트리밍 인프라를 훨씬 더 자세히 분석할 수 있는 능력을 얻었습니다.

Globo.com은 NGINX를 사용하여 CPU 및 메모리 사용률부터 비디오 버퍼링 및 캐시 실패율에 이르기까지 모든 것을 표시하는 서버 팜에 대한 계측을 추가하고 사용자 정의 대시보드를 구축하기가 쉬웠습니다.

이 정보는 Globo.com이 비효율성을 찾아내고 배송을 세부적으로 조정하는 데 도움이 되었습니다. HLS 및 NGINX 솔루션으로 가능한 계측은 Globo.com이 비디오 버퍼링 속도를 600% 줄이고 캐싱 메커니즘을 최적화하는 데 직접적인 도움이 되었습니다.


NGINX 및 Lua를 사용하여 마이크로서비스를 쉽게 추가

NGINX로 작업하는 것은 매우 쉬웠기 때문에 2013년에 Globo.com은 이미 비디오 전송 인프라의 성능과 확장성에 만족했으며 2014년 월드컵을 준비하면서 사용자 경험을 개선하는 데 집중할 수 있었습니다.

핵심 기능 외에도 NGINX에는 기능을 확장하는 데 사용할 수 있는 타사 모듈 라이브러리가 있습니다. Lua 타사 모듈은 NGINX와 긴밀하게 통합되며 사용하기 쉬운 언어를 통해 빠르고 강력한 비동기 스크립팅을 제공합니다.

Globo.com은 NGINX와 Lua를 사용하여 HLS 재생 목록을 동적으로 생성하는 마이크로서비스를 만들었습니다. 이 마이크로서비스는 시청자가 현장에서 멋진 플레이를 되감고 다시 볼 수 있는 DVR 기능을 지원합니다.

로컬 ISP 대역폭 병목 현상으로 인해 사용자에게 비디오 전송 문제가 발생했을 때 Globo.com은 문제를 해결하기 위해 또 다른 마이크로서비스를 만들 수 있었습니다. NGINX와 Lua를 사용하여 너무 많은 사용자가 포화된 속도로 비디오에 액세스하려고 할 때 "대기실"을 만들었습니다. 대역폭 링크. 이는 시청자에게 일관된 비디오 품질을 보장하고 Globo.com이 고품질 콘텐츠 제공업체로서의 명성을 유지하는 데 도움이 되었습니다.


Globo.com 소개

Globo.com은 라틴 아메리카 최대 미디어 대기업인 Organizações Globo의 인터넷 지점으로 리우데자네이루와 상파울루에 사무실이 있습니다. 이는 뉴스(G1), 스포츠(globoesporte.com), 비디오(GloboPlay) 및 유명인(GShow)에 대한 브라질 최고의 웹 수직 포털을 집계합니다. 그 외에도 회사는 조직의 다른 모든 미디어 단위에 대한 서비스 제공자 역할을 할 뿐만 아니라 인터넷 문제에 대한 전략 및 기술 지원을 제공합니다. 이는 대용량 웹 배포에 탁월하며 국내 최대 규모의 동시 비디오 스트리밍 시청자에게 서비스를 제공합니다. 자세한 내용은 www.globo.com을 참조하세요 .

0