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.
4. 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)
6. Modelo de Serviços
SaaS
Software como Serviço
PaaS
Plataforma como Serviço
IaaS
Infraestrutura como Serviço
7. Esforço X Tipo de Serviço na Nuvem
Privado Infraestrutura Plataforma
Você administra
(On-Premise) (como Serviço) (como Serviço)
Applications Applications Applications
Você administra
Runtimes Runtimes Runtimes
Security & Integration Security & Integration Security & Integration
Administrado p/ Terceiro
Você administra
Databases Databases Databases
Servers Servers Servers
Administrado p/ Terceiro
Virtualization Virtualization Virtualization
Server HW Server HW Server HW
Storage Storage Storage
Networking Networking Networking
8. Previsão de
Alocação de Carga
capacidades
“Falta“ de
capacidades
CAPACIDADE DA TI
“Desperdício“ Custo fixo das
de capacidades capacidades
Custo
Inicial
das
capacidades Carga Atual
TEMPO
9. Previsão
Alocação de de Carga
capacidades
CAPACIDADE DA TI
Sem “falta“ de
capacidades
Redução do É possível a
“excesso de TI“ redução das
capacidades no
caso da
Redução dos redução da
investimentos carga
iniciais Carga Atual
Tempo
10. Evolução X Inovação
• Computação em • Computação em
Nuvem como Nuvem como
oportunidade de oportunidade de
terceirização novos Serviços
• Foco em: • Foco em:
• Virtualização • Multi-inquilino
• Migração • Computação e
Convivência: Armazenamen
Federação to Massivos
Interoperabilidade
Attachments
11. Novos Cenários de Uso
Armazenar Dados na Mover Aplicativos
Nuvem para a Nuvem
Estender Aplicativos
para a Nuvem
Criar Novas
Criar Novos Soluções
Serviços na Nuvem Combinando
Serviços da Nuvem
12. Nova Dinâmica para Aplicativos
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
15. Gerência de Certificados
Serviço de Nomes
Monitoração/Meetering
Identidade
Provisionamento
Cobrança e Pagamentos VPN
Computação
Cache Interno
Filas
Blobs
Arquitetura da Nuvem
Tabelas
MapReduce
Discos
Data Mkt
Banco
Relatório
ISB
BI
Load Balancer/Firewall/Proxies
Sinc
Cache Geográfico
Backup
Portal de Serviços
16. Exemplo Azure: Capacidades
Personal Data Application Information
Application Services Repository Marketplace Marketplace
Services Workflow Distributed
Frameworks Hosting Hosting Cache
Secure Token Declarative Claims-Based Federated
Security Service Policies Identity Identities
Traffic Composite On-Premise
Connectivity Manager
Service Bus
Applications Bridging
Relational SQL Azure Data
Data Database Reporting
Transact-SQL
Synchronization
Compute C/C++
Win32 VHD
Unstructured Message Distributed Content
Storage Data
Blobs
Queues Filesystem Distribution
17. Exemplo: Windows Azure
Portal de Negócios
Portal do Desenvolvedor Código
REST Service de Gerência de Serviços
Runtime API
VS Tools
VM Setup
Storage Cluster
Compute Cluster
… …
WA SDK
Cloud VM
…
Desktop
REST
Datacenters da Microsoft
19. Exemplo de Impactos
Estado Windows
Corrente Azure
Controle sobre a topologia da Controle Controle limitado sobre portas e
rede e sobre as máquinas Admin IPs
Banda consistente com latência Latência Banda e latência variável
previsível
Nomes das máquinas podem
Controle sobre aIdentificação da
Identificação mudar toda vez que uma máquina
Máquina
inicia
Controle limitado sobre o tempo
Controle sobre o tempo de vida
da máquina
Volatilidade de vida - Estado torna-se
transiente
20. 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
21. Requisitos de Arquitetura para Aplicativos
para Milhões de Usuários
Design Dados & Conteúdo
Escalabilidade Horizontal De-normalização
Composição Orientada a Serviço Particionamento Lógico
Consistência Eventual Cache distribuído em memória
Tolerância a Falhas (conte com as falhas) Opções diversas de armazenamento (persistente
& transiente, relacional & não estruturado, texto
Segurança & binário, read & write, etc.)
Autenticação Baseada em Declarações & Controle
de Acesso
Identidade Federada
Processos
Criptografia de Dados e gerência de chaves Componentes Fracamente acoplados
Processamento paralelo e distribuído
Gerenciamento
Comunicação distribuída e assíncrona
Automação dirigida a políticas (Policy-driven)
Idem-potência (trata duplicidade)
Apoia o ciclo de vida dos aplicativos
Isolamento (separação de responsabilidades)
Trata esquemas dinâmicos e mudanças de
configuração
28. 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