Upgrade to Pro — share decks privately, control downloads, hide ads and more …

REST in PaaS

REST in PaaS

Cloud computing e REST foram feitos um para o outro, e ambos são feitos pra web.

Alexandre Gaigalas

August 04, 2012
Tweet

More Decks by Alexandre Gaigalas

Other Decks in Programming

Transcript

  1. 4 de Agosto QCON São Paulo 2012 2 Alexandre Gomes

    Gaigalas http://about.me/alganet
  2. 4 de Agosto QCON São Paulo 2012 5 Cloud Computing

    • ...refere-se à utilização da memória, armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade. (Wikipedia)
  3. 4 de Agosto QCON São Paulo 2012 6 Cloud Computing

    • ...refere-se à utilização da memória, armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade. (Wikipedia) DOE! donate.wikimedia.org
  4. 4 de Agosto QCON São Paulo 2012 7 Cloud Computing

    • ...refere-se à utilização da memória, armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade. (Wikipedia)
  5. 4 de Agosto QCON São Paulo 2012 8 Cloud Computing

    • ...refere-se à utilização da memória, armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade • é um modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância.
  6. 4 de Agosto QCON São Paulo 2012 9 Web •

    ...refere-se à utilização da memória, armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade • é um modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância.
  7. 4 de Agosto QCON São Paulo 2012 10 Web •

    ...refere-se à utilização da memória, armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade • é um modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância.
  8. 4 de Agosto QCON São Paulo 2012 11 Web •

    ...refere-se à utilização da memória, armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade • é um modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância.
  9. 4 de Agosto QCON São Paulo 2012 12 Web •

    ...refere-se à utilização da memória, armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade • é um modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância.
  10. 4 de Agosto QCON São Paulo 2012 13 Web •

    ...refere-se à utilização da memória, armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade • é um modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância.
  11. 4 de Agosto QCON São Paulo 2012 14 Web •

    ...refere-se à utilização da memória, armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade • é um modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância.
  12. 4 de Agosto QCON São Paulo 2012 15 Web •

    ...refere-se à utilização da memória, armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade • é um modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância.
  13. 4 de Agosto QCON São Paulo 2012 16 Web •

    ...refere-se à utilização da memória, armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade • é um modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância.
  14. 4 de Agosto QCON São Paulo 2012 18 Cloud Computing

    (de acordo com o mercado) • Virtualização
  15. 4 de Agosto QCON São Paulo 2012 19 Cloud Computing

    (de acordo com o mercado) • Virtualização Máquinas Virtuais
  16. 4 de Agosto QCON São Paulo 2012 20 Cloud Computing

    (de acordo com o mercado) • Virtualização Máquinas Virtuais Qualquer OS
  17. 4 de Agosto QCON São Paulo 2012 21 Cloud Computing

    (de acordo com o mercado) • Virtualização Máquinas Virtuais Qualquer OS Configuráveis
  18. 4 de Agosto QCON São Paulo 2012 22 Cloud Computing

    (de acordo com o mercado) • Virtualização Máquinas Virtuais Qualquer OS Configuráveis Ligáveis/Desligáveis
  19. 4 de Agosto QCON São Paulo 2012 23 Cloud Computing

    (de acordo com o mercado) • Virtualização • Virtualização Automatizada
  20. 4 de Agosto QCON São Paulo 2012 24 Cloud Computing

    (de acordo com o mercado) • Virtualização • Virtualização Automatizada VBoxManage createvm --name "Ubuntu" --register
  21. 4 de Agosto QCON São Paulo 2012 25 Cloud Computing

    (de acordo com o mercado) • Virtualização • Virtualização Automatizada VBoxManage createvm --name "Ubuntu" --register VBoxManage modifyvm “Ubuntu” --plugcpu 2
  22. 4 de Agosto QCON São Paulo 2012 26 Cloud Computing

    (de acordo com o mercado) • Virtualização • Virtualização Automatizada VBoxManage createvm --name "Ubuntu" --register VBoxManage modifyvm “Ubuntu” --plugcpu 2 etc...
  23. 4 de Agosto QCON São Paulo 2012 27 Cloud Computing

    (de acordo com o mercado) • Virtualização • Virtualização Automatizada • Virtualização Automatizada como Serviço
  24. 4 de Agosto QCON São Paulo 2012 28 Cloud Computing

    (de acordo com o mercado) • Virtualização • Virtualização Automatizada • Virtualização Automatizada como Serviço api.linode.com/api_action=linode.create
  25. 4 de Agosto QCON São Paulo 2012 29 Cloud Computing

    (de acordo com o mercado) • Virtualização • Virtualização Automatizada • Virtualização Automatizada como Serviço api.linode.com/api_action=linode.create api.linode.com/api_action=linode.disk.create
  26. 4 de Agosto QCON São Paulo 2012 30 Cloud Computing

    (de acordo com o mercado) • Virtualização • Virtualização Automatizada • Virtualização Automatizada como Serviço api.linode.com/api_action=linode.create api.linode.com/api_action=linode.disk.create etc...
  27. 4 de Agosto QCON São Paulo 2012 31 Cloud Computing

    (de acordo com o mercado) • Virtualização • Virtualização Automatizada • Virtualização Automatizada como Serviço • Infra-estrutura Automatizada como Serviço
  28. 4 de Agosto QCON São Paulo 2012 32 Cloud Computing

    (de acordo com o mercado) • Virtualização • Virtualização Automatizada • Virtualização Automatizada como Serviço • Infra-estrutura Automatizada como Serviço management.core.windows.net/foo/services/networking/bar/gateway
  29. 4 de Agosto QCON São Paulo 2012 33 Cloud Computing

    (de acordo com o mercado) • Virtualização • Virtualização Automatizada • Virtualização Automatizada como Serviço • Infra-estrutura Automatizada como Serviço management.core.windows.net/foo/services/networking/bar/gateway api.linode.com/api_action=domain.create
  30. 4 de Agosto QCON São Paulo 2012 34 Cloud Computing

    (de acordo com o mercado) • Virtualização • Virtualização Automatizada • Virtualização Automatizada como Serviço • Infra-estrutura Automatizada como Serviço management.core.windows.net/foo/services/networking/bar/gateway api.linode.com/api_action=domain.create etc...
  31. 4 de Agosto QCON São Paulo 2012 35 Cloud Computing

    (de acordo com o mercado) • Virtualização • Virtualização Automatizada • Virtualização Automatizada como Serviço • Infra-estrutura Automatizada como Serviço • Plataforma Automatizada como Serviço
  32. 4 de Agosto QCON São Paulo 2012 36 Cloud Computing

    (de acordo com o mercado) • Virtualização • Virtualização Automatizada • Virtualização Automatizada como Serviço • Infra-estrutura Automatizada como Serviço • Plataforma Automatizada como Serviço php_version: 5.3.8 php_extensions: - mysql - gd - eaccelerator db1 name: posts type: mysql cache1: name: sessions type: memcached
  33. 4 de Agosto QCON São Paulo 2012 40 REST •

    Web um estilo arquitetural muito bom para a...
  34. 4 de Agosto QCON São Paulo 2012 41 REST •

    Web um estilo arquitetural muito bom para a...
  35. 4 de Agosto QCON São Paulo 2012 42 REST •

    Web um estilo arquitetural muito bom para a...
  36. 4 de Agosto QCON São Paulo 2012 44 Arquitetura de

    Software Elementos + Arquitetura == Objetivos
  37. 4 de Agosto QCON São Paulo 2012 45 Arquitetura de

    Software Elementos + Arquitetura == Objetivos Dados Conectores Componentes
  38. 4 de Agosto QCON São Paulo 2012 46 Estilo Arquitetural

    Elementos + (Regrinhas * Arquitetura) == Objetivos
  39. 4 de Agosto QCON São Paulo 2012 49 Clientes Trabalho!

    Arquitetura Cliente-Servidor Um Servidorzão
  40. 4 de Agosto QCON São Paulo 2012 51 Ah Gaigalas,

    isso aí é fácil!!! Ah Gaigalas, isso aí é fácil!!!
  41. 4 de Agosto QCON São Paulo 2012 52 Um Servidorzão

    Clientes Trabalho! Como a web não é
  42. 4 de Agosto QCON São Paulo 2012 53 Servidor Trabalho!

    Esse aqui sim parece a web! (não precisa olhar muito, é só ilustrativo) Cliente/Servidor Trabalho! Trabalho! Clientes Servidor Normal
  43. 4 de Agosto QCON São Paulo 2012 54 Regrinhas do

    REST • Cliente e servidor • Tudo pode ser cacheável
  44. 4 de Agosto QCON São Paulo 2012 56 Regrinhas do

    REST • Cliente e servidor • Tudo pode ser cacheável • Existem camadas entre o servidor e cliente
  45. 4 de Agosto QCON São Paulo 2012 57 Um Servidor

    Qualquer Cliente Cache Cache em Camadas Cache
  46. 4 de Agosto QCON São Paulo 2012 58 Arquitetura em

    Camadas Cache Auth Estatísticas
  47. 4 de Agosto QCON São Paulo 2012 59 Arquitetura em

    Camadas Cache Auth Estatísticas Etc
  48. 4 de Agosto QCON São Paulo 2012 60 Regrinhas do

    REST • Cliente e servidor • Tudo pode ser cacheável • Existem camadas entre o servidor e cliente • O servidor não conhece o estado do cliente
  49. 4 de Agosto QCON São Paulo 2012 61 *Eu realmente

    não consegui fazer um slide pra isso, então vou só falar sobre o assunto na presença ilustre de Lindsay Lohan.
  50. 4 de Agosto QCON São Paulo 2012 63 “Não use

    Cookies HTTP” –Clarice Lispector
  51. 4 de Agosto QCON São Paulo 2012 64 Regrinhas do

    REST • Cliente e servidor • Tudo pode ser cacheável • Existem camadas entre o servidor e cliente • O servidor não conhece o estado do cliente • O servidor pode enviar código sob demanda
  52. 4 de Agosto QCON São Paulo 2012 65 • CSS

    • Javascript Código sob demanda
  53. 4 de Agosto QCON São Paulo 2012 66 • CSS

    • Javascript Comportamento Apresentação Código sob demanda
  54. 4 de Agosto QCON São Paulo 2012 67 • CSS

    • Estilos • Media queries • ... • Javascript Comportamento Apresentação Código sob demanda
  55. 4 de Agosto QCON São Paulo 2012 68 • CSS

    • Estilos • Media queries • ... • Javascript • AJAX • Feature Detection • ... Comportamento Apresentação Código sob demanda
  56. 4 de Agosto QCON São Paulo 2012 70 One Rule

    to Rule Them All • Cliente e servidor • Tudo pode ser cacheável • Existem camadas entre o servidor e cliente • O servidor não conhece o estado do cliente • O servidor pode enviar código sob demanda • A Interface deve ser uniforme
  57. 4 de Agosto QCON São Paulo 2012 71 One Rule

    to Rule Them All • Cliente e servidor • Tudo pode ser cacheável • Existem camadas entre o servidor e cliente • O servidor não conhece o estado do cliente • O servidor pode enviar código sob demanda • A Interface deve ser uniforme
  58. 4 de Agosto QCON São Paulo 2012 72 Um Blog

    RESTful: Posts • GET /posts • HTTP/1.1 200 Ok • <link rel=collection href=/posts> • <a rel=item href=lindsay-lohan>Gatinha</a> • <a rel=item href=windows-azure>Merchan</a> • <a rel=item href=rest>Curto Demais!!!</a>
  59. 4 de Agosto QCON São Paulo 2012 73 Um Blog

    RESTful: Posts • POST /posts • HTTP/1.1 201 Created • Location: /posts/clarice-lispector • POST /posts • HTTP/1.1 409 Conflict • <a href=/posts/lindsay-lohan rel=”related current item”>Gatinha</a> • <a href=/posts rel=”related collection”>All Posts</a>
  60. 4 de Agosto QCON São Paulo 2012 74 Um Blog

    RESTful: Posts API • GET /posts • Accept application/json • HTTP/1.1 200 Ok • {“links”: [ {“rel”:”item”, “href”: “/lindsay-lohan”, “title”: “Gatinha”} ... ]}
  61. 4 de Agosto QCON São Paulo 2012 75 Autenticação/Autorização como

    Serviço • Twitter • Facebook • Google • LinkedIn • Foursquare • BrowserID (esse é bom!) • Seu OpenID Server =D
  62. 4 de Agosto QCON São Paulo 2012 76 There is

    an app API for that. • Comentários • Facebook • Disqus • Anti-Spam • Akismet • Tags • Delicious • Fotos • Flickr • Picasa • Busca • Google Custom Search • Compartilhamento • AddThis
  63. 4 de Agosto QCON São Paulo 2012 77 Comentários RESTful

    • GET /posts/php • … • <a href=//coms.ex/discussion/blog.ex/posts/php rel=collection>Comentários</a> • <script src=//coms.ex/index.js></script> • [JS] GET //coms.ex/discussion/blog.ex/posts/php • [JS] <form action=//coms.ex/discussion/... • [JS] <ul class=”comments collection”> <li class=”item”>
  64. 4 de Agosto QCON São Paulo 2012 78 Threads RESTful

    (heavy stuff!) • GET /posts/php • … • <a href=//thr.ex/discussion/blog.ex/posts/php rel=collection>Comentários</a> • <script src=//thr.ex/index.js></script> • [JS] <form action=//thr.ex/discussion/... • [JS] GET //thr.ex/discussion/blog.ex/posts/php.js
  65. 4 de Agosto QCON São Paulo 2012 79 Threads RESTful

    (heavy stuff!) • GET //thr.ex/discussion/blog.ex/posts/php.js • [“json”, “com”, “urls”, “das”, “sub-threads”] • [JS] GET //thr.ex/discussion/blog/posts/php.js/fd3 • [for rel=item in rel=collection] – <ul> <li class=subthread> • [JS] GET //com.ex/discussion/blog/posts/php.js/dff • [for rel=item in rel=collection] – <ul> <li class=comment>
  66. 4 de Agosto QCON São Paulo 2012 84 Posts Comentários

    Threads Autenticação Categorias Distribuição via Hipermídia Links
  67. 4 de Agosto QCON São Paulo 2012 85 Posts Comentários

    Threads Autenticação Categorias Falha Parcial 404/500/501 Somente Leitura Indisponível Ok!
  68. 4 de Agosto QCON São Paulo 2012 86 Posts Comentários

    Threads Autenticação Categorias Recuperação Via Hipermídia Indisponível Ok!
  69. 4 de Agosto QCON São Paulo 2012 87 Posts Comentários

    Threads Autenticação Categorias Falha Crítica Somente Leitura Indisponível
  70. 4 de Agosto QCON São Paulo 2012 88 Azure Azure

    Azure Azure Azure Uma Possível Configuração
  71. 4 de Agosto QCON São Paulo 2012 89 Azure Pagoda

    Box Zend Cloud AppFog Amazon EC2 Outras Configurações
  72. 4 de Agosto QCON São Paulo 2012 90 Blob Storage

    CouchDB MongoDB MySQL Redis A melhor tecnologia para cada serviço
  73. 4 de Agosto QCON São Paulo 2012 91 90 dias

    30 dias 30 dias 30 dias 60 dias Use os free tiers!
  74. 4 de Agosto QCON São Paulo 2012 92 Posts Comentários

    Threads Autenticação Categorias Renderer <noscript> <meta … refresh/> </noscript>
  75. 4 de Agosto QCON São Paulo 2012 94 Só automatizamos

    ela melhor A Web Sempre Foi as a Service
  76. 4 de Agosto QCON São Paulo 2012 95 Só automatizamos

    ela melhor IaaS: Infraestrutura como Serviço A Web Sempre Foi as a Service
  77. 4 de Agosto QCON São Paulo 2012 96 Só automatizamos

    ela melhor IaaS: Infraestrutura como Serviço PaaS: Plataforma como Serviço A Web Sempre Foi as a Service
  78. 4 de Agosto QCON São Paulo 2012 97 Só automatizamos

    ela melhor IaaS: Infraestrutura como Serviço PaaS: Plataforma como Serviço SaaS: Software como Serviço A Web Sempre Foi as a Service
  79. 4 de Agosto QCON São Paulo 2012 98 Só automatizamos

    ela melhor IaaS: Infraestrutura como Serviço PaaS: Plataforma como Serviço SaaS: Software como Serviço =) A Web Sempre Foi as a Service