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)
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 ./