Your SlideShare is downloading. ×
0
×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

CartolaFC - uma aplicação python rápida e escalável - pythonbrasil [6]

5,528

Published on

apresentação sobre performance e escalabilidade em python feita na pythonbrasil [6]

apresentação sobre performance e escalabilidade em python feita na pythonbrasil [6]

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,528
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
40
Comments
0
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • - CartolaFC é o fantasy game oficial do campeonato brasileiro.
    - Existe desde 2005
    - Falar como o jogo funciona
  • refazer uma aplicação consolidade no mercado, em 5 meses... com um time de 4 pessoas... possibilitar o crescimento de até 3vezes

  • antes de começar o projeto, defimos o que nós queríamos, quais nossas necessidades.. foram elas:
    leve - rápida - segura - deploy automatizado - escalável - baixo custo - 100% softwar livre - Desenvolvimento rápido e fácil - Fácil manuntenção
  • falar de cada ferramenta
  • hj em dia nosso desafio eh muito maior do que ha alguns anos... precisamos atender muitas requisições simultâneas.. e esse era nosso problema... pesquisando encontrei esse paper, bem famoso até. ele fala sobre os tipos de servidores, e como extrair o máximo de performance dos seus recursos
  • como performar aplicações web em pyton?
    existem duas formas...
    cgi: cada requisição inicia uma nova linha de execução própria
    app: o app server mantém o mesmo contexto
  • cgi script não performa bem, é lento e instável
    python application performa muito bem, estabilidade
  • fork: para cada requsição, um novo processo e criado para atende-lá
    pre-fork: os processos são iniciados antes antes da requisição chegar
    thread: uma thread para cada requisição
    single thread: uma única thread atende todas as requisições
  • abrir um processo para cada requisição, é morte certa
    muito lento
    consegue imaginar 10mil processos?
  • melhor que o fork, mais tem o mesmo problema, muitos processos abertos
  • melhor abrir uma thread do que abrir um processo, mas threads consomem muita memória, e com o aumento de requisições a degradação é muito grande
    resta o single thread. mas como uma única thread é capaz de atender milhares de requisições simultâneas?
  • tudo em linux é arquivo ... vc estabelece um socket, fazendo listen em uma determinada porta. registra esse socket no event polling do SO. Quando um evento acontece nesse socket, uma nova linha de execução e criada pelo SO, e vc consegue processar multiplas requisições simultâneamente, pode acreditar.
    por padrão o SO bloquea a execução de sua aplicação, quando operações de I/O são feitas. isso gera overhad, com non blocking, sua aplicação não é bloqueadas e continua sendo executada mesmo quando se está realizando alguma operação de I/O
  • 1 webserver rodando
    balanceamento de carga entre as 7 instâncias de aplicação
    capaz de processar 250 requisições por segundo









  • uma aplicação escalável, é um aplicação preparada para crescer
    unidade operacional, box. cada unidade é capaz de rodar de forma isolada e independente
    deploy automatizado
    escalabilidade horizontal, cada novo box representa aumento proporcional
  • cada box processa 250 requisiçoes por segundo


  • - CartolaFC é o fantasy game oficial do campeonato brasileiro.
    - Existe desde 2005
    - Falar como o jogo funciona
  • ×