PHP no Google AppEngine

57 %
43 %
Information about PHP no Google AppEngine
Technology

Published on February 5, 2014

Author: hussan1

Source: slideshare.net

Description

Palestra ministrada na Campus Party Brasil 2014.

Com a evolução do PHP no mercado coorporativo o Google não poderia deixar essa linguagem de fora de seu famoso serviço infraestrutura em nuvem, o Google AppEngine. Nesta palestra vamos mostrar o que é possível fazer utilizando PHP e os poderes do AppEngine.

Link para a palestra: https://www.youtube.com/watch?v=LvDnC93xWaI

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

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Sign in - Google Accounts

Sign in with your Google Account Enter your email. Find my account Sign in with a different account Create account
Read more

App Engine - Platform as a Service | Google Cloud Platform

Build Apps, Scale Automatically Google App Engine is a platform for building scalable web applications and mobile backends.
Read more

Google App Engine and PHP: Getting Started - SitePoint

It's been a while since Google announced PHP support on Google App Engine. This article series will take you through all the necessary steps in getting ...
Read more

Users PHP API Overview - Google Cloud Platform

googleappengine. Overview api. Overview app_identity. ... Users PHP API Overview ... but no password.
Read more

Re: [google-appengine] Google App Engine php and SMARTY

Re: [google-appengine] Google App Engine php and SMARTY Showing 1-3 of 3 messages
Read more

PHP Issues / No Errors in Logs - Google Groups

Has the PHP version of App Engine changed? Or some functionality been removed. All of a sudden this morning, a lot of my WordPress site has become non ...
Read more

Symfony2 auf der Google AppEngine für PHP – kann man ...

Vor einiger Zeit habe ich über die Installation einer Silex-Anwendung auf der Google AppEngine für PHP (GAE) geschrieben. Inzwischen bietet die Google ...
Read more

Issue 13 - googleappengine - PHP language support - Google ...

PHP language support: ... I think by no means Google should provide access to MySQL and other ... AppEngine is all about status quo. PHP support would be ...
Read more

Getting Started with PhpStorm as Google App Engine PHP IDE

Getting Started with PhpStorm as Google App Engine PHP IDE. ... Let's start with creating a simple Google App Engine PHP application ... No labels Powered ...
Read more