60

Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Embed Size (px)

Citation preview

Page 1: Virtualização Padronização Resiliência Elasticidade Monitoração Automação
Page 2: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Criando aplicações prontas para nuvemAPPI305

Regis GimenisArquitetoMicrosoft Brasil

Page 3: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Agenda

Page 4: Virtualização Padronização Resiliência Elasticidade Monitoração Automação
Page 5: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Evolução da computação

70’s : Monolítico80’s : Cliente-servidor90’s : Web00’s : SOA10’s : TI como Serviço

Page 6: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Computação em Nuvem

Utilização de processamento, memória e armazenamento em servidores

compartilhados e acessados remotamente por meio da Internet

Page 7: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Características

Virtualização Padronização Resiliência

Elasticidade Monitoração Automação

Page 8: 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

Page 9: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 10: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 11: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Modelos de Nuvem

Nuvem

Modelo de Serviços

Modelo de Implantação

IaaS

PaaS

SaaS

Privado

Público

Comunidade

Híbrido

Page 12: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

(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

Page 13: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 14: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 15: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Decomposição da aplicação

Page 16: Virtualização Padronização Resiliência Elasticidade Monitoração Automaçã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

Page 17: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 18: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

COMUNICAÇÃO ASSÍNCRONA

Page 19: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 20: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 21: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Síncrono versus Assíncrono

Projeto síncrono Projeto assíncrono

Page 22: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Síncrono versus AssíncronoSíncrono

Assíncrono

Dependência Isolamento Escalabilidade Gerenciamento Capacidade deresposta

Page 23: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 24: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 25: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 26: Virtualização Padronização Resiliência Elasticidade Monitoração Automação
Page 27: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Aplicações

Compatível com Windows

Azure

Projetado paraWindows

Azure

Disponível como

Serviço

Page 28: Virtualização Padronização Resiliência Elasticidade Monitoração Automaçã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

Page 29: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Web Role Worker Role

Modelo típico de aplicação

Queue Table

Page 30: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Windows Azure Platformhttp://msdn.microsoft.com/en-us/library/dd163896.aspx

Plataforma Windows Azure

Page 31: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Desenvolvimento

Visual Studio 2010Windows Azure SDKAppFabric SDKFerramentas / emuladores

Page 32: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Gerenciamento de ciclo de vida

Moving Application to the Cloudhttp://msdn.microsoft.com/en-us/library/ff728592.aspx

Page 33: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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)

Page 34: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 35: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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,

Page 36: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

ArmazenamentoLocalWindows Azure Storage

BlobQueueTables

Windows Azure DrivesSQL Azure

Page 37: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 38: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 39: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

SQL Azure

Banco de dadosRelatóriosSincronização de dados

Page 40: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Conectividade

Windows Azure ConnectWindows Azure Traffic ManagerWindows Azure AppFabric Service Bus

Page 41: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Windows Azure Connect

Overview of Windows Azure Connecthttp://msdn.microsoft.com/en-us/library/gg432997.aspx

Page 42: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 43: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Performance

Content Delivery Network (CDN)AppFabric Caching

Page 44: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Content Delivery Network (CDN)

Melhorar desempenho e experiência do usuárioEscala para aumento de tráfego e carga da aplicação.

Page 45: Virtualização Padronização Resiliência Elasticidade Monitoração Automação
Page 46: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Windows Azure AppFabric

AppFabricCaching

AppFabricService Bus AppFabric

Access Control

Page 47: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 48: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

AppFabric Service Bus

Page 49: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 50: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 51: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

AppFabricCaching

Page 52: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 53: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

demo

Windows Azure AppFabric Caching

Page 54: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Access Control

Page 55: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 56: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

demo

Windows Azure AppFabric Access Control Service

Page 57: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 58: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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

Page 59: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

Não esqueça de preencher sua

avaliação onlinewww.teched.com.br/

avaliacao

Getthefreemobileappforyourphonehttp://gettag.mobi

Page 60: Virtualização Padronização Resiliência Elasticidade Monitoração Automação

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