O destino único para todos os cinéfilos é, obviamente, o Netflix. Mas e se você estivesse assistindo seu filme favorito e ele continuasse armazenando no buffer de vez em quando? Você apenas fecharia o aplicativo e escolheria outra opção. Mas, como ele gerencia o tráfego de milhões de usuários rapidamente? Graças a . Neste artigo, vamos explorar como a Netflix usa Python.
Vamos começar dando uma olhada rápida nos temas que preenchem este artigo:
Então vamos começar. :)
Introdução ao Netflix
A Netflix é uma empresa americana que presta serviços de Video on Demand (VOD). Com sede em Los Gatos, Califórnia, a Netflix tem cerca de 148 milhões de assinantes em todo o mundo e o número, no entanto, continua crescendo a cada dia. Em um período de aproximadamente duas décadas, a Netflix emergiu como o ‘Rei do clã’ das maiores séries de TV e filmes do mundo. Sendo a marca de crescimento mais rápido da América e tendo uma receita de $ 20,5 bilhões em 2019, é o suficiente para ser uma 'atração', interessando assim tudo em suas esferas tecnológicas.
Com base na mesma área de interesse, a Netflix revelou como faz uso da linguagem mais popular, Pitão , por sua infraestrutura.
Então agora vamos ver como a Netflix usa Python?
Como a Netflix usa Python?
“Usamos Python em todo o ciclo de vida do conteúdo, desde a decisão de qual conteúdo financiar até a operação do CDN que exibe o vídeo final para 148 milhões de membros” - Engenheiros da Netflix
Variando from domínios administrativos para confiabilidade e Ciência de Dados para etc, a Netflix usa Python para quase todos os aspectos de seus negócios.
Agora vamos dar uma olhada mais profunda em como é usado em vários domínios na Netflix:
Open Connect:
O CDN (Content Delivery Network) que a Netflix usa é o Open Connect. A conexão aberta basicamente entra em cena quando você clica no botão ‘play’. Todo o conteúdo entregue ao usuário final é cuidado por este CDN.
A conexão aberta requer vários outros sistemas de software para projetar, construir e operar que, por sua vez, são escritos em Python. Não apenas isso, os dispositivos de rede subjacentes a este CDN são aplicativos Python, já que Python é proeminente na solução de problemas de rede.
Equipe de engenharia de demanda:
A equipe de Demand Engineering é responsável por lidar com failovers regionais da nuvem Netflix, administração de tráfego, gerenciamento de operações de capacidade (cuidando do limite até o qual o conteúdo pode ser útil) e eficiência da frota Os elementos do Python usados por esta equipe são:
NumPy e SciPy:
e SciPy são as bibliotecas usadas para computação científica. A Netflix usa essas bibliotecas Python para realizar análises numéricas, permitindo o gerenciamento de failovers regionais.
Boto3:
Boto3 é o Software Development Kit (SDK) da para Python. Isso ajuda os desenvolvedores Python a integrarem o Python à AWS, permitindo, assim, o desenvolvimento na infraestrutura.
RQ (Redis Queue):
Esta é uma biblioteca Python que ajuda a controlar as tarefas que estão presentes na fila e permite a sua execução permitindo assim a gestão de cargas de trabalho assíncronas.
como usar a classe scanner em java
Frasco:
Finalmente, a Netflix usa a API Flask (biblioteca de desenvolvimento da Web em Python) para vincular todos os segmentos anteriores.
Netflix faz uso de que é um aplicativo da web de código aberto, usado para desenvolvimento Python junto com interagir (extensão para Jupyter) em grande escala. Jupyter é conhecido por ser popular para análise de dados. Ele serve muito bem na análise e visualização de dados operacionais, o que, por sua vez, ajuda na detecção de regressões de capacidade.
Infraestrutura de aprendizado de máquina:
vai desde a criação de algoritmos de Personalização até a identificação dos casos de uso. Os algoritmos de personalização ajudam a treinar os modelos de aprendizado de máquina de acordo com os padrões da Netflix. Ele fornece recomendações personalizadas, esboços no dia a dia, geração de rótulos, etc.
As bibliotecas necessárias para aprender Redes Neurais Profundas está TensorFlow , Difícil e Pytorch enquanto que XGBoost e LightGBM para Árvores de decisão impulsionadas por gradiente.Eles também desenvolveram algumas bibliotecas de nível superior que ajudam na combinação com as áreas de trabalho, como registro de fatos, extração de recursos, publicação, etc. Além de tudo isso, a Netflix também usa MetaFlow para criar projetos de aprendizado de máquina.
“O Metaflow amplia os limites do Python: aproveitamos o código Python bem paralelizado e otimizado para buscar dados a 10 Gbps, lidar com centenas de milhões de pontos de dados na memória e orquestrar a computação em dezenas de milhares de núcleos de CPU” - Netflix
Big Data:
o A equipe é responsável por executar ETL (extrair, transformar, carregar) e pipelines Adhoc. A maior parte dessa orquestração é escrita em Python. Esta equipe usa um planejador que é executado em Notebooks Jupyter com fábrica de papel para produzir tipos de trabalho com modelos, por exemplo, , Em breve, etc.
Além disso, a equipe também criou uma plataforma orientada a eventos que é totalmente construída em Python. Eles criaram vários eventos e os combinaram em um único, permitindo à Netflix filtrar, reagir e encaminhar eventos. Pygenie também faz parte dessa infraestrutura que faz interface com o Genie (serviço de execução de trabalhos caracterizado).
Experimentação Científica:
Esta é uma plataforma criada pela equipe de experimentação científica para permitir Teste A / B junto com algumas outras experimentações. Aqui, cientistas e engenheiros podem apresentar inovações em dados, estatísticas e visualização.
O Python que é implementado aqui é Repo de métricas que é baseado em PyPika e permite a gravação de consultas parametrizadas reutilizáveis. Para o setor de estatísticas, PyArrow e RPy2 são usados para calcular estatísticas em Python ou R. Completamente ajuda nas visualizações.
Codificação de vídeo / Engenharia de nuvem de mídia:
Essa equipe é responsável por tarefas de codificação e recodificação do catálogo Netflix. Python é usado aproximadamente para 50 projetos, como VMAF (Video Multi-Method Assessment Fusion) e MezzFS (Sistema de arquivos mezanino), Soluções de visão computacional (lida com imagens) usando Arqueiro etc.
Animação Netflix e NVFX:
Python forma a base para todas as animações e efeitos visuais (VFX) na Netflix. Todas as uniões Maya e Nuke são feitas em Python.
IS (Segurança da Informação):
A Netflix usa sistemas IS com Python para auto-remediação, automação de segurança, classificação de risco, etc. O projeto Python de código aberto mais ativo desta equipe é Macaco de Segurança . Netflix também usa ABENÇOAR (Serviço Lambda efêmero SSH de Bastion) proteger SSH (Secure Shell) recursos. RepoKid é usado para conceder JÁ permissões e certificados TLS são atribuídos através do Lemur. Ambas as tarefas dependem principalmente do Python.
Monitoramento e correção automática:
Essa equipe é conhecida como equipe Insight Engineering. Eles constroem e executam ferramentaspara insights operacionais, diagnósticos, autocorreção e alterações. Para a maioria de seus serviços, esta equipe faz uso de Python, por exemplo, a biblioteca cliente Spectator Python. Esta biblioteca é usada para registrar séries temporais dimensionais. Junto com essas bibliotecas, produtos como Winston e Bolt também são construídos em estruturas Python que são , Gunicorn e Flask-RestPlus.
Resumindo tudo, pode-se facilmente afirmar que o Python é a força motriz do Netflix. Com isso, chegamos ao final deste blog sobre “Como a Netflix usa Python?”. Espero que você tenha esclarecido tudo o que foi discutido.
Para obter conhecimento aprofundado sobre Python, juntamente com seus vários aplicativos, você pode se inscrever para com suporte 24/7 e acesso vitalício.
Tem alguma questão para nós? Mencione isso na seção de comentários deste blog “Como o Python usa o Netflix” e entraremos em contato com você o mais breve possível.