Slide 1

Slide 1 text

+TonyMessiasDev Google App Engine & PHP

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Fonte: http://thegadgetsquare.com/ Computação em nuvem

Slide 4

Slide 4 text

O que (não) é o GAE? ○ Surgiu em 2008 ○ Não é SaaS (salesforce.com), nem IaaS (amazon) ○ É PaaS (heroku)

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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) ○ …

Slide 8

Slide 8 text

Paineis de administração

Slide 9

Slide 9 text

Paineis de administração

Slide 10

Slide 10 text

Linguagens que suporta ○ Java ○ Python ○ GO ○ PHP (!!!) ○ Outras linguagens que rodam na JVM (Scala, Ruby, Groovy, JavaScript, etc...)

Slide 11

Slide 11 text

PHP no GAE 1/2 ○ PHP v5.4 ○ Selecionar runtime no app.yml: (configuração) ... runtime: php api_version: 1 ...

Slide 12

Slide 12 text

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)

Slide 13

Slide 13 text

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)

Slide 14

Slide 14 text

APP exemplo 1/2 ○ Laravel (v4.2.x) ○ TODO APP (como sempre) ○ Serviços: ➢ Cloud-SQL (mysql) ➢ Log (syslog) ➢ Memcache

Slide 15

Slide 15 text

APP exemplo 2/2 Features: ○ Registro de usuários (nome, e-mail, senha) ○ Cadastro e exclusão de TODOs

Slide 16

Slide 16 text

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)

Slide 17

Slide 17 text

Rodando local $ dev_appserver.py --php_executable_path=/usr/bin/php5-cgi ./

Slide 18

Slide 18 text

Deploy 1/3 application: laravel-demo-mcz version: 1 … handlers: - url: /.* script: public/index.php … env_variables: APP_ENV: appengine app.yml

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

Deploy 3/3

Slide 21

Slide 21 text

Referências 1/2 ➢ http://www.cloudsherpas.com/partner- google/use-google-app-engine-2/ ➢ https://developers.google.com/appengine/ ➢ https://developers.google. com/appengine/docs/php ➢ http://confluence.jetbrains. com/display/PhpStorm/Getting+Started+with+ PhpStorm+as+Google+App+Engine+PHP+IDE

Slide 22

Slide 22 text

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/

Slide 23

Slide 23 text

+GDG Maceio Obrigado !