Google App Engine e PHP

23
+TonyMessiasDev Google App Engine & PHP

Transcript of Google App Engine e PHP

Page 1: Google App Engine e PHP

+TonyMessiasDev

Google App Engine& PHP

Page 2: Google App Engine e PHP

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

Page 3: Google App Engine e PHP

Fonte: http://thegadgetsquare.com/

Computação em nuvem

Page 4: Google App Engine e PHP

O que (não) é o GAE?

○ Surgiu em 2008

○ Não é SaaS (salesforce.com), nem IaaS (amazon)

○ É PaaS (heroku)

Page 5: Google App Engine e PHP

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

Page 6: Google App Engine e PHP

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

Page 7: Google App Engine e PHP

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)

○ …

Page 8: Google App Engine e PHP

Paineis de administração

Page 9: Google App Engine e PHP

Paineis de administração

Page 10: Google App Engine e PHP

Linguagens que suporta

○ Java

○ Python

○ GO

○ PHP (!!!)

○ Outras linguagens que rodam na JVM (Scala, Ruby, Groovy, JavaScript, etc...)

Page 11: Google App Engine e PHP

PHP no GAE 1/2

○ PHP v5.4

○ Selecionar runtime no app.yml: (configuração)

...

runtime: php

api_version: 1

...

Page 12: Google App Engine e PHP

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)

Page 13: Google App Engine e PHP

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)

Page 14: Google App Engine e PHP

APP exemplo 1/2

○ Laravel (v4.2.x)

○ TODO APP (como sempre)

○ Serviços:

➢ Cloud-SQL (mysql)

➢ Log (syslog)

➢ Memcache

Page 15: Google App Engine e PHP

APP exemplo 2/2

Features:

○ Registro de usuários (nome, e-mail, senha)

○ Cadastro e exclusão de TODOs

Page 16: Google App Engine e PHP

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)

Page 17: Google App Engine e PHP

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

Page 18: Google App Engine e PHP

Deploy 1/3

application: laravel-demo-mcz

version: 1

handlers:

- url: /.*

script: public/index.php

env_variables:

APP_ENV: appengine

app.yml

Page 19: Google App Engine e PHP

Deploy 2/3

$ appcfg.py --oauth2 update ./

01:53 PM Application: laravel-demo-mcz; version: 101:53 PM Host: appengine.google.com01:53 PM Starting update of app: laravel-demo-mcz, version: 101: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 blobs01: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

Page 20: Google App Engine e PHP

Deploy 3/3

Page 23: Google App Engine e PHP

+GDG Maceio

Obrigado !