$30 off During Our Annual Pro Sale. View Details »

Aplicações web de alta performance

Aplicações web de alta performance

Palestra sobre a Studio Sol Comunicação Digital apresentada na Faculdade de Pará de Minas em 2012, citando a história da empresa e dando algumas dicas de como lidamos com aplicações com grande volume de acessos, como Letras.mus.br, Cifra Club e Palco MP3

Pedro Chaves

October 17, 2012
Tweet

More Decks by Pedro Chaves

Other Decks in Programming

Transcript

  1. Aplicações web de alta
    performance
    Pedro Chaves
    Studio Sol Comunicação Digital

    View Slide

  2. Tópicos
    1. A Studio Sol Comunicação Digital
    2. Os sites/apps
    3. A matemática dos usuários
    4. A equipe de desenvolvimento
    5. Tecnologias e estrutura dos sites
    6. Problemas, soluções e otimizações
    7. Mais otimizações!
    8. Dicas finais

    View Slide

  3. 1996
    Gabriel Fernandes
    cria o Cifra Club
    2000
    Studio Sol é criada
    com Samuel Vignoli
    2008
    A primeira vídeo-aula
    é lançada
    2003
    Letras.mus.br e
    Palco MP3 são
    lançados
    2009
    Studio Sol se muda
    para um andar na
    Savassi
    2010
    Cifra Club TV ganha
    mais instrutores e um
    estúdio próprio
    2012
    Empresa tem 3 andares
    e aproximadamente 60
    funcionários

    View Slide

  4. Os sites/apps

    View Slide

  5. 65 mil
    artistas
    Dados de setembro de 2012
    580 mil
    músicas
    390 mil
    visitas diárias
    52 milhões
    pageviews
    Mais de 2
    milhões
    downloads de App
    para Android / iOS

    View Slide

  6. 297 mil
    cifras de violão
    1.130 vídeo-
    aulas por 9
    instrutores
    16 milhões
    visitas
    90 milhões
    pageviews
    580 mil
    visitas diárias
    214 milhões
    visualizações no
    YouTube
    Dados de setembro de 2012

    View Slide

  7. Dados de setembro de 2012
    144 mil
    artistas
    2 milhões
    letras de música
    82 milhões
    visitas
    360 milhões
    pageviews
    2,7 milhões
    visitas diárias
    27 milhões
    visitantes únicos

    View Slide

  8. Equipe de desenvolvimento

    View Slide

  9. Tecnologias utilizadas
    JavaScript

    View Slide

  10. Tecnologias utilizadas

    View Slide

  11. Não importa a linguagem,
    mas sim a estrutura que
    você monta para sua
    aplicação web.

    View Slide

  12. Tecnologias utilizadas
    Memcached

    View Slide

  13. ...e qualquer outra coisa
    que nos ajude.

    View Slide

  14. Estrutura
    ● 14 servidores em São Paulo
    ● 1 servidor com MySQL dedicado
    ● 1 slave MySQL em cada servidor
    ● 3 servidores servindo aplicações
    ● 3 servidores servindo músicas para o Palco
    MP3
    ● 2 servidores para cache

    View Slide

  15. Problemas, soluçoes e
    otimizações

    View Slide

  16. O acesso ao disco é lento, e
    acesso ao MySQL mais
    lento ainda.
    Problema #1

    View Slide

  17. Não buscar dados sempre
    no MySQL!
    Solução #1

    View Slide

  18. Otimização #1
    Arquivos
    em disco
    Memcached

    View Slide

  19. Otimização #1
    Não grave os dados no
    mesmo servidor em que
    eles são lidos!

    View Slide

  20. Quanto mais scripts
    simultâneos no servidor,
    mais lento ele fica
    Problema #2

    View Slide

  21. Evitar que o usuário chegue
    até o servidor de aplicação!
    Solução #2

    View Slide

  22. Otimização #2
    HTTP Max-
    age
    HTTP Last-
    modified

    View Slide

  23. Código mal escrito
    prejudica o servidor.
    Problema #3

    View Slide

  24. Saiba o que é lento na
    linguagem que está usando
    e evite usar!
    Solução #3

    View Slide

  25. Cada milissegundo salvo
    representa algumas
    requisições extras no fim
    do dia ;)
    Otimização #3

    View Slide

  26. Em uma aplicação web, seu
    foco deve ser apenas um:
    O Usuário!

    View Slide

  27. Ao invés de 15
    imagens, por que
    não só uma?
    CSS Sprites

    View Slide

  28. ● Minificar JS e CSS
    Redução de 60% no tamanho do arquivo
    ● gzip
    Redução de 70% no tamanho da resposta
    ● Ganhar SEGUNDOS no
    carregamento da página
    Não tem preço!
    Compressão de arquivos

    View Slide

  29. Otimizações no client-side
    ● Processamentos pesados no servidor
    ● Arquivos estáticos em servidor sem cookies
    ● Carregamento de JavaScript assíncrono
    ● Comprimir HTML
    ● Busque JavaScripts de CDNs conhecidos
    ● Quanto menos arquivos melhor!
    Let's Make the Web Faster!

    View Slide

  30. Seja curioso, leia o código
    alheio, experimente coisas
    novas e mantenha-se atualizado.
    Fale inglês!

    View Slide

  31. Obrigado!
    [email protected]
    @pedrochaves
    http://github.com/pedrochaves

    View Slide