SlideShare ist ein Scribd-Unternehmen logo
1 von 183
http://blogs.msdn.com/conde
Patterns para computação em nuvem
Este é o João
Patterns para computação em nuvem
João tem várias perguntas sobre computação em nuvem
Patterns para computação em nuvem
Quando mais ele lê, mais confuso ele fica
Patterns para computação em nuvem
“O que é computação em nuvem?”
Patterns para computação em nuvem
“Como eu posso usar computação em nuvem?”
Patterns para computação em nuvem
“O que a Microsoft está fazendo ?”
Patterns para computação em nuvem
Responder estas questões pode ser difícil
Responder estas questões pode ser difícil
Várias definições de vários
fornecedores
Pode ser difícil descrever como usar
computação em nuvem
Como manter atualizando com
tanta mudança
Objetivos desta sessão
Objetivos desta sessão
Explorar a definição de computação
em nuvem
5 Patterns para computação em
nuvem
Como implementar estes patterns
no Windows Azure
Definindo computação em nuvem
Definindo computação em nuvem
João tem ouvido vários “buzzwords”
Definindo computação em nuvem
Arquitetura Orientada a Serviço
Definindo computação em nuvem
Aplicações ricas de Internet
Definindo computação em nuvem
Software como serviço
Definindo computação em nuvem
Devices + Serviços
Definindo computação em nuvem
Algum destes é computação em nuvem ?
Definindo computação em nuvem
Estilos de arquitetura
Definindo computação em nuvem
Estes estilos podem trabalhar na
nuvem, mas eles não são
computação em nuvem
Definindo computação em nuvem
Onde as aplicações estão
hospedadas ?
Definindo computação em nuvem
Localmente
Hoster
Nuvem
Definindo computação em nuvem
Application runs
on-premises
Buy my own
hardware, and
manage my own
data center
Aplicação roda
localmente
• Monta seu
ambiente,
conectividade,
software, etc.
• Controle completo
e responsabilidade
• Investimento inicial
Definindo computação em nuvem
Application runs
on-premises
Buy my own
hardware, and
manage my own
data center
Application runs at a
hoster
Pay someone to
host my application
using hardware that
I specify
Aplicação roda
localmente
• Monta seu
ambiente,
conectividade,
software, etc.
• Controle completo
e responsabilidade
• Investimento inicial
Aplicação roda em
hoster
• Aluga máquinas,
conectividade,
software
• Menos controle,
mas também
menos
responsabilidade
• Paga o valor fixo
mensalmente
Definindo computação em nuvem
Application runs
on-premises
Buy my own
hardware, and
manage my own
data center
Application runs at a
hoster
Pay someone to
host my application
using hardware that
I specify
Application runs using
cloud platform
Pay someone for a
pool of computing
resources that can
be applied to a set
of applications
Aplicação roda
localmente
• Monta seu
ambiente,
conectividade,
software, etc.
• Controle completo
e responsabilidade
• Investimento inicial
Aplicação roda em
hoster
• Aluga máquinas,
conectividade,
software
• Menos controle,
mas também
menos
responsabilidade
• Paga o valor fixo
mensalmente
Aplicação roda na
nuvem
• Compartilhado,
ambiente com
vários outros
• Pool de
recursos, abstrae
detalhes de
hardware
• Pago pelo uso
Definindo computação em nuvem
Nuvem “Variações”
Definindo computação em nuvem
Nuvem pública
Definindo computação em nuvem
Pool de recursos de computação
oferecido por um fornecedor, através
do modelo “pago pelo uso”
Definindo computação em nuvem
Nuvem Privada
Definindo computação em nuvem
Pool de recursos e gerenciado por você
no seu datacenter
Definindo computação em nuvem
Pool de recursos de computação
hospedados em datacenter sem
compartilhamento
Definindo computação em nuvem
“Então, o que a Microsoft está fazendo?”
Definindo computação em nuvem
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
Definindo computação em nuvem
3 x Conceitos Críticos
Definindo computação em nuvem
Tipos de máquinas virtuais
Web Role
Worker Role
Virtual Machine
Definindo computação em nuvem
Armazenamento
Tabela, Blob, Relacional
Definindo computação em nuvem
Mensageria
Filas
Patterns for Cloud Computing
Usando a nuvem para Escalar
“Então nuvem não é ideal para as aplicações que
precisam escalar dinamicamente?”
Patterns for Cloud Computing
Por exemplo, aplicações Sociais
Patterns for Cloud Computing
“Como funciona?”
Patterns for Cloud Computing
Vamos começar com um
quadro branco para o João…
Patterns for Cloud Computing
…e quando digo quadro branco, é
realmente um quadro !
#1 – Usando a nuvem para escalar
Web TierBrowser
Requisições
B/L Tier Databa
se
Respostas
“Uau! Meu grande
site!”
#1 – Usando a nuvem para escalar
Web Tier B/L Tier Databa
se
Browser
Browser
Browser
Browser
Browser
“Server Busy”
#1 – Usando a nuvem para escalar
Web Tier B/L Tier Databa
se
Browser
“Timeout”
Browser
Browser
Browser
Browser
Como o João faz normalmente ?
#1 – Usando a nuvem para escalar
Web
Tier
B/L Tier Databa
se
Browser
Browser
Browser
Browser
Browser
Web
Tier
Web
Tier
N
L
B
Como o João faz normalmente ?
#1 – Usando a nuvem para escalar
Databa
se
Browser
Browser
Browser
Browser
Browser
Web Tier
B/L
Tier
B/L
Tier
B/L
Tier
N
L
B
Como o João faz normalmente ?
#1 – Usando a nuvem para escalar
Databa
se
Browser
Browser
Browser
Browser
Browser
B/L
Tier
B/L
Tier
B/L
Tier
N
L
B
Web
Tier
Web
Tier
Web
Tier
N
L
B
Como o João faz normalmente ?
#1 – Usando a nuvem para escalar
Browser
Browser
Browser
Browser
Browser
B/L
Tier
B/L
Tier
B/L
Tier
N
L
B
Databa
se
p1 p2 p3
Web
Tier
Web
Tier
Web
Tier
N
L
B
Como o João faz normalmente ?
Sempre tem consequências...
#1 – Usando a nuvem para escalar
Browser
Browser
Browser
Browser
Browser
B/L
Tier
B/L
Tier
B/L
Tier
N
L
B
Databa
se
p1 p2 p3
Web
Tier
Web
Tier
Web
Tier
N
L
B
“Isto toma muito tempo e
dinheiro!”
Como o João faz normalmente ?
#1 – Usando a nuvem para escalar
Browser
B/L
Tier
B/L
Tier
B/L
Tier
N
L
B
Databa
se
p1 p2 p3
Web
Tier
Web
Tier
Web
Tier
N
L
B
“Ficou muito
complexo…”
“Isto toma muito tempo e
dinheiro!”
Como o João faz normalmente ?
#1 – Usando a nuvem para escalar
Usage
Jan Apr Jul Oct
Pico de carga no
datacenter
Tempo
de
inutiliza
ção
Como o Windows Azure pode ajudar ?
#1 – Usando a nuvem para escalar
Web RoleBrowser
Requisições
Worker
Role
Azure
Storag
eResposta
“Uau! Meu grande
site!”
#1 – Usando a nuvem para escalar
Web Role
Worker
Role
Azure
Storag
e
Browser
“Server Busy”
Browser
Browser
Browser
Browser
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
#1 – Usando a nuvem para escalar
Web
Role
Worker
Role
Azure
Storag
e
Browser
Browser
Browser
Browser
Browser
Web
Role
Web
Role
N
L
B
É
transparent
e para você
#1 – Usando a nuvem para escalar
Web
Role
Azure
Storag
e
Browser
Browser
Browser
Browser
Browser
Web
Role
Web
Role
N
L
B
Worke
r Role
Worke
r Role
Worke
r Role
N
L
B
#1 – Usando a nuvem para escalar
Web
Role
Azure
Storag
e
Browser
Browser
Browser
Browser
Browser
Web
Role
Web
Role
N
L
B
Worke
r Role
Worke
r Role
Worke
r Role
N
L
B
p1 p2 p3
OK, alterar é fácil...
…mas há mais alguma coisa que preciso
saber ?
#1 – Usando a nuvem para escalar
Web
Role
Azure
Storag
e
Browser
Browser
Browser
Browser
Browser
Web
Role
Web
Role
N
L
B
Worke
r Role
Worke
r Role
Worke
r Role
N
L
B
p1 p2 p3
#1 – Usando a nuvem para escalar
Web Role
Worker
Role
Manter uma integração tão
próxima não é
recomendável
#1 – Usando a nuvem para escalar
Web Role
Worker
Role
Fila
Re
q
1. Coloca na fila 3. Retirar da fila
4. Processar
2. Responde para UI
#1 – Usando a nuvem para escalar
Web Role
Worker
Role
Fila
Re
q
4. Processar
Table
5. Adicionar o resultado
em uma tabela
6. Buscar os resultados
na tabela
Quantas web role ou worker role você
precisa ?
#1 – Usando a nuvem para escalar
Web
Role
Worker
Role
Azure
Storag
e
Browser
Browser
Browser
Browser
Browser
Web
Role
Web
Role
N
L
B
Coletar IIS
logs / MOM
pack / Right
Scale
Testando
#1 – Usando a nuvem para escalar
Web Role
Worker
Role
Fila
Re
q
#1 – Usando a nuvem para escalar
Web Role
Fila
Re
q
Web Role
Web Role
Re
q
Re
q
Monitora o
tamanho da fila
e a expectativa
de crescimento
Web Role
Web Role
Web Role
Worker
Role
Worker
Role
Worker
Role
Worker
Role
Worker
Role
Worker
Role
Patterns para computação em nuvem
Takeaways
Entender a comunicação entre as
roles
Estabeleça a sua estratégia de
escalar para cima/baixo
Usando o portal para escalar
Patterns para computação em nuvem
Usando a nuvem para soluções
Multi Tenancy
“Eu tenho uma idéia que precisa de várias
máquinas virtuais…”
Patterns para computação em nuvem
“…mas tem que atender a vários
clientes ao mesmo tempo”
Patterns para computação em nuvem
“Sem criar versões diferentes !”
Patterns para computação em nuvem
#2 – Usando a nuvem para Multi
Tenancy
Web TierBrowser B/L Tier Databa
se
Cliente #1
Como o João faz normalmente ?
#2 – Usando a nuvem para Multi
Tenancy
Web TierBrowser B/L Tier Databa
se
Cliente #2
Web TierBrowser B/L Tier Databa
se
Cliente #1
Web TierBrowser B/L Tier Databa
se
Cliente #3
Como o João faz normalmente ?
Pode ficar caro rapidamente
#2 – Usando a nuvem para Multi
Tenancy
Web TierBrowser B/L Tier Databa
se
Browser
Browser
Cliente #1
Cliente #2
Cliente #3
Customização de esquemas
Customização de interface
Customização de esquemas
Customização de interface
3 opções de dados para um ambiente
multi tenant
#2 – Usando a nuvem para Multi
Tenancy
Web TierBrowser B/L Tier Databa
se
Browser
Browser
Cliente #1
Cliente #2
Cliente #3
Opção 1: Todo mundo usa o mesmo
Database/Schema
Fixed
Schema
Pros: Abordagem facilitada, fácil
manutenção/upgrade.
Con: Sem customizações. Recuperando os
dados de cada inquilino.
#2 – Usando a nuvem para Multi
Tenancy
Web TierBrowser B/L Tier
Databa
se
Browser
Browser
Cliente #1
Cliente #2
Cliente #3
Opção 2: Cada cliente tem um seu próprio
Database/Schema
Cliente #1
Databa
se
Databa
se
Cliente #2
Cliente #3
Pros: Flexível. Recuperação do inquilino é
fácil. Alto isolamento.
Cons: Atualização complexa de esquemas.
#2 – Usando a nuvem para Multi
Tenancy
Web TierBrowser B/L Tier Databa
se
Browser
Browser
Customer
#1
Customer
#2
Customer
#3
Opção 3: Database/Schema fixo, with
customizações
Fixed Schema
with
Customizations
Pros: Clientes podem adicionar seus
próprios campos
Cons: Não um esquema padronizado.
Recuperação do inquilino é díficil.
#2 – Usando a nuvem para Multi
Tenancy
TenantID
Tenant
int
TenantNamenvarchar
EmployeeId
Employee
int
FirstName nvarchar
LastName nvarchar
CustomizationID
Customization
int
Value nvarchar
TypeID
Type
int
Name nvarchar
CLRType nvarchar
1
*
*
1
*
1
*
*
#2 – Usando a nuvem para Multi
Tenancy
TenantID
Tenant
1
TenantNameUK Branch
EmployeeId
Employee
1
FirstName Gordon
LastName Brown
CustomizationID
Customization
1
Value SW1A 2AA
TypeID
Type
1
Name PostalCode
CLRType string
1
*
*
1
*
1
*
*
#2 – Usando a nuvem para Multi
Tenancy
TenantID
Tenant
2
TenantNameUS Branch
EmployeeId
Employee
2
FirstName Barack
LastName Obama
CustomizationID
Customization
2
Value 20500
TypeID
Type
2
Name ZipCode
CLRType string
1
*
*
1
*
1
*
*
#2 – Usando a nuvem para Multi
Tenancy
TenantID
Tenant
2
TenantNameUS Branch
EmployeeId
Employee
2
FirstName Barack
LastName Obama
CustomizationID
Customization
2
Value 20500
TypeID
Type
2
Name ZipCode
CLRType string
1
*
*
1
*
1
*
*
Esquema fixo
Aplica para
todos os
inquilinos
Customizável
Básico de
inquilino -
inquilino
Pode ser
ambos
Customizações de esquemas
Customizações de interface
#2 – Usando a nuvem para Multi
Tenancy
Web TierBrowser B/L Tier Databa
se
Browser
Browser
Cliente #1
Cliente #2
Cliente #3
Tratamento de URL
Como resolver a inteface ?
Controlador único para cada inquilino
http://employeedata.cloudapp.net/Conto
so
(ContosoController)
http://employeedata.cloudapp.net/Fabri
kam
(FabrikamController)
Controller compartilhado para todo os
inquilinos
http://employeedata.cloudapp.net/Conto
so
(EmployeeController)
http://employeedata.cloudapp.net/Fabri
kam
(EmployeeController)
Controlador compartilhado para
inquilinos (com máscara de URL)
http://hr.contoso.co.uk
(http://employeedata.cloudapp.net/empl
oyees)
http://hr.fabrikam.com
(http://employeedata.cloudapp.net/empl
oyees)
#2 – Usando a nuvem para Multi
Tenancy
Web TierBrowser B/L Tier Databa
se
Browser
Browser
Cliente #1
Cliente #2
Cliente #3
http://hr.contoso.co.
uk
http://hr.fabrikam.c
om
http://employeedata.cloudap
p.net
#2 – Usando a nuvem para Multi
Tenancy
Web TierBrowser B/L Tier Databa
se
Browser
Browser
Cliente #1
Cliente #2
Cliente #3
http://hr.contoso.co.uk -> CNAME
(employeedata.cloudapp.net)
http://hr.fabrikam.com -> CNAME
(employeedata.cloudapp.net)
http://employeedata.cloudap
p.net
#2 – Usando a nuvem para Multi
Tenancy
Web TierBrowser B/L Tier Databa
se
Browser
Browser
Cliente #1
Cliente #2
Cliente #3
http://hr.contoso.co.uk -> CNAME
(employeedata.cloudapp.net)
http://hr.fabrikam.com -> CNAME
(employeedata.cloudapp.net)
Usando uma roteamento
http://employeedata.cloudap
p.net
Patterns para computação em nuvem
Takeaways
Considere dados e interface
Lembre-se de outras questões
(identidade)
Sempre considere uma arquitetura
para multi tenancy
Patterns para computação em nuvem
Usando a nuvem para Computação
João tem visto que o Azure
pode usar múltiplos nós
Patterns para computação em nuvem
“Posso usar estes nós em paralelo ?”
Patterns para computação em nuvem
“Eu tenho múltiplos
arquivos de Tera para analisar…”
Patterns para computação em nuvem
#3 – Usando a nuvem para
computação
MasterClient
Data
Worker
Worker
Worker
Data
Data
Data
#3 – Usando a nuvem para
computação
MasterClient
Resul
t
Worker
Worker
Worker
Resul
t
Resul
t
Resul
t
Usando o termo “MapReduce”*
* 2004 OSDI paper by Jeff Dean and Sanjay Ghemawat (Goo
#3 – Usando a nuvem para
computação
MasterClient
Data
Worker
Worker
Worker
“Map”
M<k,v
>
M<k,v
>
M<k.v
>
M<“the quick
brown”.”e”>M<“fox jumps
over”.”e”>M<“the lazy dog”.”e”>
Quando ”e”’s em
“The quick brown fox jumps over the
lazy dog”?
#3 – Usando a nuvem para
computação
MasterClient
Resul
t
Worker
Worker
Worker
“Reduc
e”
L<k,v>
L<k,v>
L<k,v>
L<”e”,”1”>
L<”e”,”1”>
L<”e”,”1”>
3 x ”e”s
encontrad
os
É um termo muito usado…
#3 – Usando a nuvem para
computação
Google
20pb de dados analizados diariamente com
MapReduce
Yahoo!
10k+ cores, 4pb de dados em MapReduce
Facebook
2500+ cores, 1pb de dados em MapReduce
Frameworks
#3 – Usando a nuvem para
computação
Apache Hadoop
Open Source Java “Inspired by MapReduce”
(Core, HDFS, many more)
Cloudera
Consulting, training, distribution of Hadoop
Hadoop on Windows Azure
Hadoop implementation on Windows Azure
Como o João faz normalmente ?
#3 – Usando a nuvem para
computação
MasterClient
Data
Worker
Worker
Worker
Data
Data
DataClient ApplicationJob/Task Scheduler
Remote Service
Como o João faz normalmente ?
Como fazer isto no Windows Azure ?
#3 – Usando a nuvem para
computação
Web RoleClient
Data
Worker
Worker
Worker
Data
Data
Data
Client ApplicationJob/Task Scheduler
Remote Service
Queue
Re
q
Table
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
Patterns para computação em nuvem
Takeaways
Aprenda os frameworks existentes
(Hadoop)
Veja Hadoop on Windows Azure
MapReduce modelo orientado para
BigData
Patterns para computação em nuvem
Usando a nuvem para
Armazenamento
“A nuvem permite armazenar infinitamente meus
dados, correto ?”
Patterns para computação em nuvem
Várias dores de cabeça em
gerenciamento de dados
Patterns para computação em nuvem
“Isto me parece um pouco exagerado…”
Patterns para computação em nuvem
Como o João faz normalmente ?
#4 – Usando a computação em nuvem
para armazenamento
File
Server
Client
RPC/NFS
File
Stor
e
Como o João faz normalmente ?
#4 – Usando a computação em nuvem
para armazenamento
DB ServerClient RDBM
S
TDS (Tabular Data Stream)Data
Como o João faz normalmente ?
#4 – Usando a computação em nuvem
para armazenamento
Web
Server
Browser Datab
ase
HTTP POST
Data
Como o João faz normalmente ?
#4 – Usando a computação em nuvem
para armazenamento
Server Data
Afinidade entre o servidor
físico e o dado
Eu te
amo !
Eu
també
m te
amo !
#4 – Usando a computação em nuvem
para armazenamento
Server Data
Eu te
amo !
Eu
també
m te
amo !
Sintomas:
Qual RAID que deve utilizar ?
Processo de backup é complexo
Droga! Eu estou a 95% da capacidade – precisamos
de mais disco
Como o Azure pode ajudar ?
Quebrar a afinidade entre o hardware e
data
#4 – Usando a computação em nuvem
para armazenamento
Client Cloud
Storage
Pattern “Code Near”
A camada de acesso de dados fica perto
do cliente, a conexão fica distante
DA
L
Cenários offline
DAL -> Conexão via REST
#4 – Usando a computação em nuvem
para armazenamento
Client Cloud
Storage
Pattern “Code Far”
A camada de acesso fica distante do
cliente
DA
L
Baseado em cenários, não funciona offline.
Excelente para criar camada de aplicações
Web Tier
Blobs, Tabelas, Relacional
Blobs, Tabelas, Relacional
#4 – Usando a computação em nuvem
para armazenamento
Client
Azure
Blob
Storage
REST API
PutBlob
PUT
http://account.blob.core.windows./net/containername/bl
obname
Blob
Container
http://account.blob.core.windows.net/containername/blobn
PutBlob = 64Mb MAX
MetaData = 8Kb per Blob
#4 – Usando a computação em nuvem
para armazenamento
Client
Azure
Blob
Storage
REST API
GetBlob
GET
http://account.blob.core.windows./net/containername/bl
obname
Blob
Container
http://account.blob.core.windows.net/containername/blobn
#4 – Usando a computação em nuvem
para armazenamento
Client
Azure
Blob
Storage
REST API
GetBlob
GET
http://account.blob.core.windows./net/containername/bl
obname
Range: bytes=329300 - 730000
Blob
Container
http://account.blob.core.windows.net/containername/blobn
#4 – Usando a computação em nuvem
para armazenamento
Client
Azure
Blob
Storage
REST API
PutBlock(blobname,
blockid, data)PutBlockList(blobname, blockid1, …,
blockidN)
Blob
Container
http://account.blob.core.windows.net/containername/blobn
PutBlock = 4Mb MAX to a maximum of 50Gb
BlockId = 64 bytes
Blobs, Tabelas, Relacional
#4 – Usando a computação em nuvem
para armazenamento
Worker
Role
Azure
Table
Storage
Each Table:
PartitionKey (e.g. DocumentName) to
ensure scalability
RowKey (e.g. version number)
[fields] for data
http://account.table.core.windows.n
et
REST:
GET
http://account.table.core.windows.net/Customer?$filter=%20PartitionKey%
20eq%20value
LINQ:
var customers = from o in context.CreateQuery<customer>(“Customer”)
where o.PartitionKey == value select o;
Blobs, Tabelas, Relacional
#4 – Usando a computação em nuvem
para armazenamento
DB ServerClient RDBM
S
TDS
Data
Assim eu como eu faço normalmente…
#4 – Usando a computação em nuvem
para armazenamento
DB ServerClient RDBM
S
TDS
Data
Eu gostaria de fazer assim na nuvem
#4 – Usando a computação em nuvem
para armazenamento
SQL
Database
Client RDBM
S
TDS
Data
Assim é como funciona no Azure
#4 – Usando a computação em nuvem
para armazenamento
SQL
Database
Browser RDBM
S
TDS
Web Role
HTTP
#4 – Usando a computação em nuvem
para armazenamento
SQL
Database
Browser RDBM
S
TDS
Web Role
HTTP
Worker
Role
Queue
Migração!
#4 – Usando a computação em nuvem
para armazenamento
Browser RDBM
S
Web Tier
HTTP
Bus. Logic
“The Data Center”
SQL
Server
TDS
#4 – Usando a computação em nuvem
para armazenamento
SQL
Database
Browser RDBM
S
TDS
Web Role
HTTP
Worker
Role
Queue
“Na nuvem com PaaS
#4 – Usando a computação em nuvem
para armazenamento
SQL
Server
Browser RDBM
S
TDS
Web Role
HTTP
Worker
Role
Queue
“Na nuvem com IaaS”
Patterns para computação em nuvem
Takeaways
Entender os modelos de near code e
far code
SQL Database ou seu banco, você
escolhe
Entender o modelo de preços
Patterns para computação em nuvem
Usando a nuvem para Comunicações
João precisa que suas aplicações falem com
outras aplicações em vários locais
Patterns para computação em nuvem
“É sempre chato fazer isto, abrir firewall, WCF?
SOA? SOAP ?...não quero isto”
Patterns for Cloud Computing
“A nuvem pode me ajudar ?”
Patterns for Cloud Computing
Como o João faz normalmente ?
#5 – Usando a nuvem para
comunicações
Client Server
Company 1 Company 2
Telco provided WAN
FTP
Client
FTP
Server
#5 – Usando a nuvem para
comunicações
Client Server
Company 1 Company 2
Telco provided WAN
FTP
Client
FTP
Server
Internet
#5 – Usando a nuvem para
comunicações
Client Server
Company 1 Company 2
Telco provided WAN
Browser
Internet
Extranet
Site
DMZ
Como as filas do Azure pode ajudar?
#5 – Usando a nuvem para
comunicações
Client
REST
Azure Queue
http://app.queue.core.windows.net/
#5 – Usando a nuvem para
comunicações
Client
REST
Azure Queue
http://app.queue.core.windows.net/
Client
Company 1
Company 2
#5 – Usando a nuvem para
comunicações
Client
REST
Azure Queue
http://app.queue.core.windows.net/
Client
Company 1
Company 2
#5 – Usando a nuvem para
comunicações
Client
REST
Azure Queue
http://app.queue.core.windows.net/
Client
Company 1
Company 2
Master Key
Master Key
#5 – Usando a nuvem para
comunicações
Client
REST
Azure Queue
http://app.queue.core.windows.net/
Client
Company 1
Company 2
Web Role
#5 – Usando a nuvem para
comunicações
Client
REST
Azure Queue
http://app.queue.core.windows.net/
Client
Company 1
Company 2
Web Role
Firewall
Firewall
Proxy
?
#5 – Usando a nuvem para
comunicações
Client
REST
Azure Queue
http://app.queue.core.windows.net/
Client
Company 1
Company 2
Web Role
Firewall
Firewall
NAT?
65.55.33.204
192.168.14.100
#5 – Usando a nuvem para
comunicações
Client
REST
Azure Queue
http://app.queue.core.windows.net/
Client
Company 1
Company 2
Web Role
Firewall
Firewall
65.55.33.204
192.168.14.100
OK, so I’ll do a
HTTP poll every
minute
#5 – Usando a nuvem para
comunicações
Client
REST
Azure Queue
http://app.queue.core.windows.net/
Client
Company 1
Company 2
Web Role
Firewall
Firewall
65.55.33.204
192.168.14.100
…and how about other
protocols other than
HTTP?
Como o Azure Service Bus pode ajudar ?
#5 – Usando a nuvem para
comunicações
Client
Outbound bi-directional socket
Kept alive in background
.NET
Service Bus
sb://.../myqueue
Client
Company 1
Company 2
Firewall
#5 – Usando a nuvem para
comunicações
Client
Outbound bi-directional socket
Kept alive in background
.NET
Service Bus
sb://.../myqueue
Client
Company 1
Company 2
Firewall
Firewall
Outbound one-way socket
Message routed
accordingly
#5 – Usando a nuvem para
comunicações
My Laptop
Outbound bi-directional socket
Kept alive in background
.NET
Service Bus
sb://.../myqueue
Home PC
This Conference
My Home
Firewall
Firewall
Outbound one-way socket
Message routed
accordingly
192.168.14.193
SQL
Express
Port 1433
Localhost:1000
Application
Patterns for Cloud Computing
Takeaways
Firewalls/NATS sempre podem
representar obstáculos
Cenários com Service Bus podem
ser interessantes
Escolha o modelo de integração
Próximos passos
Claro que João é um brincadeira…
Próximos passos
Próximos passos
Entenda o que cada fornecedor
realmente entrega de nuvem
Explore os 5 patterns hoje
Entenda os serviços disponíveis do
Azure e como usá-los
http://blogs.msdn.com/conde

Weitere ähnliche Inhalte

Andere mochten auch

Cloud Day III - Visão Geral do Windows Azure
Cloud Day III - Visão Geral do Windows AzureCloud Day III - Visão Geral do Windows Azure
Cloud Day III - Visão Geral do Windows AzureLuciano Condé
 
Visão Geral sobre a plataforma de aplicações do Windows Phone 7
Visão Geral sobre a plataforma de aplicações do Windows Phone 7Visão Geral sobre a plataforma de aplicações do Windows Phone 7
Visão Geral sobre a plataforma de aplicações do Windows Phone 7Luciano Condé
 
Sharepoint360 - Hospedando Sharepoint no Windows Azure
Sharepoint360 - Hospedando Sharepoint no Windows AzureSharepoint360 - Hospedando Sharepoint no Windows Azure
Sharepoint360 - Hospedando Sharepoint no Windows AzureLuciano Condé
 
Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight  Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight Luciano Condé
 
Azure Summit 2013 - Keynote - Visão Geral do Windows Azure
Azure Summit 2013 - Keynote - Visão Geral do Windows AzureAzure Summit 2013 - Keynote - Visão Geral do Windows Azure
Azure Summit 2013 - Keynote - Visão Geral do Windows AzureLuciano Condé
 
Demonstração de como usar o Windows Azure Drive
Demonstração de como usar o Windows Azure DriveDemonstração de como usar o Windows Azure Drive
Demonstração de como usar o Windows Azure DriveLuciano Condé
 
Cloud Day III - Programas para parceiros com Windows Azure
Cloud Day III - Programas para parceiros com Windows AzureCloud Day III - Programas para parceiros com Windows Azure
Cloud Day III - Programas para parceiros com Windows AzureLuciano Condé
 
ALM Summit 2013 - Implantação contínua com Windows Azure
ALM Summit 2013 - Implantação contínua com Windows AzureALM Summit 2013 - Implantação contínua com Windows Azure
ALM Summit 2013 - Implantação contínua com Windows AzureLuciano Condé
 
TDC 2012 - Visão Geral do Windows Azure
TDC 2012 - Visão Geral do Windows AzureTDC 2012 - Visão Geral do Windows Azure
TDC 2012 - Visão Geral do Windows AzureLuciano Condé
 
Desenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureDesenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureLuciano Condé
 
TDC 2012 Florianópolis - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Visão Geral do Windows AzureTDC 2012 Florianópolis - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Visão Geral do Windows AzureLuciano Condé
 

Andere mochten auch (11)

Cloud Day III - Visão Geral do Windows Azure
Cloud Day III - Visão Geral do Windows AzureCloud Day III - Visão Geral do Windows Azure
Cloud Day III - Visão Geral do Windows Azure
 
Visão Geral sobre a plataforma de aplicações do Windows Phone 7
Visão Geral sobre a plataforma de aplicações do Windows Phone 7Visão Geral sobre a plataforma de aplicações do Windows Phone 7
Visão Geral sobre a plataforma de aplicações do Windows Phone 7
 
Sharepoint360 - Hospedando Sharepoint no Windows Azure
Sharepoint360 - Hospedando Sharepoint no Windows AzureSharepoint360 - Hospedando Sharepoint no Windows Azure
Sharepoint360 - Hospedando Sharepoint no Windows Azure
 
Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight  Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight
 
Azure Summit 2013 - Keynote - Visão Geral do Windows Azure
Azure Summit 2013 - Keynote - Visão Geral do Windows AzureAzure Summit 2013 - Keynote - Visão Geral do Windows Azure
Azure Summit 2013 - Keynote - Visão Geral do Windows Azure
 
Demonstração de como usar o Windows Azure Drive
Demonstração de como usar o Windows Azure DriveDemonstração de como usar o Windows Azure Drive
Demonstração de como usar o Windows Azure Drive
 
Cloud Day III - Programas para parceiros com Windows Azure
Cloud Day III - Programas para parceiros com Windows AzureCloud Day III - Programas para parceiros com Windows Azure
Cloud Day III - Programas para parceiros com Windows Azure
 
ALM Summit 2013 - Implantação contínua com Windows Azure
ALM Summit 2013 - Implantação contínua com Windows AzureALM Summit 2013 - Implantação contínua com Windows Azure
ALM Summit 2013 - Implantação contínua com Windows Azure
 
TDC 2012 - Visão Geral do Windows Azure
TDC 2012 - Visão Geral do Windows AzureTDC 2012 - Visão Geral do Windows Azure
TDC 2012 - Visão Geral do Windows Azure
 
Desenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureDesenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL Azure
 
TDC 2012 Florianópolis - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Visão Geral do Windows AzureTDC 2012 Florianópolis - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Visão Geral do Windows Azure
 

Ähnlich wie TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure

Software plus Services
Software plus ServicesSoftware plus Services
Software plus ServicesRichard Chaves
 
Introdução a arquitetura Serverless na AWS
Introdução a arquitetura Serverless na AWSIntrodução a arquitetura Serverless na AWS
Introdução a arquitetura Serverless na AWSTimóteo Nascimento
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDextra Sistemas / Etec Itu
 
Integração com webservices usando MVC e mágica
Integração com webservices usando MVC e mágicaIntegração com webservices usando MVC e mágica
Integração com webservices usando MVC e mágicaLeocadio Tiné
 
Building Scalable Applications
Building Scalable ApplicationsBuilding Scalable Applications
Building Scalable Applicationsracx
 
Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsRafael Soares
 
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TI
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TIVIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TI
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TILuciano Condé
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Renato Groff
 
Plataforma Windows Azure (Cloud Computing)
Plataforma Windows Azure (Cloud Computing)Plataforma Windows Azure (Cloud Computing)
Plataforma Windows Azure (Cloud Computing)Marcelo Paiva
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureGiovanni Bassi
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Renato Groff
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Renato Groff
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Mario Guedes
 
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018Renato Groff
 

Ähnlich wie TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure (20)

Software plus Services
Software plus ServicesSoftware plus Services
Software plus Services
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Introdução a arquitetura Serverless na AWS
Introdução a arquitetura Serverless na AWSIntrodução a arquitetura Serverless na AWS
Introdução a arquitetura Serverless na AWS
 
Computacao-em-nuvem-slides.pdf
Computacao-em-nuvem-slides.pdfComputacao-em-nuvem-slides.pdf
Computacao-em-nuvem-slides.pdf
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
 
Integração com webservices usando MVC e mágica
Integração com webservices usando MVC e mágicaIntegração com webservices usando MVC e mágica
Integração com webservices usando MVC e mágica
 
Meetup fujitsu
Meetup fujitsuMeetup fujitsu
Meetup fujitsu
 
Building Scalable Applications
Building Scalable ApplicationsBuilding Scalable Applications
Building Scalable Applications
 
Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre Nodejs
 
Software gratuito
Software gratuitoSoftware gratuito
Software gratuito
 
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TI
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TIVIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TI
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TI
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
 
Plataforma Windows Azure (Cloud Computing)
Plataforma Windows Azure (Cloud Computing)Plataforma Windows Azure (Cloud Computing)
Plataforma Windows Azure (Cloud Computing)
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows Azure
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
 
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
 

Mehr von Luciano Condé

STB Tour - Cresça os seus negócios com Windows azure
STB Tour - Cresça os seus negócios com Windows azureSTB Tour - Cresça os seus negócios com Windows azure
STB Tour - Cresça os seus negócios com Windows azureLuciano Condé
 
Cloud Day III - Modelos de licenciamento para parceiros com Windows Azure
Cloud Day III - Modelos de licenciamento para parceiros com Windows AzureCloud Day III - Modelos de licenciamento para parceiros com Windows Azure
Cloud Day III - Modelos de licenciamento para parceiros com Windows AzureLuciano Condé
 
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows AzureTDC 2012 Florianópolis - Keynote - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows AzureLuciano Condé
 
Sucesu - Visão Geral do Windows Azure e a Era do CloudOS
Sucesu - Visão Geral do Windows Azure e a Era do CloudOSSucesu - Visão Geral do Windows Azure e a Era do CloudOS
Sucesu - Visão Geral do Windows Azure e a Era do CloudOSLuciano Condé
 
S+S Day - Segurança na nuvem
S+S Day - Segurança na nuvemS+S Day - Segurança na nuvem
S+S Day - Segurança na nuvemLuciano Condé
 
Overview do Windows Phone 7 Series
Overview do Windows Phone 7 SeriesOverview do Windows Phone 7 Series
Overview do Windows Phone 7 SeriesLuciano Condé
 
Show do Varejo Bematech - Entendendo Computação em Nuvem
Show do Varejo Bematech - Entendendo Computação em NuvemShow do Varejo Bematech - Entendendo Computação em Nuvem
Show do Varejo Bematech - Entendendo Computação em NuvemLuciano Condé
 
Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4Luciano Condé
 
Novidades sobre o Silverlight 4
Novidades sobre o Silverlight 4Novidades sobre o Silverlight 4
Novidades sobre o Silverlight 4Luciano Condé
 
Innovation Days 2009 - Inovação e Software+Services
Innovation Days 2009 - Inovação e Software+ServicesInnovation Days 2009 - Inovação e Software+Services
Innovation Days 2009 - Inovação e Software+ServicesLuciano Condé
 
Monitoring e Logging no Windows Azure - S+S Day 09
Monitoring e Logging no Windows Azure - S+S Day 09Monitoring e Logging no Windows Azure - S+S Day 09
Monitoring e Logging no Windows Azure - S+S Day 09Luciano Condé
 

Mehr von Luciano Condé (11)

STB Tour - Cresça os seus negócios com Windows azure
STB Tour - Cresça os seus negócios com Windows azureSTB Tour - Cresça os seus negócios com Windows azure
STB Tour - Cresça os seus negócios com Windows azure
 
Cloud Day III - Modelos de licenciamento para parceiros com Windows Azure
Cloud Day III - Modelos de licenciamento para parceiros com Windows AzureCloud Day III - Modelos de licenciamento para parceiros com Windows Azure
Cloud Day III - Modelos de licenciamento para parceiros com Windows Azure
 
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows AzureTDC 2012 Florianópolis - Keynote - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows Azure
 
Sucesu - Visão Geral do Windows Azure e a Era do CloudOS
Sucesu - Visão Geral do Windows Azure e a Era do CloudOSSucesu - Visão Geral do Windows Azure e a Era do CloudOS
Sucesu - Visão Geral do Windows Azure e a Era do CloudOS
 
S+S Day - Segurança na nuvem
S+S Day - Segurança na nuvemS+S Day - Segurança na nuvem
S+S Day - Segurança na nuvem
 
Overview do Windows Phone 7 Series
Overview do Windows Phone 7 SeriesOverview do Windows Phone 7 Series
Overview do Windows Phone 7 Series
 
Show do Varejo Bematech - Entendendo Computação em Nuvem
Show do Varejo Bematech - Entendendo Computação em NuvemShow do Varejo Bematech - Entendendo Computação em Nuvem
Show do Varejo Bematech - Entendendo Computação em Nuvem
 
Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4
 
Novidades sobre o Silverlight 4
Novidades sobre o Silverlight 4Novidades sobre o Silverlight 4
Novidades sobre o Silverlight 4
 
Innovation Days 2009 - Inovação e Software+Services
Innovation Days 2009 - Inovação e Software+ServicesInnovation Days 2009 - Inovação e Software+Services
Innovation Days 2009 - Inovação e Software+Services
 
Monitoring e Logging no Windows Azure - S+S Day 09
Monitoring e Logging no Windows Azure - S+S Day 09Monitoring e Logging no Windows Azure - S+S Day 09
Monitoring e Logging no Windows Azure - S+S Day 09
 

TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure

  • 3. Este é o João Patterns para computação em nuvem
  • 4. João tem várias perguntas sobre computação em nuvem Patterns para computação em nuvem
  • 5. Quando mais ele lê, mais confuso ele fica Patterns para computação em nuvem
  • 6. “O que é computação em nuvem?” Patterns para computação em nuvem
  • 7. “Como eu posso usar computação em nuvem?” Patterns para computação em nuvem
  • 8. “O que a Microsoft está fazendo ?” Patterns para computação em nuvem
  • 9. Responder estas questões pode ser difícil
  • 10. Responder estas questões pode ser difícil Várias definições de vários fornecedores Pode ser difícil descrever como usar computação em nuvem Como manter atualizando com tanta mudança
  • 12. Objetivos desta sessão Explorar a definição de computação em nuvem 5 Patterns para computação em nuvem Como implementar estes patterns no Windows Azure
  • 14. Definindo computação em nuvem João tem ouvido vários “buzzwords”
  • 15. Definindo computação em nuvem Arquitetura Orientada a Serviço
  • 16. Definindo computação em nuvem Aplicações ricas de Internet
  • 17. Definindo computação em nuvem Software como serviço
  • 18. Definindo computação em nuvem Devices + Serviços
  • 19. Definindo computação em nuvem Algum destes é computação em nuvem ?
  • 20. Definindo computação em nuvem Estilos de arquitetura
  • 21. Definindo computação em nuvem Estes estilos podem trabalhar na nuvem, mas eles não são computação em nuvem
  • 22. Definindo computação em nuvem Onde as aplicações estão hospedadas ?
  • 23. Definindo computação em nuvem Localmente Hoster Nuvem
  • 24. Definindo computação em nuvem Application runs on-premises Buy my own hardware, and manage my own data center Aplicação roda localmente • Monta seu ambiente, conectividade, software, etc. • Controle completo e responsabilidade • Investimento inicial
  • 25. Definindo computação em nuvem Application runs on-premises Buy my own hardware, and manage my own data center Application runs at a hoster Pay someone to host my application using hardware that I specify Aplicação roda localmente • Monta seu ambiente, conectividade, software, etc. • Controle completo e responsabilidade • Investimento inicial Aplicação roda em hoster • Aluga máquinas, conectividade, software • Menos controle, mas também menos responsabilidade • Paga o valor fixo mensalmente
  • 26. Definindo computação em nuvem Application runs on-premises Buy my own hardware, and manage my own data center Application runs at a hoster Pay someone to host my application using hardware that I specify Application runs using cloud platform Pay someone for a pool of computing resources that can be applied to a set of applications Aplicação roda localmente • Monta seu ambiente, conectividade, software, etc. • Controle completo e responsabilidade • Investimento inicial Aplicação roda em hoster • Aluga máquinas, conectividade, software • Menos controle, mas também menos responsabilidade • Paga o valor fixo mensalmente Aplicação roda na nuvem • Compartilhado, ambiente com vários outros • Pool de recursos, abstrae detalhes de hardware • Pago pelo uso
  • 27. Definindo computação em nuvem Nuvem “Variações”
  • 28. Definindo computação em nuvem Nuvem pública
  • 29. Definindo computação em nuvem Pool de recursos de computação oferecido por um fornecedor, através do modelo “pago pelo uso”
  • 30. Definindo computação em nuvem Nuvem Privada
  • 31. Definindo computação em nuvem Pool de recursos e gerenciado por você no seu datacenter
  • 32. Definindo computação em nuvem Pool de recursos de computação hospedados em datacenter sem compartilhamento
  • 33. Definindo computação em nuvem “Então, o que a Microsoft está fazendo?”
  • 36. Definindo computação em nuvem 3 x Conceitos Críticos
  • 37. Definindo computação em nuvem Tipos de máquinas virtuais Web Role Worker Role Virtual Machine
  • 38. Definindo computação em nuvem Armazenamento Tabela, Blob, Relacional
  • 39. Definindo computação em nuvem Mensageria Filas
  • 40. Patterns for Cloud Computing Usando a nuvem para Escalar
  • 41. “Então nuvem não é ideal para as aplicações que precisam escalar dinamicamente?” Patterns for Cloud Computing
  • 42. Por exemplo, aplicações Sociais Patterns for Cloud Computing
  • 44. Vamos começar com um quadro branco para o João… Patterns for Cloud Computing
  • 45. …e quando digo quadro branco, é realmente um quadro !
  • 46. #1 – Usando a nuvem para escalar Web TierBrowser Requisições B/L Tier Databa se Respostas “Uau! Meu grande site!”
  • 47. #1 – Usando a nuvem para escalar Web Tier B/L Tier Databa se Browser Browser Browser Browser Browser “Server Busy”
  • 48. #1 – Usando a nuvem para escalar Web Tier B/L Tier Databa se Browser “Timeout” Browser Browser Browser Browser
  • 49. Como o João faz normalmente ?
  • 50. #1 – Usando a nuvem para escalar Web Tier B/L Tier Databa se Browser Browser Browser Browser Browser Web Tier Web Tier N L B Como o João faz normalmente ?
  • 51. #1 – Usando a nuvem para escalar Databa se Browser Browser Browser Browser Browser Web Tier B/L Tier B/L Tier B/L Tier N L B Como o João faz normalmente ?
  • 52. #1 – Usando a nuvem para escalar Databa se Browser Browser Browser Browser Browser B/L Tier B/L Tier B/L Tier N L B Web Tier Web Tier Web Tier N L B Como o João faz normalmente ?
  • 53. #1 – Usando a nuvem para escalar Browser Browser Browser Browser Browser B/L Tier B/L Tier B/L Tier N L B Databa se p1 p2 p3 Web Tier Web Tier Web Tier N L B Como o João faz normalmente ?
  • 55. #1 – Usando a nuvem para escalar Browser Browser Browser Browser Browser B/L Tier B/L Tier B/L Tier N L B Databa se p1 p2 p3 Web Tier Web Tier Web Tier N L B “Isto toma muito tempo e dinheiro!” Como o João faz normalmente ?
  • 56. #1 – Usando a nuvem para escalar Browser B/L Tier B/L Tier B/L Tier N L B Databa se p1 p2 p3 Web Tier Web Tier Web Tier N L B “Ficou muito complexo…” “Isto toma muito tempo e dinheiro!” Como o João faz normalmente ?
  • 57. #1 – Usando a nuvem para escalar Usage Jan Apr Jul Oct Pico de carga no datacenter Tempo de inutiliza ção
  • 58. Como o Windows Azure pode ajudar ?
  • 59. #1 – Usando a nuvem para escalar Web RoleBrowser Requisições Worker Role Azure Storag eResposta “Uau! Meu grande site!”
  • 60. #1 – Usando a nuvem para escalar Web Role Worker Role Azure Storag e Browser “Server Busy” Browser Browser Browser Browser
  • 62. #1 – Usando a nuvem para escalar Web Role Worker Role Azure Storag e Browser Browser Browser Browser Browser Web Role Web Role N L B É transparent e para você
  • 63. #1 – Usando a nuvem para escalar Web Role Azure Storag e Browser Browser Browser Browser Browser Web Role Web Role N L B Worke r Role Worke r Role Worke r Role N L B
  • 64. #1 – Usando a nuvem para escalar Web Role Azure Storag e Browser Browser Browser Browser Browser Web Role Web Role N L B Worke r Role Worke r Role Worke r Role N L B p1 p2 p3
  • 65. OK, alterar é fácil... …mas há mais alguma coisa que preciso saber ?
  • 66. #1 – Usando a nuvem para escalar Web Role Azure Storag e Browser Browser Browser Browser Browser Web Role Web Role N L B Worke r Role Worke r Role Worke r Role N L B p1 p2 p3
  • 67. #1 – Usando a nuvem para escalar Web Role Worker Role Manter uma integração tão próxima não é recomendável
  • 68. #1 – Usando a nuvem para escalar Web Role Worker Role Fila Re q 1. Coloca na fila 3. Retirar da fila 4. Processar 2. Responde para UI
  • 69. #1 – Usando a nuvem para escalar Web Role Worker Role Fila Re q 4. Processar Table 5. Adicionar o resultado em uma tabela 6. Buscar os resultados na tabela
  • 70. Quantas web role ou worker role você precisa ?
  • 71. #1 – Usando a nuvem para escalar Web Role Worker Role Azure Storag e Browser Browser Browser Browser Browser Web Role Web Role N L B Coletar IIS logs / MOM pack / Right Scale Testando
  • 72. #1 – Usando a nuvem para escalar Web Role Worker Role Fila Re q
  • 73. #1 – Usando a nuvem para escalar Web Role Fila Re q Web Role Web Role Re q Re q Monitora o tamanho da fila e a expectativa de crescimento Web Role Web Role Web Role Worker Role Worker Role Worker Role Worker Role Worker Role Worker Role
  • 74. Patterns para computação em nuvem Takeaways Entender a comunicação entre as roles Estabeleça a sua estratégia de escalar para cima/baixo Usando o portal para escalar
  • 75. Patterns para computação em nuvem Usando a nuvem para soluções Multi Tenancy
  • 76. “Eu tenho uma idéia que precisa de várias máquinas virtuais…” Patterns para computação em nuvem
  • 77. “…mas tem que atender a vários clientes ao mesmo tempo” Patterns para computação em nuvem
  • 78. “Sem criar versões diferentes !” Patterns para computação em nuvem
  • 79. #2 – Usando a nuvem para Multi Tenancy Web TierBrowser B/L Tier Databa se Cliente #1
  • 80. Como o João faz normalmente ?
  • 81. #2 – Usando a nuvem para Multi Tenancy Web TierBrowser B/L Tier Databa se Cliente #2 Web TierBrowser B/L Tier Databa se Cliente #1 Web TierBrowser B/L Tier Databa se Cliente #3 Como o João faz normalmente ?
  • 82. Pode ficar caro rapidamente
  • 83. #2 – Usando a nuvem para Multi Tenancy Web TierBrowser B/L Tier Databa se Browser Browser Cliente #1 Cliente #2 Cliente #3
  • 86. 3 opções de dados para um ambiente multi tenant
  • 87. #2 – Usando a nuvem para Multi Tenancy Web TierBrowser B/L Tier Databa se Browser Browser Cliente #1 Cliente #2 Cliente #3 Opção 1: Todo mundo usa o mesmo Database/Schema Fixed Schema Pros: Abordagem facilitada, fácil manutenção/upgrade. Con: Sem customizações. Recuperando os dados de cada inquilino.
  • 88. #2 – Usando a nuvem para Multi Tenancy Web TierBrowser B/L Tier Databa se Browser Browser Cliente #1 Cliente #2 Cliente #3 Opção 2: Cada cliente tem um seu próprio Database/Schema Cliente #1 Databa se Databa se Cliente #2 Cliente #3 Pros: Flexível. Recuperação do inquilino é fácil. Alto isolamento. Cons: Atualização complexa de esquemas.
  • 89. #2 – Usando a nuvem para Multi Tenancy Web TierBrowser B/L Tier Databa se Browser Browser Customer #1 Customer #2 Customer #3 Opção 3: Database/Schema fixo, with customizações Fixed Schema with Customizations Pros: Clientes podem adicionar seus próprios campos Cons: Não um esquema padronizado. Recuperação do inquilino é díficil.
  • 90. #2 – Usando a nuvem para Multi Tenancy TenantID Tenant int TenantNamenvarchar EmployeeId Employee int FirstName nvarchar LastName nvarchar CustomizationID Customization int Value nvarchar TypeID Type int Name nvarchar CLRType nvarchar 1 * * 1 * 1 * *
  • 91. #2 – Usando a nuvem para Multi Tenancy TenantID Tenant 1 TenantNameUK Branch EmployeeId Employee 1 FirstName Gordon LastName Brown CustomizationID Customization 1 Value SW1A 2AA TypeID Type 1 Name PostalCode CLRType string 1 * * 1 * 1 * *
  • 92. #2 – Usando a nuvem para Multi Tenancy TenantID Tenant 2 TenantNameUS Branch EmployeeId Employee 2 FirstName Barack LastName Obama CustomizationID Customization 2 Value 20500 TypeID Type 2 Name ZipCode CLRType string 1 * * 1 * 1 * *
  • 93. #2 – Usando a nuvem para Multi Tenancy TenantID Tenant 2 TenantNameUS Branch EmployeeId Employee 2 FirstName Barack LastName Obama CustomizationID Customization 2 Value 20500 TypeID Type 2 Name ZipCode CLRType string 1 * * 1 * 1 * * Esquema fixo Aplica para todos os inquilinos Customizável Básico de inquilino - inquilino Pode ser ambos
  • 95. #2 – Usando a nuvem para Multi Tenancy Web TierBrowser B/L Tier Databa se Browser Browser Cliente #1 Cliente #2 Cliente #3
  • 97. Como resolver a inteface ?
  • 98. Controlador único para cada inquilino http://employeedata.cloudapp.net/Conto so (ContosoController) http://employeedata.cloudapp.net/Fabri kam (FabrikamController)
  • 99. Controller compartilhado para todo os inquilinos http://employeedata.cloudapp.net/Conto so (EmployeeController) http://employeedata.cloudapp.net/Fabri kam (EmployeeController)
  • 100. Controlador compartilhado para inquilinos (com máscara de URL) http://hr.contoso.co.uk (http://employeedata.cloudapp.net/empl oyees) http://hr.fabrikam.com (http://employeedata.cloudapp.net/empl oyees)
  • 101. #2 – Usando a nuvem para Multi Tenancy Web TierBrowser B/L Tier Databa se Browser Browser Cliente #1 Cliente #2 Cliente #3 http://hr.contoso.co. uk http://hr.fabrikam.c om http://employeedata.cloudap p.net
  • 102. #2 – Usando a nuvem para Multi Tenancy Web TierBrowser B/L Tier Databa se Browser Browser Cliente #1 Cliente #2 Cliente #3 http://hr.contoso.co.uk -> CNAME (employeedata.cloudapp.net) http://hr.fabrikam.com -> CNAME (employeedata.cloudapp.net) http://employeedata.cloudap p.net
  • 103. #2 – Usando a nuvem para Multi Tenancy Web TierBrowser B/L Tier Databa se Browser Browser Cliente #1 Cliente #2 Cliente #3 http://hr.contoso.co.uk -> CNAME (employeedata.cloudapp.net) http://hr.fabrikam.com -> CNAME (employeedata.cloudapp.net) Usando uma roteamento http://employeedata.cloudap p.net
  • 104. Patterns para computação em nuvem Takeaways Considere dados e interface Lembre-se de outras questões (identidade) Sempre considere uma arquitetura para multi tenancy
  • 105. Patterns para computação em nuvem Usando a nuvem para Computação
  • 106. João tem visto que o Azure pode usar múltiplos nós Patterns para computação em nuvem
  • 107. “Posso usar estes nós em paralelo ?” Patterns para computação em nuvem
  • 108. “Eu tenho múltiplos arquivos de Tera para analisar…” Patterns para computação em nuvem
  • 109. #3 – Usando a nuvem para computação MasterClient Data Worker Worker Worker Data Data Data
  • 110. #3 – Usando a nuvem para computação MasterClient Resul t Worker Worker Worker Resul t Resul t Resul t
  • 111. Usando o termo “MapReduce”* * 2004 OSDI paper by Jeff Dean and Sanjay Ghemawat (Goo
  • 112. #3 – Usando a nuvem para computação MasterClient Data Worker Worker Worker “Map” M<k,v > M<k,v > M<k.v > M<“the quick brown”.”e”>M<“fox jumps over”.”e”>M<“the lazy dog”.”e”> Quando ”e”’s em “The quick brown fox jumps over the lazy dog”?
  • 113. #3 – Usando a nuvem para computação MasterClient Resul t Worker Worker Worker “Reduc e” L<k,v> L<k,v> L<k,v> L<”e”,”1”> L<”e”,”1”> L<”e”,”1”> 3 x ”e”s encontrad os
  • 114. É um termo muito usado…
  • 115. #3 – Usando a nuvem para computação Google 20pb de dados analizados diariamente com MapReduce Yahoo! 10k+ cores, 4pb de dados em MapReduce Facebook 2500+ cores, 1pb de dados em MapReduce
  • 117. #3 – Usando a nuvem para computação Apache Hadoop Open Source Java “Inspired by MapReduce” (Core, HDFS, many more) Cloudera Consulting, training, distribution of Hadoop Hadoop on Windows Azure Hadoop implementation on Windows Azure
  • 118. Como o João faz normalmente ?
  • 119. #3 – Usando a nuvem para computação MasterClient Data Worker Worker Worker Data Data DataClient ApplicationJob/Task Scheduler Remote Service Como o João faz normalmente ?
  • 120. Como fazer isto no Windows Azure ?
  • 121. #3 – Usando a nuvem para computação Web RoleClient Data Worker Worker Worker Data Data Data Client ApplicationJob/Task Scheduler Remote Service Queue Re q Table
  • 123. Patterns para computação em nuvem Takeaways Aprenda os frameworks existentes (Hadoop) Veja Hadoop on Windows Azure MapReduce modelo orientado para BigData
  • 124. Patterns para computação em nuvem Usando a nuvem para Armazenamento
  • 125. “A nuvem permite armazenar infinitamente meus dados, correto ?” Patterns para computação em nuvem
  • 126. Várias dores de cabeça em gerenciamento de dados Patterns para computação em nuvem
  • 127. “Isto me parece um pouco exagerado…” Patterns para computação em nuvem
  • 128. Como o João faz normalmente ?
  • 129. #4 – Usando a computação em nuvem para armazenamento File Server Client RPC/NFS File Stor e Como o João faz normalmente ?
  • 130. #4 – Usando a computação em nuvem para armazenamento DB ServerClient RDBM S TDS (Tabular Data Stream)Data Como o João faz normalmente ?
  • 131. #4 – Usando a computação em nuvem para armazenamento Web Server Browser Datab ase HTTP POST Data Como o João faz normalmente ?
  • 132. #4 – Usando a computação em nuvem para armazenamento Server Data Afinidade entre o servidor físico e o dado Eu te amo ! Eu també m te amo !
  • 133. #4 – Usando a computação em nuvem para armazenamento Server Data Eu te amo ! Eu també m te amo ! Sintomas: Qual RAID que deve utilizar ? Processo de backup é complexo Droga! Eu estou a 95% da capacidade – precisamos de mais disco
  • 134. Como o Azure pode ajudar ?
  • 135. Quebrar a afinidade entre o hardware e data
  • 136. #4 – Usando a computação em nuvem para armazenamento Client Cloud Storage Pattern “Code Near” A camada de acesso de dados fica perto do cliente, a conexão fica distante DA L Cenários offline DAL -> Conexão via REST
  • 137. #4 – Usando a computação em nuvem para armazenamento Client Cloud Storage Pattern “Code Far” A camada de acesso fica distante do cliente DA L Baseado em cenários, não funciona offline. Excelente para criar camada de aplicações Web Tier
  • 140. #4 – Usando a computação em nuvem para armazenamento Client Azure Blob Storage REST API PutBlob PUT http://account.blob.core.windows./net/containername/bl obname Blob Container http://account.blob.core.windows.net/containername/blobn PutBlob = 64Mb MAX MetaData = 8Kb per Blob
  • 141. #4 – Usando a computação em nuvem para armazenamento Client Azure Blob Storage REST API GetBlob GET http://account.blob.core.windows./net/containername/bl obname Blob Container http://account.blob.core.windows.net/containername/blobn
  • 142. #4 – Usando a computação em nuvem para armazenamento Client Azure Blob Storage REST API GetBlob GET http://account.blob.core.windows./net/containername/bl obname Range: bytes=329300 - 730000 Blob Container http://account.blob.core.windows.net/containername/blobn
  • 143. #4 – Usando a computação em nuvem para armazenamento Client Azure Blob Storage REST API PutBlock(blobname, blockid, data)PutBlockList(blobname, blockid1, …, blockidN) Blob Container http://account.blob.core.windows.net/containername/blobn PutBlock = 4Mb MAX to a maximum of 50Gb BlockId = 64 bytes
  • 145. #4 – Usando a computação em nuvem para armazenamento Worker Role Azure Table Storage Each Table: PartitionKey (e.g. DocumentName) to ensure scalability RowKey (e.g. version number) [fields] for data http://account.table.core.windows.n et REST: GET http://account.table.core.windows.net/Customer?$filter=%20PartitionKey% 20eq%20value LINQ: var customers = from o in context.CreateQuery<customer>(“Customer”) where o.PartitionKey == value select o;
  • 147. #4 – Usando a computação em nuvem para armazenamento DB ServerClient RDBM S TDS Data Assim eu como eu faço normalmente…
  • 148. #4 – Usando a computação em nuvem para armazenamento DB ServerClient RDBM S TDS Data Eu gostaria de fazer assim na nuvem
  • 149. #4 – Usando a computação em nuvem para armazenamento SQL Database Client RDBM S TDS Data Assim é como funciona no Azure
  • 150. #4 – Usando a computação em nuvem para armazenamento SQL Database Browser RDBM S TDS Web Role HTTP
  • 151. #4 – Usando a computação em nuvem para armazenamento SQL Database Browser RDBM S TDS Web Role HTTP Worker Role Queue
  • 153. #4 – Usando a computação em nuvem para armazenamento Browser RDBM S Web Tier HTTP Bus. Logic “The Data Center” SQL Server TDS
  • 154. #4 – Usando a computação em nuvem para armazenamento SQL Database Browser RDBM S TDS Web Role HTTP Worker Role Queue “Na nuvem com PaaS
  • 155. #4 – Usando a computação em nuvem para armazenamento SQL Server Browser RDBM S TDS Web Role HTTP Worker Role Queue “Na nuvem com IaaS”
  • 156. Patterns para computação em nuvem Takeaways Entender os modelos de near code e far code SQL Database ou seu banco, você escolhe Entender o modelo de preços
  • 157. Patterns para computação em nuvem Usando a nuvem para Comunicações
  • 158. João precisa que suas aplicações falem com outras aplicações em vários locais Patterns para computação em nuvem
  • 159. “É sempre chato fazer isto, abrir firewall, WCF? SOA? SOAP ?...não quero isto” Patterns for Cloud Computing
  • 160. “A nuvem pode me ajudar ?” Patterns for Cloud Computing
  • 161. Como o João faz normalmente ?
  • 162. #5 – Usando a nuvem para comunicações Client Server Company 1 Company 2 Telco provided WAN FTP Client FTP Server
  • 163. #5 – Usando a nuvem para comunicações Client Server Company 1 Company 2 Telco provided WAN FTP Client FTP Server Internet
  • 164. #5 – Usando a nuvem para comunicações Client Server Company 1 Company 2 Telco provided WAN Browser Internet Extranet Site DMZ
  • 165. Como as filas do Azure pode ajudar?
  • 166. #5 – Usando a nuvem para comunicações Client REST Azure Queue http://app.queue.core.windows.net/
  • 167. #5 – Usando a nuvem para comunicações Client REST Azure Queue http://app.queue.core.windows.net/ Client Company 1 Company 2
  • 168. #5 – Usando a nuvem para comunicações Client REST Azure Queue http://app.queue.core.windows.net/ Client Company 1 Company 2
  • 169. #5 – Usando a nuvem para comunicações Client REST Azure Queue http://app.queue.core.windows.net/ Client Company 1 Company 2 Master Key Master Key
  • 170. #5 – Usando a nuvem para comunicações Client REST Azure Queue http://app.queue.core.windows.net/ Client Company 1 Company 2 Web Role
  • 171. #5 – Usando a nuvem para comunicações Client REST Azure Queue http://app.queue.core.windows.net/ Client Company 1 Company 2 Web Role Firewall Firewall Proxy ?
  • 172. #5 – Usando a nuvem para comunicações Client REST Azure Queue http://app.queue.core.windows.net/ Client Company 1 Company 2 Web Role Firewall Firewall NAT? 65.55.33.204 192.168.14.100
  • 173. #5 – Usando a nuvem para comunicações Client REST Azure Queue http://app.queue.core.windows.net/ Client Company 1 Company 2 Web Role Firewall Firewall 65.55.33.204 192.168.14.100 OK, so I’ll do a HTTP poll every minute
  • 174. #5 – Usando a nuvem para comunicações Client REST Azure Queue http://app.queue.core.windows.net/ Client Company 1 Company 2 Web Role Firewall Firewall 65.55.33.204 192.168.14.100 …and how about other protocols other than HTTP?
  • 175. Como o Azure Service Bus pode ajudar ?
  • 176. #5 – Usando a nuvem para comunicações Client Outbound bi-directional socket Kept alive in background .NET Service Bus sb://.../myqueue Client Company 1 Company 2 Firewall
  • 177. #5 – Usando a nuvem para comunicações Client Outbound bi-directional socket Kept alive in background .NET Service Bus sb://.../myqueue Client Company 1 Company 2 Firewall Firewall Outbound one-way socket Message routed accordingly
  • 178. #5 – Usando a nuvem para comunicações My Laptop Outbound bi-directional socket Kept alive in background .NET Service Bus sb://.../myqueue Home PC This Conference My Home Firewall Firewall Outbound one-way socket Message routed accordingly 192.168.14.193 SQL Express Port 1433 Localhost:1000 Application
  • 179. Patterns for Cloud Computing Takeaways Firewalls/NATS sempre podem representar obstáculos Cenários com Service Bus podem ser interessantes Escolha o modelo de integração
  • 181. Claro que João é um brincadeira… Próximos passos
  • 182. Próximos passos Entenda o que cada fornecedor realmente entrega de nuvem Explore os 5 patterns hoje Entenda os serviços disponíveis do Azure e como usá-los