$30 off During Our Annual Pro Sale. View Details »

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 1
    REST in PaaS

    View Slide

  2. 4 de Agosto QCON São Paulo 2012 2
    Alexandre Gomes Gaigalas
    http://about.me/alganet

    View Slide

  3. 4 de Agosto QCON São Paulo 2012 3
    Cloud Computing

    View Slide

  4. 4 de Agosto QCON São Paulo 2012 4
    Cloud Computing
    ?

    View Slide

  5. 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)

    View Slide

  6. 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

    View Slide

  7. 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)

    View Slide

  8. 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.

    View Slide

  9. 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.

    View Slide

  10. 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.

    View Slide

  11. 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.

    View Slide

  12. 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.

    View Slide

  13. 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.

    View Slide

  14. 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.

    View Slide

  15. 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.

    View Slide

  16. 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.

    View Slide

  17. 4 de Agosto QCON São Paulo 2012 17
    Cloud Computing
    (de acordo com o mercado)

    View Slide

  18. 4 de Agosto QCON São Paulo 2012 18
    Cloud Computing
    (de acordo com o mercado)

    Virtualização

    View Slide

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

    Virtualização
    Máquinas Virtuais

    View Slide

  20. 4 de Agosto QCON São Paulo 2012 20
    Cloud Computing
    (de acordo com o mercado)

    Virtualização
    Máquinas Virtuais
    Qualquer OS

    View Slide

  21. 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

    View Slide

  22. 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

    View Slide

  23. 4 de Agosto QCON São Paulo 2012 23
    Cloud Computing
    (de acordo com o mercado)

    Virtualização

    Virtualização Automatizada

    View Slide

  24. 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

    View Slide

  25. 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

    View Slide

  26. 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...

    View Slide

  27. 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

    View Slide

  28. 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

    View Slide

  29. 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

    View Slide

  30. 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...

    View Slide

  31. 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

    View Slide

  32. 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

    View Slide

  33. 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

    View Slide

  34. 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...

    View Slide

  35. 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

    View Slide

  36. 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

    View Slide

  37. 4 de Agosto QCON São Paulo 2012 37
    REST

    APIs

    View Slide

  38. 4 de Agosto QCON São Paulo 2012 38
    REST não é só para APIs

    View Slide

  39. 4 de Agosto QCON São Paulo 2012 39
    REST

    Web

    View Slide

  40. 4 de Agosto QCON São Paulo 2012 40
    REST

    Web
    um estilo arquitetural muito bom para a...

    View Slide

  41. 4 de Agosto QCON São Paulo 2012 41
    REST

    Web
    um estilo arquitetural muito bom para a...

    View Slide

  42. 4 de Agosto QCON São Paulo 2012 42
    REST

    Web
    um estilo arquitetural muito bom para a...

    View Slide

  43. 4 de Agosto QCON São Paulo 2012 43
    Arquitetura de Software

    View Slide

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

    View Slide

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

    View Slide

  46. 4 de Agosto QCON São Paulo 2012 46
    Estilo Arquitetural
    Elementos + (Regrinhas * Arquitetura)
    ==
    Objetivos

    View Slide

  47. 4 de Agosto QCON São Paulo 2012 47
    Regrinhas do REST

    View Slide

  48. 4 de Agosto QCON São Paulo 2012 48
    Regrinhas do REST

    Cliente e servidor

    View Slide

  49. 4 de Agosto QCON São Paulo 2012 49
    Clientes
    Trabalho!
    Arquitetura Cliente-Servidor
    Um Servidorzão

    View Slide

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

    View Slide

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

    View Slide

  52. 4 de Agosto QCON São Paulo 2012 52
    Um Servidorzão
    Clientes
    Trabalho!
    Como a web não é

    View Slide

  53. 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

    View Slide

  54. 4 de Agosto QCON São Paulo 2012 54
    Regrinhas do REST

    Cliente e servidor

    Tudo pode ser cacheável

    View Slide

  55. 4 de Agosto QCON São Paulo 2012 55
    Um Servidor Qualquer
    Cliente
    Cache
    Cache

    View Slide

  56. 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

    View Slide

  57. 4 de Agosto QCON São Paulo 2012 57
    Um Servidor Qualquer
    Cliente
    Cache
    Cache em Camadas
    Cache

    View Slide

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

    View Slide

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

    View Slide

  60. 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

    View Slide

  61. 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.

    View Slide

  62. 4 de Agosto QCON São Paulo 2012 62
    “Não use Cookies HTTP”

    View Slide

  63. 4 de Agosto QCON São Paulo 2012 63
    “Não use Cookies HTTP”
    –Clarice Lispector

    View Slide

  64. 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

    View Slide

  65. 4 de Agosto QCON São Paulo 2012 65

    CSS

    Javascript
    Código sob demanda

    View Slide

  66. 4 de Agosto QCON São Paulo 2012 66

    CSS

    Javascript
    Comportamento
    Apresentação
    Código sob demanda

    View Slide

  67. 4 de Agosto QCON São Paulo 2012 67

    CSS

    Estilos

    Media queries

    ...

    Javascript
    Comportamento
    Apresentação
    Código sob demanda

    View Slide

  68. 4 de Agosto QCON São Paulo 2012 68

    CSS

    Estilos

    Media queries

    ...

    Javascript

    AJAX

    Feature Detection

    ...
    Comportamento
    Apresentação
    Código sob demanda

    View Slide

  69. 4 de Agosto QCON São Paulo 2012 69
    Desktop
    Mobile
    Responsivo pertence ao RESTful

    View Slide

  70. 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

    View Slide

  71. 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

    View Slide

  72. 4 de Agosto QCON São Paulo 2012 72
    Um Blog RESTful: Posts

    GET /posts

    HTTP/1.1 200 Ok



    Gatinha

    Merchan

    Curto Demais!!!

    View Slide

  73. 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

    rel=”related current item”>Gatinha

    All Posts

    View Slide

  74. 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”}
    ...
    ]}

    View Slide

  75. 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

    View Slide

  76. 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

    View Slide

  77. 4 de Agosto QCON São Paulo 2012 77
    Comentários RESTful

    GET /posts/php



    href=//coms.ex/discussion/blog.ex/posts/php
    rel=collection>Comentários



    [JS] GET //coms.ex/discussion/blog.ex/posts/php

    [JS] ●
    [JS]

    View Slide

  78. 4 de Agosto QCON São Paulo 2012 78
    Threads RESTful (heavy stuff!)

    GET /posts/php



    href=//thr.ex/discussion/blog.ex/posts/php
    rel=collection>Comentários



    [JS] ●
    [JS] GET //thr.ex/discussion/blog.ex/posts/php.js

    View Slide

  79. 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]


    [JS] GET //com.ex/discussion/blog/posts/php.js/dff

    [for rel=item in rel=collection]

    View Slide

  80. 4 de Agosto QCON São Paulo 2012 80

    View Slide

  81. 4 de Agosto QCON São Paulo 2012 81

    View Slide

  82. 4 de Agosto QCON São Paulo 2012 82

    View Slide

  83. 4 de Agosto QCON São Paulo 2012 83

    View Slide

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

    View Slide

  85. 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!

    View Slide

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

    View Slide

  87. 4 de Agosto QCON São Paulo 2012 87
    Posts
    Comentários
    Threads
    Autenticação
    Categorias
    Falha Crítica
    Somente Leitura
    Indisponível

    View Slide

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

    View Slide

  89. 4 de Agosto QCON São Paulo 2012 89
    Azure
    Pagoda Box
    Zend Cloud
    AppFog
    Amazon EC2
    Outras
    Configurações

    View Slide

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

    View Slide

  91. 4 de Agosto QCON São Paulo 2012 91
    90 dias
    30 dias
    30 dias
    30 dias
    60 dias
    Use os free tiers!

    View Slide

  92. 4 de Agosto QCON São Paulo 2012 92
    Posts
    Comentários
    Threads
    Autenticação
    Categorias
    Renderer



    View Slide

  93. 4 de Agosto QCON São Paulo 2012 93
    A Web Sempre Foi as a Service

    View Slide

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

    View Slide

  95. 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

    View Slide

  96. 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

    View Slide

  97. 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

    View Slide

  98. 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

    View Slide

  99. 4 de Agosto QCON São Paulo 2012 99
    Obrigado!

    View Slide

  100. 4 de Agosto QCON São Paulo 2012 100
    Perguntas?

    View Slide