View
1.241
Download
3
Category
Preview:
DESCRIPTION
A Computação em Nuvem apresenta novas capacidades e novos desafios para a arquitetura de um software. Por sua vez, desenhar aplicações para Nuvem requer a compreensão e mestria destas capacidades. Esta apresentação irá explorar alguns destes desafios e uso das capacidades tendo o Azure como pano de fundo.
Citation preview
Arquitetura e Nuvem:
O que muda?
Otavio Pecego Coelho
Microsoft Brasil
otavioc@microsoft.com
http://blogs.msdn.com/otavio
Agenda
O que é a Nuvem?
Capacidades da Nuvem
Requisitos de Arquitetura para a Nuvem
O que é a Nuvem?
Definição
Gartner:
“Um estilo de Computação onde capacidades de TI escaláveis e elásticas são provisionadas como um serviço para múltiplos clientes usando tecnologias da Internet” [Cearley 2009]
NIST - National Institute of Standards and Technology
“Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models.” [http://csrc.nist.gov/groups/SNS/cloud-computing/cloud-def-v15.doc]
(NIST = National Institute of Standards and Technology)
Características (NIST)
On-demand self-service
Acesso amplo à rede
Pool de Recursos
Elasticidade Rápida
Serviço Mensurável
Modelo de Serviços
SaaS Software como Serviço
PaaS Plataforma como Serviço
IaaS Infraestrutura como Serviço
Privado (On-Premise)
Infraestrutura (como Serviço)
Plataforma (como Serviço)
Esforço X Tipo de Serviço na Nuvem
Storage
Server HW
Networking
Servers
Databases
Virtualization
Runtimes
Applications
Security & Integration
Storage
Server HW
Networking
Servers
Databases
Virtualization
Runtimes
Applications
Security & Integration
Storage
Server HW
Networking
Servers
Databases
Virtualization
Runtimes
Applications
Security & Integration
Vo
cê a
dm
inis
tra Ad
min
istrad
o p
/ Terce
iro
Ad
min
istrad
o p
/ Terce
iro
Vo
cê a
dm
inis
tra
Vo
cê a
dm
inis
tra
TEMPO
CA
PA
CID
AD
E D
A T
I
Carga Atual
Alocação de capacidades
“Desperdício“ de capacidades
“Falta“ de capacidades
Custo fixo das capacidades
Previsão de Carga
Custo Inicial das
capacidades
Carga Atual
Alocação de
capacidades
Redução dos investimentos
iniciais
Redução do “excesso de TI“
Sem “falta“ de
capacidades
É possível a redução das
capacidades no caso da
redução da carga
Tempo
CA
PA
CID
AD
E D
A T
I Previsão de Carga
Evolução X Inovação
• Computação em
Nuvem como
oportunidade de
terceirização
• Foco em:
• Virtualização
• Migração
• Computação em
Nuvem como
oportunidade de
novos Serviços
• Foco em:
• Multi-inquilino
• Computação e
Armazenamen
to Massivos
Convivência:
Federação
Interoperabilidade
Attachments
Armazenar Dados na Nuvem
Estender Aplicativos para a Nuvem
Mover Aplicativos para a Nuvem
Criar Novos Serviços na Nuvem
Criar Novas Soluções
Combinando Serviços da Nuvem
Novos Cenários de Uso
Web Site Público
• Uso do Serviço de forma direta
Interface REST
• Uso por sites externos especializados
SDK de Acesso
• Uso por sites externos simples
Apps móveis
• Cliente simples para uso em todo lugar
Apps Sociais
• Integração e Mkt via com a rede social
Nova Dinâmica para Aplicativos
Novas Categorizações de Aplicativos
Capacidades da Nuvem
Arquitetura da Nuvem
Iden
tida
de
Computação
Prov
isio
nam
ento
Load Balancer/Firewall/Proxies
Mon
itor
ação
/Mee
teri
ng
VPN
Cache Geográfico
Data Mkt
Serv
iço
de N
omes
ISB
Fila
s
Blo
bs
Tabe
las
Dis
cos
Cache Interno
Ban
co
Rela
tóri
o
BI
Sinc
Bac
kup
MapReduce
Ger
ênci
ade
Cer
tifi
cado
s
Port
al d
e Se
rviç
os
Cobr
ança
e Pa
gam
ento
s
Storage Unstructured
Data Blobs
Message
Queues
Distributed
Filesystem
Content
Distribution
Data Transact-SQL Data
Synchronization
Relational
Database
SQL Azure
Reporting
Connectivity
Security Claims-Based
Identity
Federated
Identities
Secure Token
Service
Declarative
Policies
Application Services Application
Marketplace
Information
Marketplace
Personal Data
Repository
Frameworks Workflow
Hosting
Distributed
Cache
Services
Hosting
Exemplo Azure: Capacidades
Compute C / C++ Win32 VHD
On-Premise
Bridging
Composite
Applications Service Bus
Traffic
Manager
Exemplo: Windows Azure
Desktop
VS Tools
WA SDK
Sto
rage
Clu
ster
Datacenters da Microsoft
Portal de Negócios
Portal do Desenvolvedor
Com
pute
Clu
ster
… …
Service de Gerência de Serviços
REST
REST …
Cloud VM
Runtime API
VM Setup
Código
Requisitos de Arquitetura
para a Nuvem
Controle sobre a topologia da
rede e sobre as máquinas
Controle limitado sobre portas e
IPs
Banda consistente com latência
previsível
Controle sobre aIdentificação da
Máquina
Nomes das máquinas podem
mudar toda vez que uma máquina
inicia
Controle limitado sobre o tempo
de vida - Estado torna-se
transiente
Controle sobre o tempo de vida
da máquina
Banda e latência variável
Estado Corrente
Windows Azure
Exemplo de Impactos
Controle
Admin
Latência
Volatilidade
Identificação
Novos Princípios – Exemplo Netflix 1. Os serviços são stateless,
por não armazenarem estados nos servidores a falha deles não é tão impactante para o usuário final;
2. Os dados são armazenados em várias geografias aumentando a disponibilidade através da “redundância”;
3. O sistema foi projetado para falhar, usando princípios como: 1. “Falhar rápido” com timeouts curtos que fazem os processos caírem
se os tempos não forem obedecidos;
2. “Recuo” (“fallback”): se uma funcionalidade não pode ser mostrada, outra de menor qualidade/funcionalidade pode entrar em ação e substituí-la;
3. “Remoção de funcionalidades”: se uma funcionalidade não é importante e há problemas de desempenho, ela pode ser desativada temporariamente;
4. Redundância N+1: alocam-se sempre mais recursos do que necessário para uma reserva de capacidade;
5. Uso de consistência eventual: nada de sistemas relacionais para armazenamento
Requisitos de Arquitetura para Aplicativos
para Milhões de Usuários
Design
Escalabilidade Horizontal
Composição Orientada a Serviço
Consistência Eventual
Tolerância a Falhas (conte com as falhas)
Segurança
Autenticação Baseada em Declarações & Controle
de Acesso
Identidade Federada
Criptografia de Dados e gerência de chaves
Gerenciamento
Automação dirigida a políticas (Policy-driven)
Apoia o ciclo de vida dos aplicativos
Trata esquemas dinâmicos e mudanças de
configuração
Dados & Conteúdo
De-normalização
Particionamento Lógico
Cache distribuído em memória
Opções diversas de armazenamento (persistente
& transiente, relacional & não estruturado, texto
& binário, read & write, etc.)
Processos
Componentes Fracamente acoplados
Processamento paralelo e distribuído
Comunicação distribuída e assíncrona
Idem-potência (trata duplicidade)
Isolamento (separação de responsabilidades)
Patterns Fundamentais
Patterns Fundamentais
P1 P2 P3
Patterns Fundamentais
Migração?
Aplicação Exemplar – aExpense
Pontos para Lembrar
A Nuvem é uma ótima oportunidade
Migração
Novos tipos de Aplicativos
Ela exige princípios arquiteturais e cuidados arquiteturais diferentes
Leia e teste – já há muito material
http://www.microsoft.com/windowsazure/whitepapers/
http://www.microsoft.com/windowsazure/tutorials/#
http://msdn.microsoft.com/en-us/library/ff966499.aspx
http://msdn.microsoft.com/en-us/library/ff728592.aspx
Recommended