Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Quem disse que elePHPante não voa?

Quem disse que elePHPante não voa?

Serão apresentadas algumas práticas que tornam sua aplicação PHP horizontalmente escalável. Além de mostrar como o Google App Engine pode lhe ajudar nessa tarefa.

Jonata Weber

October 03, 2015
Tweet

More Decks by Jonata Weber

Other Decks in Programming

Transcript

  1. QUEM DISSE QUE ELEPHPANTE NÃO VOA?

  2. OLÁ!! @JonataWeber

  3. Contexto Let's start :) 1

  4. STARTUP Grupo de pessoas à procura de um modelo de

    negócios repetível e escalável, trabalhando em condições de extrema incerteza
  5. CICLO DA STARTUP Medir Aprender Construir

  6. COMO ENTREGAR PARA MILHÕES DE USUÁRIOS?

  7. PRIMEIRO "DATACENTER" DO GOOGLE

  8. BackHub 500 ERROR BackRub is a “web crawler” which is

    designed to traverse the web. Currently we are developing techniques to improve web search engines. We will make various services available as soon as possible. Sorry, many services are unavailable due to a local network faliure [sic] beyond our control. We are working to fix the problem and hope to be back up soon. 12/4/97
  9. QUALIDADES DE UM PRODUTO ◉ Tempo de Resposta <= 200ms

    ◉ Disponibilidade >= 99%
  10. Por que escalabilidade é tão difícil?

  11. None
  12. VOCÊ PRECISA DE UM PLANO.

  13. Sistema escalável Entendendo o conceito de escalabilidade 2

  14. “ Capacidade de manipular uma porção crescente de trabalho de

    forma uniforme, ou estar preparado para crescer.
  15. ESCALABILIDADE VS PERFORMANCE

  16. RECURSOS DISPONÍVEIS CPU Memória I/O Network

  17. ESCALABILIDADE VERTICAL

  18. ESCALABILIDADE HORIZONTAL

  19. ESCALABILIDADE HORIZONTAL: DESAFIOS

  20. APLICAÇÃO WEB PADRÃO ◉ Sessões de Usuário ◉ Banco de

    Dados ◉ Upload de Arquivos
  21. DESACOPLANDO: PASSO #1 ◉ Sessões de Usuário ◉ Upload de

    Arquivos 10.0.0.2
  22. DESACOPLANDO: PASSO #2 Upload de Arquivos 10.0.0.2:3306 10.0.0.4 Sessões de

    Usuário (Memcached/Redis)
  23. DESACOPLANDO: PASSO #3 Upload de Arquivos 10.0.0.2:3306 10.0.0.4 Sessões de

    Usuário (Memcached/Redis) 10.0.0.3:/users/files Arquivos de Usuários (GlusterFS)
  24. AGORA, O CÉU É O LIMITE :) Upload de Arquivos

    10.0.0.2:3306 10.0.0.4 Sessões de Usuário 10.0.0.3:/users/files
  25. Pegando um atalho Sem sofrimento! 3

  26. CLOUD COMPUTING

  27. CLOUD STACK

  28. SEPARADO POR RESPONSABILIDADE

  29. PaaS Plataform as a Service

  30. PLATAFORMA COMO SERVIÇO: VANTAGENS ◉ Rapidez no lançamento ◉ Foco

    na aplicação ◉ Redução de custos ◉ Melhores tecnologias ◉ Atualizações contantes ◉ Escala facilmente
  31. None
  32. GOOGLE CLOUD PLATAFORM http://cloud.google.com/ Place your screenshot here

  33. PRODUTOS DO GOOGLE CLOUD

  34. Hello World Primeiros passos no Google App Engine 4

  35. Passo #1 INSTALE O SDK DO GOOGLE APP ENGINE

  36. Passo #2 ESCREVA SEU CÓDIGO

  37. application: hello-phpeste version: 1 runtime: php55 api_version: 1 handlers: -

    url: /.* script: helloworld.php app.yaml <?php echo 'Hello, world!'; helloworld.php
  38. Passo #3 FAÇA DEPLOY $ appcfg.py update app.yaml

  39. <?php session_start(); $_SESSION['foo'] = 'bar'; print $_SESSION['foo']; SESSÕES DE USUÁRIO

  40. <?php file_put_contents('gs://phpeste/hello.txt', 'Hello'); print file_get_contents('gs://phpeste/hello.txt'); FILESYSTEM

  41. <?php $db = new pdo('mysql:unix_socket=/cloudsql/hello-phpeste:db1', 'root', // username '' //

    password ); DATABASE
  42. Baixe aqui os códigos dessa apresentação https://github.com/jonataa/hello-phpeste

  43. Obrigado! Perguntas? https://joind.in/14990 @jonataweber / jonataa@gmail.com

  44. Bônus

  45. http://locust.io/