Essa palestra apresenta a plataforma de vídeos do UOL, projetada para atender à grande audiência de todo o portal, bem como seus parceiros, com baixo custo e alta disponibilidade. Descrevemos a abordagem técnica utilizada para desenvolver um servidor HTTP específico para vídeos em download progressivo: o “Balaio”.
Contamos o histórico tecnológico da plataforma desde 2007: quais soluções de mercado eram anteriormente adotadas, os pontos fortes e fracos de cada solução – e os principais motivos que nos levaram a desenvolver uma aplicação internamente, reduzindo e especializando o escopo de uma tarefa conhecida que é servir arquivos por HTTP.
São também explicadas a estratégia de balanceamento de carga, a distribuição lógica e física das aplicações, as técnicas para caching de objetos, os motivos para se ter adotado Java e os frameworks utilizados, além dos resultados alcançados.
Como o elasticsearch salvou minhas buscasWaldemar Neto
O documento discute como o Elasticsearch salvou as buscas do autor ao fornecer um mecanismo de pesquisa de texto completo escalável e em tempo real que permitiu indexar e buscar milhares de documentos com tempos de resposta baixos. O autor também aborda como integrou com segurança o Elasticsearch em seu sistema usando proxies e autenticação para proteger o servidor.
O documento discute o uso da tecnologia Node.js para construir uma API de pagamentos. Ele explica porque Node.js é adequado para este tipo de aplicação devido à sua natureza assíncrona e orientada a eventos, permitindo lidar com muitas requisições simultâneas de forma escalável. O documento também discute problemas comuns de Node.js e como evitá-los, além de abordar tópicos como infraestrutura, testes e monitoramento.
Quando uma aplicação começa a ficar grande e complexa, fazer buscas nos seus models torna-se uma tarefa complicada. Efetuar as buscas diretamente no banco de dados é um processo lento, ineficiente e que permite pouca ou nenhuma maleabilidade sobre a forma com que a busca é feita. Surge então o ElasticSearch, uma engine de busca utilizada por empresas como Github, Twitter e 4square para indexar e buscar literalmente milhões de documentos em tempo real. Nessa palestra, explicarei quando, como e porque utilizar o ElasticSearch para facilmente indexar e efetuar buscas complexas nos seus models.
O documento discute os benefícios e desafios do uso da plataforma Node.js para construir um gateway de pagamentos online. Node.js é adequado para este caso devido à natureza assíncrona e de I/O intensiva da aplicação. Entretanto, o código assíncrono em Node.js pode se tornar complexo e causar problemas, e a plataforma ainda está em desenvolvimento. Abordagens como testes, padronização e microserviços podem ajudar a superar esses desafios.
Este documento apresenta uma introdução ao Elasticsearch, cobrindo sua visão, histórico, conceitos-chave, instalação, buscas, clientes, arquitetura e considerações sobre desempenho. É dado ênfase aos processos de indexação, busca, clientes Java e arquitetura distribuída do Elasticsearch.
O documento discute as virtudes e ferramentas de um ambiente web moderno para desenvolvimento e produção de software, incluindo controle de versão, sistemas de documentação, repositórios de módulos, gerenciamento de projetos e assistência remota. O futuro trará interfaces mais semelhantes a aplicativos desktop e autenticação simplificada.
Como o elasticsearch salvou minhas buscasWaldemar Neto
O documento discute como o Elasticsearch salvou as buscas do autor ao fornecer um mecanismo de pesquisa de texto completo escalável e em tempo real que permitiu indexar e buscar milhares de documentos com tempos de resposta baixos. O autor também aborda como integrou com segurança o Elasticsearch em seu sistema usando proxies e autenticação para proteger o servidor.
O documento discute o uso da tecnologia Node.js para construir uma API de pagamentos. Ele explica porque Node.js é adequado para este tipo de aplicação devido à sua natureza assíncrona e orientada a eventos, permitindo lidar com muitas requisições simultâneas de forma escalável. O documento também discute problemas comuns de Node.js e como evitá-los, além de abordar tópicos como infraestrutura, testes e monitoramento.
Quando uma aplicação começa a ficar grande e complexa, fazer buscas nos seus models torna-se uma tarefa complicada. Efetuar as buscas diretamente no banco de dados é um processo lento, ineficiente e que permite pouca ou nenhuma maleabilidade sobre a forma com que a busca é feita. Surge então o ElasticSearch, uma engine de busca utilizada por empresas como Github, Twitter e 4square para indexar e buscar literalmente milhões de documentos em tempo real. Nessa palestra, explicarei quando, como e porque utilizar o ElasticSearch para facilmente indexar e efetuar buscas complexas nos seus models.
O documento discute os benefícios e desafios do uso da plataforma Node.js para construir um gateway de pagamentos online. Node.js é adequado para este caso devido à natureza assíncrona e de I/O intensiva da aplicação. Entretanto, o código assíncrono em Node.js pode se tornar complexo e causar problemas, e a plataforma ainda está em desenvolvimento. Abordagens como testes, padronização e microserviços podem ajudar a superar esses desafios.
Este documento apresenta uma introdução ao Elasticsearch, cobrindo sua visão, histórico, conceitos-chave, instalação, buscas, clientes, arquitetura e considerações sobre desempenho. É dado ênfase aos processos de indexação, busca, clientes Java e arquitetura distribuída do Elasticsearch.
O documento discute as virtudes e ferramentas de um ambiente web moderno para desenvolvimento e produção de software, incluindo controle de versão, sistemas de documentação, repositórios de módulos, gerenciamento de projetos e assistência remota. O futuro trará interfaces mais semelhantes a aplicativos desktop e autenticação simplificada.
Escalando uma plataforma poliglota - QConSP 17Leandro Moreira
O documento discute as arquiteturas poliglotas utilizadas na plataforma de vídeos ao vivo da Globo.com, abordando a diversidade de problemas e soluções, como caching, armazenamento, encoding e CDNs. Práticas como testes, documentação e monitoramento são apresentadas para lidar com a complexidade e garantir a escalabilidade e disponibilidade do sistema.
Be Aware Webinar Symantec - O que há de novo? Data Loss Prevention 14.5Symantec Brasil
1. O documento fornece instruções sobre como participar de uma apresentação online sobre Data Loss Prevention 14.5.
2. Os participantes podem colocar perguntas, baixar arquivos, avaliar a apresentação e rever a gravação posteriormente.
3. A apresentação irá cobrir novas funcionalidades do DLP 14.5 como form matching, suporte aprimorado para cloud storage e melhorias na interface do usuário.
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122Bruno Souza
Slides do Minicurso ministrado pela ToolsCloud na Globalcode. Para se inscrever nas proximas turmas, acesse:
http://www.globalcode.com.br/gratuitos/minicursos/minicurso-introducao-a-alm-open-source
Para experimentar as ferramentas apresentadas no minicurso, você pode utilizar o ambiente de demonstração da ToolsCloud:
https://demo.toolscloud.net
User: toolscloud
Password: toolscloud
ToolsCloud -- As ferramentas que os desenvolvedores adoram, na nuvem!
Solução complete de ALM, open source e sem stress. Começe a usar no seu projeto hoje!
http://www.toolscloud.com
O documento discute como automatizar sistemas legados utilizando ferramentas de DevOps. Primeiro, descreve as características problemáticas dos sistemas legados e a necessidade de tratá-los da melhor forma possível. Em seguida, apresenta como a HypeFlame/Agibank modularizou seu sistema legado, escolheu ferramentas adequadas e implementou pipelines de integração e entrega contínuas para tratá-lo de forma semelhante a microsserviços.
O documento fornece recomendações para otimizar o desempenho de sites WordPress, abordando ferramentas de análise, servidores, plugins, imagens, ícones, recursos externos, cache e construtores de páginas.
O documento apresenta uma palestra sobre o Windows Server 2012. A agenda inclui edições e licenciamento, certificações e novos recursos como o Hyper-V 3.0, deduplicação de dados, NIC Teaming e conversão entre versões Core e Full. É recomendada a compra de uma licença Datacenter para um servidor com quatro máquinas virtuais e 300 usuários.
O documento resume as principais características do software de Business Intelligence gratuito SpagoBI. O SpagoBI possui interface gráfica flexível, suporte a múltiplos bancos de dados e idiomas, e módulos como reporting, OLAP e dashboards. Ele também oferece customização, escalabilidade e suporte técnico gratuito, porém tem limitações como pouca documentação em português e demora na criação de cubos.
1. O documento lista os requisitos funcionais pretendidos e implementados para uma plataforma de vídeos.
2. Muitos requisitos foram implementados com sucesso através do componente hwdVideoShare e outros módulos, mas alguns objetivos não foram alcançados devido a problemas técnicos.
3. O desenvolvimento da plataforma levou vários meses e enfrentou desafios como layouts problemáticos e plugins com mau funcionamento.
O documento discute o conceito de vídeo digital, formatos, codificação e ferramentas. Apresenta os principais formatos como MPEG, AVI, WMV e MOV. Aborda codificação, conversão e equipamentos como câmeras profissionais, domésticas e smartphones. Também menciona editores online e softwares para edição.
O documento apresenta o papel atual de um desenvolvedor front-end, descrevendo como as tecnologias e responsabilidades evoluíram desde 2012. O desenvolvedor front-end agora é responsável por criar interfaces responsivas que funcionam em diversos dispositivos e navegadores usando frameworks como AngularJS e padrões como testes automatizados e pré-processadores de CSS. O documento também lista diversas ferramentas e tecnologias atuais usadas por desenvolvedores front-end.
Este documento fornece um resumo sobre como criar e exibir vídeos para a internet, discutindo brevemente a história do vídeo, glossário de termos, opções básicas, intermediárias e avançadas de captura e edição de vídeo, locais para divulgação e um recado final sobre a importância de boas ideias sobre a tecnologia.
O documento discute os aspectos gerais e pré-instalação de um novo servidor. Aborda determinar os objetivos do servidor, o sistema operacional, requisitos de hardware, organização de armazenamento, sistemas de arquivos, licenciamento e participação na rede. A lista de verificação pré-instalação é fornecida.
O documento discute os aspectos gerais e pré-instalação de um novo servidor. Aborda determinar os objetivos do servidor, o sistema operacional, requisitos de hardware, organização de armazenamento, sistemas de arquivos, licenciamento e participação na rede. A lista de verificação pré-instalação é fornecida.
O documento apresenta casos de sucesso de sites construídos com Joomla, incluindo peugeot.com, brb.com.br e portal.mec.gov.br. Também descreve o desenvolvimento de um portal padrão para o governo federal brasileiro usando Joomla com foco em acessibilidade, experiência do usuário e economicidade.
Mini-curso "Codando com PHP e JQuery" na Semana de Informática (SEMINFO 2013) do Instituto Federal Goiano Campus de Urutaí-Go.
22 e 23 de outubro de 2013.
------------------------------------------------------------------------------------------
Presentation and short course "Codando com PHP e JQuery". SEMINFO. Federal Institute Goiás, Campus Urutaí. Urutaí, Goiás, Brazil.
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
Muitas empresas tem adotado uma arquitetura de microserviços em seus projetos, devido a capacidade de fazermos o deploy de cada serviço de forma independente, escalar e manter cada microserviço, além de paralelizar o desenvolvimento entre múltiplos times. Nesse contexto, pretende-se mostrar desafios que temos encontrado na área de qualidade e quais técnicas de desenvolvimento e testes podem ser utilizados.
Obs.: Evolução da apresentação feita originalmente no TDC 2018 (Trilha Testes)
O documento discute o desenvolvimento de portais para o Partido Democrata usando Drupal. Ele descreve o que é Drupal, sua história, por que foi usado, os três portais desenvolvidos, os módulos utilizados e o processo de desenvolvimento.
Escalando uma plataforma poliglota - QConSP 17Leandro Moreira
O documento discute as arquiteturas poliglotas utilizadas na plataforma de vídeos ao vivo da Globo.com, abordando a diversidade de problemas e soluções, como caching, armazenamento, encoding e CDNs. Práticas como testes, documentação e monitoramento são apresentadas para lidar com a complexidade e garantir a escalabilidade e disponibilidade do sistema.
Be Aware Webinar Symantec - O que há de novo? Data Loss Prevention 14.5Symantec Brasil
1. O documento fornece instruções sobre como participar de uma apresentação online sobre Data Loss Prevention 14.5.
2. Os participantes podem colocar perguntas, baixar arquivos, avaliar a apresentação e rever a gravação posteriormente.
3. A apresentação irá cobrir novas funcionalidades do DLP 14.5 como form matching, suporte aprimorado para cloud storage e melhorias na interface do usuário.
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122Bruno Souza
Slides do Minicurso ministrado pela ToolsCloud na Globalcode. Para se inscrever nas proximas turmas, acesse:
http://www.globalcode.com.br/gratuitos/minicursos/minicurso-introducao-a-alm-open-source
Para experimentar as ferramentas apresentadas no minicurso, você pode utilizar o ambiente de demonstração da ToolsCloud:
https://demo.toolscloud.net
User: toolscloud
Password: toolscloud
ToolsCloud -- As ferramentas que os desenvolvedores adoram, na nuvem!
Solução complete de ALM, open source e sem stress. Começe a usar no seu projeto hoje!
http://www.toolscloud.com
O documento discute como automatizar sistemas legados utilizando ferramentas de DevOps. Primeiro, descreve as características problemáticas dos sistemas legados e a necessidade de tratá-los da melhor forma possível. Em seguida, apresenta como a HypeFlame/Agibank modularizou seu sistema legado, escolheu ferramentas adequadas e implementou pipelines de integração e entrega contínuas para tratá-lo de forma semelhante a microsserviços.
O documento fornece recomendações para otimizar o desempenho de sites WordPress, abordando ferramentas de análise, servidores, plugins, imagens, ícones, recursos externos, cache e construtores de páginas.
O documento apresenta uma palestra sobre o Windows Server 2012. A agenda inclui edições e licenciamento, certificações e novos recursos como o Hyper-V 3.0, deduplicação de dados, NIC Teaming e conversão entre versões Core e Full. É recomendada a compra de uma licença Datacenter para um servidor com quatro máquinas virtuais e 300 usuários.
O documento resume as principais características do software de Business Intelligence gratuito SpagoBI. O SpagoBI possui interface gráfica flexível, suporte a múltiplos bancos de dados e idiomas, e módulos como reporting, OLAP e dashboards. Ele também oferece customização, escalabilidade e suporte técnico gratuito, porém tem limitações como pouca documentação em português e demora na criação de cubos.
1. O documento lista os requisitos funcionais pretendidos e implementados para uma plataforma de vídeos.
2. Muitos requisitos foram implementados com sucesso através do componente hwdVideoShare e outros módulos, mas alguns objetivos não foram alcançados devido a problemas técnicos.
3. O desenvolvimento da plataforma levou vários meses e enfrentou desafios como layouts problemáticos e plugins com mau funcionamento.
O documento discute o conceito de vídeo digital, formatos, codificação e ferramentas. Apresenta os principais formatos como MPEG, AVI, WMV e MOV. Aborda codificação, conversão e equipamentos como câmeras profissionais, domésticas e smartphones. Também menciona editores online e softwares para edição.
O documento apresenta o papel atual de um desenvolvedor front-end, descrevendo como as tecnologias e responsabilidades evoluíram desde 2012. O desenvolvedor front-end agora é responsável por criar interfaces responsivas que funcionam em diversos dispositivos e navegadores usando frameworks como AngularJS e padrões como testes automatizados e pré-processadores de CSS. O documento também lista diversas ferramentas e tecnologias atuais usadas por desenvolvedores front-end.
Este documento fornece um resumo sobre como criar e exibir vídeos para a internet, discutindo brevemente a história do vídeo, glossário de termos, opções básicas, intermediárias e avançadas de captura e edição de vídeo, locais para divulgação e um recado final sobre a importância de boas ideias sobre a tecnologia.
O documento discute os aspectos gerais e pré-instalação de um novo servidor. Aborda determinar os objetivos do servidor, o sistema operacional, requisitos de hardware, organização de armazenamento, sistemas de arquivos, licenciamento e participação na rede. A lista de verificação pré-instalação é fornecida.
O documento discute os aspectos gerais e pré-instalação de um novo servidor. Aborda determinar os objetivos do servidor, o sistema operacional, requisitos de hardware, organização de armazenamento, sistemas de arquivos, licenciamento e participação na rede. A lista de verificação pré-instalação é fornecida.
O documento apresenta casos de sucesso de sites construídos com Joomla, incluindo peugeot.com, brb.com.br e portal.mec.gov.br. Também descreve o desenvolvimento de um portal padrão para o governo federal brasileiro usando Joomla com foco em acessibilidade, experiência do usuário e economicidade.
Mini-curso "Codando com PHP e JQuery" na Semana de Informática (SEMINFO 2013) do Instituto Federal Goiano Campus de Urutaí-Go.
22 e 23 de outubro de 2013.
------------------------------------------------------------------------------------------
Presentation and short course "Codando com PHP e JQuery". SEMINFO. Federal Institute Goiás, Campus Urutaí. Urutaí, Goiás, Brazil.
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
Muitas empresas tem adotado uma arquitetura de microserviços em seus projetos, devido a capacidade de fazermos o deploy de cada serviço de forma independente, escalar e manter cada microserviço, além de paralelizar o desenvolvimento entre múltiplos times. Nesse contexto, pretende-se mostrar desafios que temos encontrado na área de qualidade e quais técnicas de desenvolvimento e testes podem ser utilizados.
Obs.: Evolução da apresentação feita originalmente no TDC 2018 (Trilha Testes)
O documento discute o desenvolvimento de portais para o Partido Democrata usando Drupal. Ele descreve o que é Drupal, sua história, por que foi usado, os três portais desenvolvidos, os módulos utilizados e o processo de desenvolvimento.
Semelhante a Plataforma de vídeos do UOL : Desenvolvimento de Cache+Proxy de alta performancePlataforma videosuol mais (20)
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
Plataforma de vídeos do UOL : Desenvolvimento de Cache+Proxy de alta performancePlataforma videosuol mais
1.
2. Plataforma de vídeos UOLMais
Load Balacing + Proxy + Cache de Arquivos
George Vieira Jr – gvieira@uolinc.com
3. Plataforma de Vídeos UOLMais 22/04/2012
Agenda
•O que é o UOLMais
•Problemas do passado
•Soluções avaliadas
•Premissas e desafios para o sistema
•Solução UOL
●
Resultados
●
Croupier
●
Balaio
4. Plataforma de Vídeos UOLMais 22/04/2012
UOLMais
• Plataforma de conteúdo multimídia do UOL
●
Vídeo, Fotos, Áudio, Slides, Texto
• mais.uol.com.br
●
Administração/visualização do conteúdo
●
Usuários comuns (assinantes e visitantes)
●
Usuários editoriais (internos e parceiros)
• tvuol.uol.com.br
●
Conteúdo editorial do UOL
• Parceiros UOL
●
band.com.br, folha.com, TV Caras, TV Trama, etc.
7. Plataforma de Vídeos UOLMais 22/04/2012
Características do Sistema
•Variações de tamanhos de arquivos de 5 MB a 4 GB
•Perfil de clientes por tipo de mídia
●
Banda dos usuários heterogênea
●
Conexões de longa duração em um protocolo sem suporte inerente a
falhas de conexão
•Acesso em grande parte do acervo diariamente
•Longtail
•Thundering herd
- Vídeos repentinamente populares
•Interface com o storage é HTTP / DAV
9. Plataforma de Vídeos UOLMais 22/04/2012
Problemas – Longtail
•Longtail acentuado
●
64% das mídias são chamadas apenas 1 vez por dia
●
73% dos requests se concentram nas 350 mídias mais vistas.
73%
27%
10. Plataforma de Vídeos UOLMais 22/04/2012
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
Quantidade de Requests
Meses
QuantidadedeMídias
Problemas – Imprevisibilidade sazonal
11. Plataforma de Vídeos UOLMais 22/04/2012
Soluções Avaliadas
●
Disk Cache grava em hash
Nginx
●
Seek não funciona com proxy
●
Arquivo precisa ser copiado inteiro antes de ser lido
Lighttpd
●
Seek não funciona com proxy
●
Apresentou degradação na taxa de transferência com proxy
●
Content-Lenght falhava com proxy
•Bom
●
Boa experiência com cache de imagens
●
Na versão 3 só faz 1 fetch com backend
Varnish
•Ruim
●
Não performa em disco
●
Vídeos entram todos em arquivos binários (heap)
12. Plataforma de Vídeos UOLMais 22/04/2012
Premissas e Desafios
•Não deixar vídeo “quente” sair do cache
•Aliviar carga no storage (uso máximo 60% capacidade)
•Seek
•Vídeos HD (720p, 1080p)
•Melhorar experiência do usuário
•Concluir os pontos acima com o menor custo possível
•Cache eficiente (hit-rate)
13. Plataforma de Vídeos UOLMais 22/04/2012
Solução UOL
Por que não agrupar as boas
características de cada solução em
uma única?
14. Plataforma de Vídeos UOLMais 22/04/2012
Resultados
•Queda de IO nos storages
Início da migração ->
(Fevereiro 2012)
Hoje ->
Resultados
15. Plataforma de Vídeos UOLMais 22/04/2012
Resultados
•Hit Rate Alto
Antes da migração ->
(Agosto 2011)
Hoje ->
Resultados
16. Plataforma de Vídeos UOLMais 22/04/2012
Resultados
•Clientes
●
Assistem a todos os tipos de mídia com qualidade
•Produção
●
Melhor aproveitamento dos hardwares
●
Redução de incidentes (~2.000 mensais para 0)
●
Crescimento de tráfego em mais de 120%
●
Melhor uso da capacidade de storage
●
Flexibilidade para lidar em tempo real com
balanceamento e thundering herd
Resultados
17. Plataforma de Vídeos UOLMais 22/04/2012
Olhando debaixo do capô
Revelando a “mágica”
19. Plataforma de Vídeos UOLMais 22/04/2012
Storage 1
(Spare)
Cenário Inicial
browser
Squid 1 Squid 2 Squid 3
...
DNS
Storage 1 Storage 2 Storage N
storage.mais.uol.com.br
Autorização
e distribuição
round robin DNS Request pelo id da midia
* Tradução de mídia por file
* Validação de visibilidade
* Distribuição e esparsamento
no file system
Proxy reverso dos files
nos storagesStorage 2
(Spare)
Storage N
(Spare)
20. Plataforma de Vídeos UOLMais 22/04/2012
Croupier – Mudança na arquitetura
browser
Cache 1 Cache 2 Cache N
...
API do player requisita
qual servidor de cache
a mídia se encontra.
Croupier
Usando a regra de distribuição,
informa diretamente o domínio
do servidor a ser acessado.
videoN.mais.uol.com.br
Storage 1
(Spare)
Storage 1 Storage 2 Storage N
Storage 2
(Spare)
Storage N
(Spare)
Autorização
e distribuição
21. Plataforma de Vídeos UOLMais 22/04/2012
Regra de distribuição
• Permite configurar distribuição da carga por máquina (nó)
• Busca estatísticas de carga de cada servidor
• Permite segmentar tipo de vídeo x hardware específico
●
Máquinas com muita capacidade de disco, recebem cache
heterogêneo
●
Máquinas capacidade de CPU recebem “seek” e “SSL”
●
Máquinas com muita RAM e rede 10G recebem os vídeos
“bombados”
• Capacidade de reação
●
Vídeos populares se espalham em vários nós
●
Vídeos longtail são estimulados a ir sempre no mesmo nó
●
Remoção de servidores em estado crítico
24. Plataforma de Vídeos UOLMais 22/04/2012
-Problema do “cobertor curto” com as demais soluções tentadas
●
Experiência para combinar o que funciona em 1 único server
-Limite de banda de cada máquina (1Gb)
●
Limite de download por cliente / evasive.
●
Bloqueio de user-agents / referers.
-Aumento da média de tamanho individual dos vídeos (vídeos HD)
-Balanceamento / Monitoração.
-Regras específicas para lidar com longtail e thundering herd.
●
Níveis de cache conforme a audiência do vídeo.
-Minimização de chamadas de fetch para o backend
●
Segmentação de arquivos
●
Fetch “colapsado” / download preventivo do segmento.
-Foco em vídeos (conexões longas e arquivos grandes)
-Ponto fraco do Java (CPU + GC) não exerce fator limitante (zero-copy).
-Toda arquitetura da aplicação é assíncrona: Java NIO.2 + Netty.
25. Plataforma de Vídeos UOLMais 22/04/2012
Balaio – Níveis de cache
Old
Young
Popular
HD
RAMDISK
RAMDISK
video.mp4.seg1
video.mp4.seg1 1 hit
x hits
y hits
26. Plataforma de Vídeos UOLMais 22/04/2012
Internet
Balaio – Segmentação de arquivos
video.mp4
file server
(apache)
video.mp4.seg1
balaio
video.mp4.seg2
video.mp4.segN
HTTP GET video.mp4
HTTP GET
(Range-Request)
27. Plataforma de Vídeos UOLMais 22/04/2012
Balaio – Screenshot
Balaio – Interface de monitoração (por máquina)
28. Plataforma de Vídeos UOLMais 22/04/2012
Balaio – Screenshot
Balaio – Vantagens
• Requests de cliente “colapsados” pro backend
• “Seek” com custo de processamento muito baixo
●
Primeiro acesso cria tabela de keyframes
●
Demais acessos remontam header e custo de CPU é o custo de um
http range-request
• Redirect (HTTP 302) pra outro server, em caso de servidor
em estado critico, ou servidor vir direto via Round-Robin
DNS
• Baixa latência – novo paradigma + arquivos pequenos
• Alta escalabilidade horizontal
• Quanto maior o thundering heard, melhor
• Controle de banda adaptativo por bitrate