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

Google App Engine e PHP

Google App Engine e PHP

Apresentação feita no GDG Maceió sobre o suporte ao PHP no Google App Engine.

Tony Messias

October 06, 2014
Tweet

More Decks by Tony Messias

Other Decks in Programming

Transcript

  1. TL;DW ◦ O que (não) é o GAE ◦ Porque

    usar o GAE ◦ Conceitos Básicos e Serviços ◦ Linguagens ◦ Suporte ao PHP ◦ DEPLOY de um app Laravel no GAE
  2. O que (não) é o GAE? ◦ Surgiu em 2008

    ◦ Não é SaaS (salesforce.com), nem IaaS (amazon) ◦ É PaaS (heroku)
  3. Porque usar o GAE? ◦ Ciclo desenvolvimento/deploy simplificado ◦ GAE

    gerencia o deploy ◦ GAE gerencia a escalabilidade ◦ Não precisa ficar configurando o LAMP stack ◦ Foco total no app, não na infraestrutura O Google é o sysadmin
  4. Sandbox ◦ Segurança ! ◦ Alguns pontos negativos, como: ➢

    não dá p/ escrever em arquivos locais ➢ não dá p/ demorar na resposta ➢ não dá p/ fazer chamadas de SO
  5. Serviços ◦ App Identity (saber qual app está executando) ◦

    Cloud SQL (BD relacional, mysql) ◦ Cloud Storage (guardar e servir arquivos grandes) ◦ Cron (rotinas) ◦ Mail ◦ Memcache (in-memory data cache) ◦ Task Queue (tarefas em background) ◦ URLfetch (fazer requisições para outras apps) ◦ …
  6. Linguagens que suporta ◦ Java ◦ Python ◦ GO ◦

    PHP (!!!) ◦ Outras linguagens que rodam na JVM (Scala, Ruby, Groovy, JavaScript, etc...)
  7. PHP no GAE 1/2 ◦ PHP v5.4 ◦ Selecionar runtime

    no app.yml: (configuração) ... runtime: php api_version: 1 ...
  8. PHP no GAE 2/2 ◦ Algumas extensões podem não ser

    suportadas (caso do mcrypt pro laravel, por exemplo) ◦ Algumas funções podem estar desabilitadas parcial ou permanentemente (por segurança) ◦ Algumas diretivas podem estar com valores padrões diferentes do padrão do PHP (basta ver a documentação para saber quais)
  9. Iniciando ◦ Baixar o SDK do PHP ◦ Instalar o

    python >= v2.7 ◦ Instalar o php5-cgi ◦ Instalar o mysql (local) ◦ Configurar o PHPStorm para o GAE (se quiser usar a IDE)
  10. APP exemplo 1/2 ◦ Laravel (v4.2.x) ◦ TODO APP (como

    sempre) ◦ Serviços: ➢ Cloud-SQL (mysql) ➢ Log (syslog) ➢ Memcache
  11. Configurando o Laravel ◦ Usar syslog para escrever erros da

    aplicação; ◦ Usar memcache como driver de cache da aplicação; ◦ Usar memcache como driver de session da aplicação; ◦ Configurar o blade para compilar as views no CloudStorage (se usar o blade)
  12. Deploy 1/3 application: laravel-demo-mcz version: 1 … handlers: - url:

    /.* script: public/index.php … env_variables: APP_ENV: appengine app.yml
  13. Deploy 2/3 $ appcfg.py --oauth2 update ./ 01:53 PM Application:

    laravel-demo-mcz; version: 1 01:53 PM Host: appengine.google.com 01:53 PM Starting update of app: laravel-demo-mcz, version: 1 01:53 PM Getting current resource limits. 01:53 PM Scanning files on local disk. ... 01:54 PM Uploading 202 files and blobs. 01:55 PM Uploaded 202 files and blobs 01:55 PM Compilation starting. 01:55 PM Compilation completed. 01:55 PM Starting deployment. 01:55 PM Checking if deployment succeeded. 01:55 PM Deployment successful. 01:55 PM Checking if updated app version is serving. 01:55 PM Completed update of app: laravel-demo-mcz, version: 1
  14. Referências 2/2 ➢ http://www.scriptrock.com/articles/heroku- appengine ➢ https://developers.google.com/cloud- sql/pricing ➢ http://blog.neoxia.com/laravel-4-on-google-

    appengine-for-php/ ➢ https://gae-php-tips.appspot. com/2013/10/22/getting-started-with-laravel- on-php-for-app-engine/