Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare uma empresa Scribd logo
PHP no Google AppEngine
Hussani Oliveira
Quem é Hussani Oliveira?
Google AppEngine
O que é?
O que é?
Hospedagem de aplicações web
em cloud
O que é?
Hospedagem de aplicações web em
cloud
Criado inicialmente para escalar
aplicações Google
O que é?
Hospedagem de aplicações web em cloud
Criado inicialmente para escalar
aplicações Google
Serviço PaaS
Tipos de serviço Cloud
Tipos de serviço Cloud
Infrastructure as a service
Tipos de serviço Cloud
Infrastructure as a service
Platform as a service
Tipos de serviço Cloud
Infrastructure as a service
Platform as a service
Software as a service
Tipos de serviço Cloud
Infrastructure as a service
(IaaS)
Platform as a service (PaaS)
Software as a service (SaaS)
Abstração em nuvem
Aplicação
Base da aplicação
Armazenamento
Sistema Operacional
Hardware
Rede
Iaas
Aplicação
Base da aplicação
Armazenamento
Sistema Operacional
Hardware
Rede
SaaS
Aplicação
Base da aplicação
Armazenamento
Sistema Operacional
Hardware
Rede
SaaS
Aplicação
Base da aplicação
Armazenamento
Tudo em nuvem!
Sistema Operacional
Hardware
Rede
PaaS
Aplicação
Base da aplicação
Armazenamento
Sistema Operacional
Hardware
Rede
PaaS no GAE
Aplicação
Base da aplicação
Armazenamento
Sistema Operacional
Hardware
Rede

?
PaaS no GAE
Aplicação
Base da aplicação
Armazenamento
Sistema Operacional
Hardware
Rede

Cloud SQL, Cloud Storage,
Cloud Datastore, BigQuery
PaaS no GAE
Aplicação
Base da aplicação
Armazenamento
Sistema Operacional
Hardware
Rede

Python, Java, Go, PHP
Disponibilidade pública
Lançado em abril de 2008
Disponibilidade pública
Lançado em abril de 2008
Primeira versão estável em
setembro de 2011
Linguagens
Python
Linguagens
Python
Java
Linguagens
Python
Java
Go
Linguagens
Python
Java
Go
PHP
Linguagens
Python
Java
Go (experimental)
PHP (preview)
Por que AppEngine?
Vantagens de PaaS
Vantagens de PaaS
Poucas configurações
Vantagens de PaaS
Poucas configurações
Balanço de carga
Vantagens de PaaS
Poucas configurações
Balanço de carga
Replicação
Vantagens de PaaS
Poucas configurações
Balanço de carga
Replicação
Infraestrutura
Vantagens do AppEngine
Vantagens do AppEngine
Diversos serviços do
ecossistema Google
Vantagens do AppEngine
Diversos serviços do
ecossistema Google
Fácil desenvolvimento
Vantagens do AppEngine
Diversos serviços do
ecossistema Google
Fácil desenvolvimento
Fácil deploy
Vantagens do AppEngine
Diversos serviços do
ecossistema Google
Fácil desenvolvimento
Fácil deploy
Infraestrutura Google
Serviços disponíveis
Serviços disponíveis
Application Identity
Serviços disponíveis
Application Identity
Logs
Serviços disponíveis
Application Identity
Logs
Mail
Serviços disponíveis
Application Identity
Logs
Mail
Memcache
Serviços disponíveis
Application Identity
Logs
Mail
Memcache
Sockets
Serviços disponíveis
Application Identity
Logs
Mail
Memcache
Sockets
URL Fecth
Serviços disponíveis
Application Identity
Logs
Mail
Memcache
Sockets
URL Fecth
Users
Serviços disponíveis
Application Identity
Logs
Mail
Memcache
Sockets
URL Fecth
Users
Tasks Queue
Kickstart
O SDK
Dependências
Python 2.7
PHP 5.4+
MySQL 5.5
Instalando
$ wget
http://googleappengine.googlecode.com/files/google_a
ppengine_1.8.9.zip
$ unzip google_appengine_1.8.9.zip
Configurando pastas
Criar uma pasta chamada
“helloworld”
helloworld.php
<?php
echo “Hello, World!”;
app.yaml
application: helloworld
version: 1
runtime: php
api_version: 1
handlers:
- url: /.*
script: helloworld.php
Iniciando o servidor local
$ google_appengine/dev_appserver.py
helloworld/ --php_executable_path <php-cgi>
Iniciando o servidor local
$ google_appengine/dev_appserver.py
helloworld/ --php_executable_path <php-cgi>
Server rodando em http://localhost:8080
Console Server em http://localhost:8000
Publicando na web
Cadastrando a app
https://cloud.google.com
Cadastrando a app
Cadastrando a app

Mesmo nome que está no app.yaml
Realizando o upload
$ ./google_appengine/appcfg.py update
helloworld
Realizando o upload
$ ./google_appengine/appcfg.py update
helloworld
Exemplo: https://asciinema.org/a/7444
Criando uma aplicação
robusta
O projeto
O projeto
Catálogo de cervejas
O projeto
Catálogo de cervejas
Utilizando frameworks PHP
O projeto
Catálogo de cervejas
Utilizando frameworks PHP
Código fonte em: https://github.com/hussani/beer-api
Composer
{
"autoload": {
"psr-0": {
"BeerApi": "src/"
}
},
"require": {
"respect/rest": "dev-master",
"respect/config": "dev-master",
"respect/relational": "dev-master"
}
}
Banco de dados
Cloud SQL
Cloud SQL
MySQL 5.5
Cloud SQL
MySQL 5.5
Auto Replicável
Criando uma instancia
https://cloud.google.com
Selecione o projeto
Cloud SQL
PAGO!
Criando o banco de dados
Conecte como root e execute:
CREATE DATABASE IF NOT EXISTS openbeer_db;
CREATE USER 'openbeer_user'@'localhost'
IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON openbeer_db.* TO
'openbeer_user'@'localhost';
Importando banco de dados
https://cloud.google.com
Selecione o projeto
Cloud Storage
Crie um bucket
Faça upload do banco de dados
Importando banco de dados
Cloud SQL
Selecione a instância
Importar
gs://<nome do bucket>/arquivo.sql
Conectar no banco de dados
PDO
dsn = mysql:unix_socket=/cloudsql/
<nome da app>:<user>;dbname=<nome do banco>
user = <usuario do banco>
pass = <senha do banco>
Definindo ambientes
if (isset($_SERVER['SERVER_SOFTWARE']) &&
(substr_count(
$_SERVER['SERVER_SOFTWARE'], 'Google App Engine') > 0)
) {
return 'appengine';
} else {
return 'dev';
}
Deploy com Git
Deploy com Git
Cloud Console
Cloud Development
Push-to-Deploy
Create new repo
Deploy com Git
Criar um repositório
Resgatar a senha
Resgatar a senha

Senha no e-mail!
Configurar login
Criar um arquivo .netrc na pasta home (~/)
Inserir dentro do arquivo:
machine code.google.com login <email-address>
password <password>
Obs.: o campo <password> é a senha resgatada no
passo anterior
Adicionando o remote e
enviado arquivos
Na pasta contendo o arquivo app.yaml executar:

$ git remote add appengine <repo-url>
$ git push appengine master
Revisão
Revisão
Google AppEngine é uma hospedagem PaaS
Revisão
Google AppEngine é uma hospedagem PaaS
Provê diversos serviços de sua infra
Revisão
Google AppEngine é uma hospedagem PaaS
Provê diversos serviços de sua infra
Por enquanto é grátis com PHP
Revisão
Google AppEngine é uma hospedagem PaaS
Provê diversos serviços de sua infra
Por enquanto é grátis com PHP
Possui serviços pagos
Revisão
Google AppEngine é uma hospedagem PaaS
Provê diversos serviços de sua infra
Por enquanto é grátis com PHP
Possui serviços pagos
Permite deployment com Git
Revisão
Google AppEngine é uma hospedagem PaaS
Provê diversos serviços de sua infra
Por enquanto é grátis com PHP
Possui serviços pagos
Permite deployment com Git
Perguntas

?
Referências
https://developers.google.com/appengine
https://cloud.google.com/
https://github.com/hussani/beer-api
Contato
@hussanii
slideshare.com/hussan1
github.com/hussani
Obrigado

Mais conteúdo relacionado

PHP no Google AppEngine