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

PDF
Desenvolvendo PHP nas nuvens
PDF
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
PDF
Serverless Framework - Creating serverless applications
PPTX
Construindo APIs com Amazon API Gateway e AWS Lambda
PDF
Segurança e automação na Amazon: Lições das trincheiras
PDF
Thales de Sousa Minussi - TDC Innovation 2021 (ZUP - DEVOPS)
PPTX
Criando e conectando seu datacenter virtual
PPTX
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
Desenvolvendo PHP nas nuvens
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
Serverless Framework - Creating serverless applications
Construindo APIs com Amazon API Gateway e AWS Lambda
Segurança e automação na Amazon: Lições das trincheiras
Thales de Sousa Minussi - TDC Innovation 2021 (ZUP - DEVOPS)
Criando e conectando seu datacenter virtual
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET

Mais procurados (19)

PPTX
DevOps: desenvolvedores e sysadmins cooperando na prática
PPTX
Automatize seu processo de entrega de software com CI/CD na AWS
PDF
Webinar: Serviço de Distribuição de Conteúdo da AWS
PPTX
Construindo APIs com Amazon API Gateway e AWS Lambda
PDF
Flask e Docker - rumo a AWS!
PPTX
Introdução ao ASP .NET Web API
PPT
Recursos de Escalabilidade e Alta Disponibilidade Para Aplicações Web
PDF
Construindo aplicações Cloud Native em Go
PDF
Apresentação na PHP Conference Brasil 2012
PDF
Java Nuvem Appengine
PDF
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
PPTX
Android Firebase
PDF
Webinar: Criando e conectando seu Datacenter Virtual
PDF
Webinar: Introdução à Distribuição Contínua na AWS
PDF
TDC2016SP - Trilha Frameworks JavaScript
PPTX
Rodando a BlackFriday do seu eCommerce na nuvem
PDF
Jboss eap 6
PPTX
Bibliotecas de interface rica no jsf 2
ODP
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
DevOps: desenvolvedores e sysadmins cooperando na prática
Automatize seu processo de entrega de software com CI/CD na AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS
Construindo APIs com Amazon API Gateway e AWS Lambda
Flask e Docker - rumo a AWS!
Introdução ao ASP .NET Web API
Recursos de Escalabilidade e Alta Disponibilidade Para Aplicações Web
Construindo aplicações Cloud Native em Go
Apresentação na PHP Conference Brasil 2012
Java Nuvem Appengine
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
Android Firebase
Webinar: Criando e conectando seu Datacenter Virtual
Webinar: Introdução à Distribuição Contínua na AWS
TDC2016SP - Trilha Frameworks JavaScript
Rodando a BlackFriday do seu eCommerce na nuvem
Jboss eap 6
Bibliotecas de interface rica no jsf 2
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Anúncio

Destaque (20)

PDF
Trilhando o caminho da Web com PHP
PDF
MySQL sobreviverá à nuvem?
PPTX
PHPSP TestFest 2010
ODP
Files e File System PHP (Português)
PDF
MySQL no Windows: implementação eficiente de novas aplicações
PDF
Trilhando o caminho PHP [2.0]
PPTX
Apresentação scriptcase
PDF
Introdução a Frameworks
PDF
MySQL: o banco de dados open source mais popular do mundo
PDF
TDC SP 2015 - PHP7: melhor e mais rápido
PDF
Replicação MySQL e PHP
PPTX
Quero me tornar desenvolvedor php. Como me preparar para entrar e me manter n...
PDF
Exercício resolvido normalização
KEY
Orientação a Objetos com PHP
PPTX
Case Editora Abril
PPTX
Rumo à Certificação PHP
PDF
Recursos e Benefícios do MySQL
PPTX
DER - Diagrama de Entidade e Relacionamentos
PDF
PHP e MySQL para iniciantes
PDF
Banco de Dados - MySQL Basico
Trilhando o caminho da Web com PHP
MySQL sobreviverá à nuvem?
PHPSP TestFest 2010
Files e File System PHP (Português)
MySQL no Windows: implementação eficiente de novas aplicações
Trilhando o caminho PHP [2.0]
Apresentação scriptcase
Introdução a Frameworks
MySQL: o banco de dados open source mais popular do mundo
TDC SP 2015 - PHP7: melhor e mais rápido
Replicação MySQL e PHP
Quero me tornar desenvolvedor php. Como me preparar para entrar e me manter n...
Exercício resolvido normalização
Orientação a Objetos com PHP
Case Editora Abril
Rumo à Certificação PHP
Recursos e Benefícios do MySQL
DER - Diagrama de Entidade e Relacionamentos
PHP e MySQL para iniciantes
Banco de Dados - MySQL Basico
Anúncio

Semelhante a PHP no Google AppEngine (20)

KEY
Python 08
PDF
Oficina Python e Google App Engine
PPTX
Workshop react + adonis.js
PDF
Desenvolvimento Web com Simfony Framework.
PDF
Azure Bootcamp - Azure App Service e Function com Linux e NodeJS
PDF
Acessando banco de dados remoto com android
PDF
Backend
PPTX
PDF
Tornando as coisas mais simples com Azure Functions e Node.JS
PPTX
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
PDF
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
ODP
Construindo Aplicações PHP com Twelve-Factor App
PDF
Introdução ao Zend Framework 2
PPTX
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
PPTX
Integrando Skype em aplicações Delphi
PDF
Construindo APIs com Amazon API Gateway e AWS Lambda
PPTX
Melhores práticas de CI/CD na construção de aplicações modernas
PDF
Produtividade infinito e além com We.js
PDF
Desafio Rest API
PPTX
O que há de novo no Microsoft Azure IaaS
Python 08
Oficina Python e Google App Engine
Workshop react + adonis.js
Desenvolvimento Web com Simfony Framework.
Azure Bootcamp - Azure App Service e Function com Linux e NodeJS
Acessando banco de dados remoto com android
Backend
Tornando as coisas mais simples com Azure Functions e Node.JS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
Construindo Aplicações PHP com Twelve-Factor App
Introdução ao Zend Framework 2
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Integrando Skype em aplicações Delphi
Construindo APIs com Amazon API Gateway e AWS Lambda
Melhores práticas de CI/CD na construção de aplicações modernas
Produtividade infinito e além com We.js
Desafio Rest API
O que há de novo no Microsoft Azure IaaS

Último (19)

PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Processos na gestão de transportes, TM100 Col18
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Aula 18 - Manipulacao De Arquivos python
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Aula04-Academia Heri- Tecnologia Geral 2025
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
COBITxITIL-Entenda as diferença em uso governança TI
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Apple Pippin Uma breve introdução. - David Glotz
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Custos e liquidação no SAP Transportation Management, TM130 Col18
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx

PHP no Google AppEngine