Nos poucos anos desde seu lançamento, o serviço de streaming de vídeo online da Netflix cresceu e agora atende mais de 50 milhões de assinantes em 40 países. Já compartilhamos algumas das melhores práticas que os engenheiros de desenvolvimento de software da Netflix adotaram ao fazer a transição de um processo de desenvolvimento monolítico tradicional para entrega contínua e microsserviços, em Adotando microsserviços na Netflix: Lições para design arquitetônico e adoção de microsserviços na Netflix: Lições para design de equipes e processos .
Nesta postagem, discutiremos outro fator essencial para o sucesso da Netflix: sua rede de distribuição de conteúdo (CDN), Open Connect . Estamos orgulhosos de que o NGINX seja executado em todos os dispositivos de entrega do Open Connect, desempenhando um papel fundamental na capacidade da Netflix de acompanhar o crescimento explosivo do serviço de vídeo. Gleb Smirnoff, da NGINX, trabalha com a equipe do Open Connect há mais de dois anos e, em outubro passado, em nossa conferência de usuários, nginx.conf2014, ele explicou por que a Netflix escolheu o NGINX (junto com o FreeBSD) para impulsionar essa parte crucial de seus negócios.
A Netflix inicialmente terceirizou a entrega de streaming de vídeo para três grandes fornecedores de CDN (Akamai, Level3 e LimeLight). À medida que o serviço se tornou mais popular, a Netflix decidiu que criar e gerenciar seu próprio CDN fazia sentido, por vários motivos:
Mais importante ainda, a Netflix criou sua própria CDN para ter maior controle sobre a entrega de aplicativos e a experiência do usuário. Para fornecer entrega de mídia de streaming ideal aos clientes, a Netflix precisava maximizar seu controle sobre os três componentes básicos na cadeia de entrega:
A Netflix conseguiu otimizar o Open Connect para streaming de vídeo de uma forma que não seria possível com um CDN genérico fornecido por um fornecedor. O Open Connect permite que a Netflix ofereça uma experiência de usuário superior a um custo menor e com maior visibilidade do desempenho do aplicativo em todo o mundo.
Desde o início, o objetivo da Netflix era, como Gleb diz, “obter cada vez mais gigabits por segundo de uma única caixa”. Especificamente, a Netflix precisava maximizar o número de assinantes que cada aparelho poderia atender simultaneamente. Os engenheiros do Open Connect previram a necessidade de ajustar o software para atingir esse objetivo, então decidiram usar software de código aberto por sua extensibilidade ilimitada.
Conforme mencionado anteriormente, a Netflix coloca seus aparelhos de streaming de vídeo nos data centers dos ISPs de seus clientes, sempre que possível. Como o software executado nos aparelhos estaria nas mãos de terceiros, a Netflix escolheu projetos que usam uma licença no estilo BSD em vez da GNU Public License (GPL).
Os projetos específicos de código aberto escolhidos pela Netflix foram:
NGINX como servidor de streaming de mídia. Sua velocidade e estabilidade comprovadas foram importantes porque a Netflix queria lançar o Open Connect o mais rápido possível, sem a necessidade de ajustes apenas para começar. Depois que o CDN foi instalado e executado, a Netflix conseguiu examinar os padrões de tráfego e ajustar as configurações do NGINX.
Outro benefício do NGINX é que, embora o software de código aberto seja distribuído sob uma licença no estilo BSD, todos os seus principais desenvolvedores são funcionários em tempo integral da NGINX, Inc., que fornece suporte de nível empresarial para seu produto comercial, o NGINX Plus . Nesse sentido, ele combina os melhores recursos do OSS e do software comercial.
A estrutura flexível do NGINX para executar módulos personalizados também atraiu a Netflix, e a equipe do Open Connect criou módulos específicos para suas necessidades de streaming de vídeo.
A combinação do FreeBSD e do NGINX traz outros benefícios:
kqueue
do FreeBSD é uma das melhores APIs para E/S multiplexadas.sendfile
junto com a chamada de sistema aio_read
. Juntas, as chamadas evitam bloqueios na E/S do disco, resultando em desempenho excepcional.Desde o início, o NGINX foi projetado para ser adaptável e dar suporte a todos os aspectos da entrega de aplicativos. Para tornar aplicativos semelhantes ao Netflix mais fáceis de implementar para nossos clientes comerciais, o NGINX Plus combina serviço web, balanceamento de carga, cache de conteúdo e streaming de mídia em um pacote fácil de usar. Confira nossos estudos de caso para saber como outras empresas líderes usam o NGINX Plus para entregar seus aplicativos com desempenho, segurança e escala.
Gostamos de trabalhar em estreita colaboração com os clientes, fornecendo orientação sobre como aproveitar ao máximo o NGINX Plus em suas arquiteturas específicas de entrega de aplicativos. Nossas equipes de Suporte e Serviços Profissionais podem ajudar você com orientação arquitetônica, instalação, configuração, atualizações e muito mais. Entre em contato conosco para saber mais.
"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."