Virtualização Padronização Resiliência Elasticidade Monitoração Automação.
-
Upload
alicia-antonio -
Category
Documents
-
view
213 -
download
0
Transcript of Virtualização Padronização Resiliência Elasticidade Monitoração Automação.
Criando aplicações prontas para nuvemAPPI305
Regis GimenisArquitetoMicrosoft Brasil
Agenda
Evolução da computação
70’s : Monolítico80’s : Cliente-servidor90’s : Web00’s : SOA10’s : TI como Serviço
Computação em Nuvem
Utilização de processamento, memória e armazenamento em servidores
compartilhados e acessados remotamente por meio da Internet
Características
Virtualização Padronização Resiliência
Elasticidade Monitoração Automação
Capacidade X DemandaModelo Tradicional
TEMPO
CA
PAC
IDA
DE
DA
TI
Alocação de capacidades
“Desperdício“ de
capacidades
“Falta“ de capacidades
Custo fixo das capacidades
Custo Inicial Carga real
Previsão de Carga
Capacidade x DemandaModelo na Nuvem
Carga real
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
PAC
IDA
DE
DA
TI
Previsão de Carga
Uso
Com
puta
r
Time
Média
Período deInatividade
“On / Off “
• Cargas On/Off• Desperdício da capacidade provisionada• Time to market pode ser retardado
Com
puta
r
Tempo
“Carga Imprevista“
Uso Médio
• Pico de demanda inesperada• Desempenho comprometido pelo pico• Difícil provisionar nos casos extremos
Uso MédioCom
puta
r
Tempo
“Crescimento Rápido“
• Serviços que precisam cresce e escalar• Crescer é um desafio grande na TI• Provisionamento de hardware complexo
Com
puta
r Tempo
Uso Médio
“Carga Sazonal“
• Serviços c/ micro sazonalidades• Picos devido a demandas periódicas• Complexidade da TI + desperdício
Padrões de Computação
1 2
3 4
Modelos de Nuvem
Nuvem
Modelo de Serviços
Modelo de Implantação
IaaS
PaaS
SaaS
Privado
Público
Comunidade
Híbrido
(On-Premises)
Infrastructure
(as a Service)
Platform(as a
Service)
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime
Você
ad
min
istr
a Administrado pelo fornecedor
Administrado pelo
fornecedor
Você
adm
inis
tra
Você
adm
inis
tra
Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
Software
(as a Service)
Administrado pelo fornecedorStorage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
Aplicações prontas para nuvem
Decomposição funcional
Decomposição lógica
Topologia (web/worker)
Competição por recursos
Padrões de Carga -> Unidades de Escala
Decomposição funcionalTaxonomia do Windows
COMPONENTS: Reutilizável, auto-descrito, unidade de teste, distribuição e serviço
FEATURES: Bloco de construção de produto que, em combinação com outras features ou componentes, disponibiliza um conjunto de funcionalidade
ROLES: Composição de features que forma uma unidade de gerenciamento (implantação, atualização)
WORKLOADS: Composição de papéis relacionados que rodam juntos num servidor ou conjunto de servidores
SOLUTION: Um conjunto de workloads integrados que juntos endereçam um problema para um segmento de clientes
PRODUCT: Uma solução empacotada como um produto
Decomposição da aplicação
Arquitetura
Acesso ProgramáticoRSS REST Web Services VoiceXML
Apresentação WebStatic Dynamic RIA Streaming
AplicaçãoBusiness Logic (Worker Role)Presentation (Web Role)
SMTP SMSSOAP
Software Aplicativo
Software ClienteCliente PC
Browser Office Client Gadgets IMCliente Mobile
Speech SMS/IM Browser Office ClientEmbedded
Devices Consoles
On Premises Hoster Cloud
ComputaçãoPhysical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable
Fundações
InfraestruturaIdentity & AccessMessagingStorage Workflow
Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile Authentication AuthorizationTable
Padrões de carga
• 100 usuários simultâneos• 3.000 ops/ dia
2 web roles1 worker role
512 cache5 GB storage
4 web roles2 worker roles1 GB cache
10 GB storage
200 usuáriosCrescimento
• 2 web roles• 1 worker role• 512 cache• 5 GB storage
100 usuáriosinicial
COMUNICAÇÃO ASSÍNCRONA
Padrão de projeto síncrono
Requisição 1
Web App Front End
Thread Thread
“Trabalho” 1
SQL Azure
WA Storage
TablesQueues
WorkerResposta 1Resposta 1
BloqueiaRequisição 2
Esperando…AppFabric
Cache
Padrão de projeto assíncrono
Requisição 1
Web App Front End
Thread Thread
“Trabalho” 1Worker
Resposta 1Resposta 1
ContextoRequisição 2
Resposta 2
“Trabalho” 2
Resposta 2
SQL Azure
WA StorageTables
QueuesAppFabric
Cache
Síncrono versus Assíncrono
Projeto síncrono Projeto assíncrono
Síncrono versus AssíncronoSíncrono
Assíncrono
Dependência Isolamento Escalabilidade Gerenciamento Capacidade deresposta
Storage
Web Role Worker Role
Queue
LB
LB
Worker RoleWorker Role
Web Role
Worker Role
Blob Container
Table
1. Usuário sobe arquivo grande de imagem 2. Imagem é inserida num blob storage3. Mensagem é enviada para fila com BLOB URI e metadados4. Worker role lê mensagem da fila5. Worker role processa mensagem, lê imagem do BLOB storage, gera
thumbnail6. Thumbnail e metadados são armazenados numa tabela 7. Mensagem é apagada da fila
30mb JPEG
Exemplo padrão assíncrono
Web Role Worker Role
Storage
Queue
LB
LB
Worker RoleWorker Role
Web Role
Worker Role
1. Envio de mensagem de débido de R$100 da conta2. Worker role lê a mensagem3. Saldo da conta é debitado em R$1004. Worker role “cai” antes da mensagem ser apagada5. 3 minutos depois, mensagem reaparece na fila6. Worker role lê a menagem7. Saldo da conta é debitado em R$1008. A mensagem é apagada da fila9. Caos é instaurado, cliente reclama ao banco…
Saldo= $1000Saldo= $900Saldo = $800
Exemplo com falha no Worker Role
Problema de idempotência
1. Envio de mensagem de débido de R$100 da conta com ID da transação2. Worker role lê a mensagem e verifica se ID da transação já existe3. Escreve ID da transação no estado ‘Iniciado’ no ‘Replay Log’4. Saldo da conta é debitado em R$1005. Worker role “cai” antes da mensagem ser apagada6. 3 minutos depois, mensagem reaparece na fila7. Worker role lê a mensagem. Verifica Id da transação existente no estado ‘Iniciado’.8. Mensagem de compensação é escrita em outra fila9. Mensagem é apagada da fila.10.Mensagem de compensação é processada.
Solução para problema de idempotência
Web Role Worker Role
Storage
Queue
LB
LB
Worker RoleWorker Role
Web Role
Worker Role
Saldo = $1000Saldo = $900
Table
QueryQuery
Queue
Aplicações
Compatível com Windows
Azure
Projetado paraWindows
Azure
Disponível como
Serviço
Modelo de programação para Windows Azure
AdministraçãoDisponibilidadeEscalabilidade
1. Aplicação roda sobre um ou mais roles2. Múltiplas instâncias de cada role3. Aplicação deve continuar funcionando quando
qualquer instância falhar
Whitepaper: The Windows Azure Programming Modelhttp://go.microsoft.com/?linkid=9751501
Web Role Worker Role
Modelo típico de aplicação
Queue Table
Windows Azure Platformhttp://msdn.microsoft.com/en-us/library/dd163896.aspx
Plataforma Windows Azure
Desenvolvimento
Visual Studio 2010Windows Azure SDKAppFabric SDKFerramentas / emuladores
Gerenciamento de ciclo de vida
Moving Application to the Cloudhttp://msdn.microsoft.com/en-us/library/ff728592.aspx
Empacotamento e configuraçãoWindows Azure Services são descritos por dois importantes artefatos:
Service Definition (*.csdef)Service Configuration (*.cscfg)
O código é compactado e empacotado juntamente com a definição num *.cspkg
Encrypted(Zipped(Code + *.csdef)) == *.cspkgWindows Azure consome apenas (*.cspkg + *.cscfg)
Atualização da aplicação
VIP Swap:Ambientes Staging e Production.Permite a troca rápida de ambientes.Production: v1 Staging: v2, após a troca Production: v2 Staging: v1.
In-Place UpgradeExecuta uma atualização sem interrupção no serviço.Todo serviço ou apenas um RoleManual ou Automático
MonitoramentoInstrumente sua aplicação usando Trace, Debug
DiagnosticMonitorTraceListenerUse Diagnostics API para configurar e coletar
Logs de eventosContadores de performanceInformação de Trace e DebugLogs do IISCrash Dumps
Monitore os SLA pela combinação dos SLA’s de aplicação e plataforma.Lembre-se monitoramento e diagnóstico não são livres de cobrança: espaço de armazenamento, transferência,
ArmazenamentoLocalWindows Azure Storage
BlobQueueTables
Windows Azure DrivesSQL Azure
Armazenamento localInstâncias Role tem espaço em disco disponívelUtilizar elemento LocalStorage na definição de serviço
NameCleanOnRoleRecycleSize
Persistente porém sem duração garantidaBom para recursos cacheados
Windows Azure Storage Drives fornece um armazenamento durável garantido
Windows Azure Storage
Armazenamento na NuvemEscalável, durável e disponívelEm qualquer lugar em qualquer horaPague somente pelo uso
Exposto via RESTful Web ServicesVários tipos de abstração:
Tables, Blobs, Queues, Drives
SQL Azure
Banco de dadosRelatóriosSincronização de dados
Conectividade
Windows Azure ConnectWindows Azure Traffic ManagerWindows Azure AppFabric Service Bus
Windows Azure Connect
Overview of Windows Azure Connecthttp://msdn.microsoft.com/en-us/library/gg432997.aspx
Windows Azure Traffic Manager
Windows Azure hosted services named in policy
... Hosted Service N
HostedService 1
User
DNS resource record for www.contoso.com
1
25
6
Company Domainwww.contoso.com
DNS Name
ServiceCalls
Traffic Manager policy
Traffic Manager domaincontoso.ctp.trafficmgr.com
monitoring
Load Balance Method
3
4
Windows Azure Traffic Manager Help
Performance
Content Delivery Network (CDN)AppFabric Caching
Content Delivery Network (CDN)
Melhorar desempenho e experiência do usuárioEscala para aumento de tráfego e carga da aplicação.
Windows Azure AppFabric
AppFabricCaching
AppFabricService Bus AppFabric
Access Control
Data TierWeb Tier
Windows ServerWindows Azure
SQL ServerSQL Azure
AppFabricContainer
AppFabricDevelope
rTools
AppFabricApp
Manager
Applications
Access Control
Caching
Service Bus
Integration
Workflows
Web Services
Custom Code
AppFabric Services
Server Cloud
Composition
Model
AppFabric: Modelo de Composição
AppFabric Service Bus
AppFabric Service Bus
Fornece serviço de mensagens seguro e conectividade através de diferentes topologias de rede.Permite a construção de aplicações híbridas que estendem entre cloud e on-premises.Permite diferentes protocolos e padrões de comunicação para construir mensageria confiável
Application #1 Application #2Direct Connection facilitated by Service Bus if that is best
connection mechanism.
TextXMLGraphicsBinary DataStreaming
FirewallSend
Receive
Exchange messages between loosely coupled, composite
applications.
Send
Receive
AppFabric Service Bus
AppFabricCaching
AppFabric Caching
Cache de aplicações em memória, distribuído, para aplicações Windows AzureUsos:
Session State para aplicações Windows AzureCamada de cache para aplicações Windows Azure com armazenamento em SQL Azure ou Windows Azure Storage
Fornecido como serviçoProvisionar, configurar e utilizarSem instalação ou gerenciamento de máquinas ou instânciasAumento ou redução de tamanho conforme necessidadeMesmo modelo de programação para cloud e on-premisesSegurança via Access ControlFaz cache de qualquer objeto .NET
demo
Windows Azure AppFabric Caching
Access Control
AppFabric Access Control Service
Aplicações ou usuários
Simplifica e automatiza requisições de autorização
Abstração para autenticação baseada em claims
Relacionamento seguro
Aplicações e dados
demo
Windows Azure AppFabric Access Control Service
Palestras RelacionadasAPPI 301 Arquitetura de Referência na Plataforma Microsoft e Windows AzureCOS301 Como utilizar o Windows Azure Storage nas suas aplicaçõesCOS302 Nuvens híbridas: Conectando aplicações locais com a nuvem na plataforma Windows AzureCOS304 Novidades do Windows Azure AppFabricCOS305 Migrando uma aplicação para Windows Azure
Recursos
Recursos para IT Pros
Recursos para Desenvolvedores
http://technet.microsoft.com/pt-br
http://msdn.microsoft.com/pt-br
Getthefreemobileappforyourphonehttp://gettag.mobi
Getthefreemobileappforyourphonehttp://gettag.mobi
Não esqueça de preencher sua
avaliação onlinewww.teched.com.br/
avaliacao
Getthefreemobileappforyourphonehttp://gettag.mobi
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.