PHP no Google AppEngine

1,130 views
1,001 views

Published on

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

Published in: Technology, Business
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,130
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
12
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

PHP no Google AppEngine

  1. 1. PHP no Google AppEngine
  2. 2. Hussani Oliveira
  3. 3. Quem é Hussani Oliveira?
  4. 4. Google AppEngine
  5. 5. O que é?
  6. 6. O que é? Hospedagem de aplicações web em cloud
  7. 7. O que é? Hospedagem de aplicações web em cloud Criado inicialmente para escalar aplicações Google
  8. 8. O que é? Hospedagem de aplicações web em cloud Criado inicialmente para escalar aplicações Google Serviço PaaS
  9. 9. Tipos de serviço Cloud
  10. 10. Tipos de serviço Cloud Infrastructure as a service
  11. 11. Tipos de serviço Cloud Infrastructure as a service Platform as a service
  12. 12. Tipos de serviço Cloud Infrastructure as a service Platform as a service Software as a service
  13. 13. Tipos de serviço Cloud Infrastructure as a service (IaaS) Platform as a service (PaaS) Software as a service (SaaS)
  14. 14. Abstração em nuvem Aplicação Base da aplicação Armazenamento Sistema Operacional Hardware Rede
  15. 15. Iaas Aplicação Base da aplicação Armazenamento Sistema Operacional Hardware Rede
  16. 16. SaaS Aplicação Base da aplicação Armazenamento Sistema Operacional Hardware Rede
  17. 17. SaaS Aplicação Base da aplicação Armazenamento Tudo em nuvem! Sistema Operacional Hardware Rede
  18. 18. PaaS Aplicação Base da aplicação Armazenamento Sistema Operacional Hardware Rede
  19. 19. PaaS no GAE Aplicação Base da aplicação Armazenamento Sistema Operacional Hardware Rede ?
  20. 20. PaaS no GAE Aplicação Base da aplicação Armazenamento Sistema Operacional Hardware Rede Cloud SQL, Cloud Storage, Cloud Datastore, BigQuery
  21. 21. PaaS no GAE Aplicação Base da aplicação Armazenamento Sistema Operacional Hardware Rede Python, Java, Go, PHP
  22. 22. Disponibilidade pública Lançado em abril de 2008
  23. 23. Disponibilidade pública Lançado em abril de 2008 Primeira versão estável em setembro de 2011
  24. 24. Linguagens Python
  25. 25. Linguagens Python Java
  26. 26. Linguagens Python Java Go
  27. 27. Linguagens Python Java Go PHP
  28. 28. Linguagens Python Java Go (experimental) PHP (preview)
  29. 29. Por que AppEngine?
  30. 30. Vantagens de PaaS
  31. 31. Vantagens de PaaS Poucas configurações
  32. 32. Vantagens de PaaS Poucas configurações Balanço de carga
  33. 33. Vantagens de PaaS Poucas configurações Balanço de carga Replicação
  34. 34. Vantagens de PaaS Poucas configurações Balanço de carga Replicação Infraestrutura
  35. 35. Vantagens do AppEngine
  36. 36. Vantagens do AppEngine Diversos serviços do ecossistema Google
  37. 37. Vantagens do AppEngine Diversos serviços do ecossistema Google Fácil desenvolvimento
  38. 38. Vantagens do AppEngine Diversos serviços do ecossistema Google Fácil desenvolvimento Fácil deploy
  39. 39. Vantagens do AppEngine Diversos serviços do ecossistema Google Fácil desenvolvimento Fácil deploy Infraestrutura Google
  40. 40. Serviços disponíveis
  41. 41. Serviços disponíveis Application Identity
  42. 42. Serviços disponíveis Application Identity Logs
  43. 43. Serviços disponíveis Application Identity Logs Mail
  44. 44. Serviços disponíveis Application Identity Logs Mail Memcache
  45. 45. Serviços disponíveis Application Identity Logs Mail Memcache Sockets
  46. 46. Serviços disponíveis Application Identity Logs Mail Memcache Sockets URL Fecth
  47. 47. Serviços disponíveis Application Identity Logs Mail Memcache Sockets URL Fecth Users
  48. 48. Serviços disponíveis Application Identity Logs Mail Memcache Sockets URL Fecth Users Tasks Queue
  49. 49. Kickstart
  50. 50. O SDK
  51. 51. Dependências Python 2.7 PHP 5.4+ MySQL 5.5
  52. 52. Instalando $ wget http://googleappengine.googlecode.com/files/google_a ppengine_1.8.9.zip $ unzip google_appengine_1.8.9.zip
  53. 53. Configurando pastas Criar uma pasta chamada “helloworld”
  54. 54. helloworld.php <?php echo “Hello, World!”;
  55. 55. app.yaml application: helloworld version: 1 runtime: php api_version: 1 handlers: - url: /.* script: helloworld.php
  56. 56. Iniciando o servidor local $ google_appengine/dev_appserver.py helloworld/ --php_executable_path <php-cgi>
  57. 57. 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
  58. 58. Publicando na web
  59. 59. Cadastrando a app https://cloud.google.com
  60. 60. Cadastrando a app
  61. 61. Cadastrando a app Mesmo nome que está no app.yaml
  62. 62. Realizando o upload $ ./google_appengine/appcfg.py update helloworld
  63. 63. Realizando o upload $ ./google_appengine/appcfg.py update helloworld Exemplo: https://asciinema.org/a/7444
  64. 64. Criando uma aplicação robusta
  65. 65. O projeto
  66. 66. O projeto Catálogo de cervejas
  67. 67. O projeto Catálogo de cervejas Utilizando frameworks PHP
  68. 68. O projeto Catálogo de cervejas Utilizando frameworks PHP Código fonte em: https://github.com/hussani/beer-api
  69. 69. Composer { "autoload": { "psr-0": { "BeerApi": "src/" } }, "require": { "respect/rest": "dev-master", "respect/config": "dev-master", "respect/relational": "dev-master" } }
  70. 70. Banco de dados
  71. 71. Cloud SQL
  72. 72. Cloud SQL MySQL 5.5
  73. 73. Cloud SQL MySQL 5.5 Auto Replicável
  74. 74. Criando uma instancia https://cloud.google.com Selecione o projeto Cloud SQL PAGO!
  75. 75. 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';
  76. 76. Importando banco de dados https://cloud.google.com Selecione o projeto Cloud Storage Crie um bucket Faça upload do banco de dados
  77. 77. Importando banco de dados Cloud SQL Selecione a instância Importar gs://<nome do bucket>/arquivo.sql
  78. 78. 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>
  79. 79. Definindo ambientes if (isset($_SERVER['SERVER_SOFTWARE']) && (substr_count( $_SERVER['SERVER_SOFTWARE'], 'Google App Engine') > 0) ) { return 'appengine'; } else { return 'dev'; }
  80. 80. Deploy com Git
  81. 81. Deploy com Git Cloud Console Cloud Development Push-to-Deploy Create new repo
  82. 82. Deploy com Git
  83. 83. Criar um repositório
  84. 84. Resgatar a senha
  85. 85. Resgatar a senha Senha no e-mail!
  86. 86. 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
  87. 87. Adicionando o remote e enviado arquivos Na pasta contendo o arquivo app.yaml executar: $ git remote add appengine <repo-url> $ git push appengine master
  88. 88. Revisão
  89. 89. Revisão Google AppEngine é uma hospedagem PaaS
  90. 90. Revisão Google AppEngine é uma hospedagem PaaS Provê diversos serviços de sua infra
  91. 91. Revisão Google AppEngine é uma hospedagem PaaS Provê diversos serviços de sua infra Por enquanto é grátis com PHP
  92. 92. Revisão Google AppEngine é uma hospedagem PaaS Provê diversos serviços de sua infra Por enquanto é grátis com PHP Possui serviços pagos
  93. 93. 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
  94. 94. 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
  95. 95. Perguntas ?
  96. 96. Referências https://developers.google.com/appengine https://cloud.google.com/ https://github.com/hussani/beer-api
  97. 97. Contato @hussanii slideshare.com/hussan1 github.com/hussani
  98. 98. Obrigado

×