SlideShare uma empresa Scribd logo
1 de 15
Desafios de construir uma
API de alto desempenho
    para globo.com
   API de dados esportivos da globo.com
eu !!!

• Desenvolvedor apaixonado
• Rubista
• globo.com (esportes)
• Programador Poliglota
• Jogador de Magic, RPGista
• DJ nas horas vagas :D
escolhas


  • teste, teste e teste muito
  • escolhas baseadas em números
  • não faça escolhas baseadas em
    gosto
escolhas para api

      • webserver: Nginx
      • autenticação:
         Módulo para Nginx em C

      • aplicação:
         Python + Tornado + SqlAlchemy

      • banco de dados: MySql
      • cache: Redis
trabalho em equipe
consistência

    • seu cliente é um
      desenvolvedor
    • dados consistentes
    • informações claras
    • boa documetação
consistência
consistência
escalabilidade

      • não há milagre
      • espere a necessidade
      • um gargalo por vez
      • tomara que sua API
        fique lenta ou fora do
        ar algum dia ;-)
velocidade


    • tratar pouco os dados
    • gargalos
    • responda o mais
      rápido que puder
velocidade

     api antiga: 150 req/s


     api nova: 6000 req/s
      com autenticação
cache


 • vai salvar sua vida
 • cache de dados
 • cache de página
cache
browser                  webserver
           webserver
                           cache




                         application
database
                           cache
           application
api de dados esportivos
           antes               depois


• documentação ruim        • boa documentação
• tempo de reposta ruim    • ótimo tempo de resposta
• serviços incosistentes   • serviços consistentes
• muitas reclamações :-(   • ainda não temos
                             reclamações :D
obrigado

Rafael Martins
rafael.mws@gmail.com

    @rafael_mws

Mais conteúdo relacionado

Semelhante a Desafios de api contruir uma API de alto desempenho para a Globo.com

Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetMarcos Petry
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel PetryTchelinux
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?Luis Vendrame
 
ASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsAndre Baltieri
 
Escalando para os primeiros 10 milhoes de usuarios
Escalando para os primeiros 10 milhoes de usuariosEscalando para os primeiros 10 milhoes de usuarios
Escalando para os primeiros 10 milhoes de usuariosAmazon Web Services LATAM
 
Path to the Future #1 - Tendências de Big Data
Path to the Future #1 - Tendências de Big DataPath to the Future #1 - Tendências de Big Data
Path to the Future #1 - Tendências de Big DataAmazon Web Services LATAM
 
Locaweb + Spree: transformando código aberto em um projeto comercial
Locaweb + Spree: transformando código aberto em um projeto comercialLocaweb + Spree: transformando código aberto em um projeto comercial
Locaweb + Spree: transformando código aberto em um projeto comercialFernando Hamasaki de Amorim
 
R7 no AWS - Qcon SP 2011
R7 no AWS - Qcon SP 2011R7 no AWS - Qcon SP 2011
R7 no AWS - Qcon SP 2011Roberto Gaiser
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceJosé Roberto Araújo
 
AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaAWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaDaniel Baptista Dias
 
História dos Sistemas - Por que estamos fazendo desse jeito
História dos Sistemas - Por que estamos fazendo desse jeitoHistória dos Sistemas - Por que estamos fazendo desse jeito
História dos Sistemas - Por que estamos fazendo desse jeitoLeo Lorieri
 

Semelhante a Desafios de api contruir uma API de alto desempenho para a Globo.com (20)

Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internet
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
 
Nosql4java
Nosql4javaNosql4java
Nosql4java
 
Tendências de Big Data
Tendências de Big DataTendências de Big Data
Tendências de Big Data
 
Tendências de Big Data
Tendências de Big DataTendências de Big Data
Tendências de Big Data
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?
 
Aws summit arquitetura big data-v1.2
Aws summit arquitetura big data-v1.2Aws summit arquitetura big data-v1.2
Aws summit arquitetura big data-v1.2
 
Automatizando Nmap com NSE
Automatizando Nmap com NSEAutomatizando Nmap com NSE
Automatizando Nmap com NSE
 
ASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance Tips
 
Escalando para os primeiros 10 milhoes de usuarios
Escalando para os primeiros 10 milhoes de usuariosEscalando para os primeiros 10 milhoes de usuarios
Escalando para os primeiros 10 milhoes de usuarios
 
Bancos de dados NoSQL na AWS
Bancos de dados NoSQL na AWSBancos de dados NoSQL na AWS
Bancos de dados NoSQL na AWS
 
Path to the Future #1 - Tendências de Big Data
Path to the Future #1 - Tendências de Big DataPath to the Future #1 - Tendências de Big Data
Path to the Future #1 - Tendências de Big Data
 
Api todo list
Api todo listApi todo list
Api todo list
 
Performance Web com ASP.NET MVC
Performance Web com ASP.NET MVCPerformance Web com ASP.NET MVC
Performance Web com ASP.NET MVC
 
Locaweb + Spree: transformando código aberto em um projeto comercial
Locaweb + Spree: transformando código aberto em um projeto comercialLocaweb + Spree: transformando código aberto em um projeto comercial
Locaweb + Spree: transformando código aberto em um projeto comercial
 
R7 no AWS - Qcon SP 2011
R7 no AWS - Qcon SP 2011R7 no AWS - Qcon SP 2011
R7 no AWS - Qcon SP 2011
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performance
 
Dev vs. Ops
Dev vs. OpsDev vs. Ops
Dev vs. Ops
 
AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaAWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
 
História dos Sistemas - Por que estamos fazendo desse jeito
História dos Sistemas - Por que estamos fazendo desse jeitoHistória dos Sistemas - Por que estamos fazendo desse jeito
História dos Sistemas - Por que estamos fazendo desse jeito
 

Desafios de api contruir uma API de alto desempenho para a Globo.com

  • 1. Desafios de construir uma API de alto desempenho para globo.com API de dados esportivos da globo.com
  • 2. eu !!! • Desenvolvedor apaixonado • Rubista • globo.com (esportes) • Programador Poliglota • Jogador de Magic, RPGista • DJ nas horas vagas :D
  • 3. escolhas • teste, teste e teste muito • escolhas baseadas em números • não faça escolhas baseadas em gosto
  • 4. escolhas para api • webserver: Nginx • autenticação: Módulo para Nginx em C • aplicação: Python + Tornado + SqlAlchemy • banco de dados: MySql • cache: Redis
  • 6. consistência • seu cliente é um desenvolvedor • dados consistentes • informações claras • boa documetação
  • 9. escalabilidade • não há milagre • espere a necessidade • um gargalo por vez • tomara que sua API fique lenta ou fora do ar algum dia ;-)
  • 10. velocidade • tratar pouco os dados • gargalos • responda o mais rápido que puder
  • 11. velocidade api antiga: 150 req/s api nova: 6000 req/s com autenticação
  • 12. cache • vai salvar sua vida • cache de dados • cache de página
  • 13. cache browser webserver webserver cache application database cache application
  • 14. api de dados esportivos antes depois • documentação ruim • boa documentação • tempo de reposta ruim • ótimo tempo de resposta • serviços incosistentes • serviços consistentes • muitas reclamações :-( • ainda não temos reclamações :D

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n