Slide 1

Slide 1 text

4 de Agosto QCON São Paulo 2012 1 REST in PaaS

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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)

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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)

Slide 8

Slide 8 text

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.

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

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.

Slide 11

Slide 11 text

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.

Slide 12

Slide 12 text

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.

Slide 13

Slide 13 text

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.

Slide 14

Slide 14 text

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.

Slide 15

Slide 15 text

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.

Slide 16

Slide 16 text

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.

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

4 de Agosto QCON São Paulo 2012 19 Cloud Computing (de acordo com o mercado) ● Virtualização Máquinas Virtuais

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

4 de Agosto QCON São Paulo 2012 23 Cloud Computing (de acordo com o mercado) ● Virtualização ● Virtualização Automatizada

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

4 de Agosto QCON São Paulo 2012 37 REST ● APIs

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

4 de Agosto QCON São Paulo 2012 39 REST ● Web

Slide 40

Slide 40 text

4 de Agosto QCON São Paulo 2012 40 REST ● Web um estilo arquitetural muito bom para a...

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

4 de Agosto QCON São Paulo 2012 48 Regrinhas do REST ● Cliente e servidor

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

4 de Agosto QCON São Paulo 2012 54 Regrinhas do REST ● Cliente e servidor ● Tudo pode ser cacheável

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

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.

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

4 de Agosto QCON São Paulo 2012 65 ● CSS ● Javascript Código sob demanda

Slide 66

Slide 66 text

4 de Agosto QCON São Paulo 2012 66 ● CSS ● Javascript Comportamento Apresentação Código sob demanda

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

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

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

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

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

4 de Agosto QCON São Paulo 2012 72 Um Blog RESTful: Posts ● GET /posts ● HTTP/1.1 200 Ok ● ● GatinhaMerchanCurto Demais!!!

Slide 73

Slide 73 text

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 ● GatinhaAll Posts

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

4 de Agosto QCON São Paulo 2012 77 Comentários RESTful ● GET /posts/php ● … ● Comentários ● ● [JS] GET //coms.ex/discussion/blog.ex/posts/php ● [JS]
  • Slide 78

    Slide 78 text

    4 de Agosto QCON São Paulo 2012 78 Threads RESTful (heavy stuff!) ● GET /posts/php ● … ● Comentários ● ● [JS]

    Slide 79

    Slide 79 text

    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] –

    Slide 80

    Slide 80 text

    4 de Agosto QCON São Paulo 2012 80

    Slide 81

    Slide 81 text

    4 de Agosto QCON São Paulo 2012 81

    Slide 82

    Slide 82 text

    4 de Agosto QCON São Paulo 2012 82

    Slide 83

    Slide 83 text

    4 de Agosto QCON São Paulo 2012 83

    Slide 84

    Slide 84 text

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

    Slide 85

    Slide 85 text

    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!

    Slide 86

    Slide 86 text

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

    Slide 87

    Slide 87 text

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

    Slide 88

    Slide 88 text

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

    Slide 89

    Slide 89 text

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

    Slide 90

    Slide 90 text

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

    Slide 91

    Slide 91 text

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

    Slide 92

    Slide 92 text

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

    Slide 93

    Slide 93 text

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

    Slide 94

    Slide 94 text

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

    Slide 95

    Slide 95 text

    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

    Slide 96

    Slide 96 text

    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

    Slide 97

    Slide 97 text

    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

    Slide 98

    Slide 98 text

    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

    Slide 99

    Slide 99 text

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

    Slide 100

    Slide 100 text

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