Arquitetura de Referência na Plataforma Microsoft e Windows AzureAPPI 301Alexandre Ricardo NardiConsultor SêniorMicrosoft Brasil
Arquitetura “pra” quê?The Winchester “Mystery” House
38 anos de construção – 147 operários e 0 arquitetos160 salas – 40 quartos, 6 cozinhas, 2 subsolos, 950 portas65 portas para paredes, 13 escadas abandonadas, 24 clarabóias no chãoSem sequer um rascunho de arquitetura
AgendaApresentar uma visão sobre capacidades de uma plataforma de aplicações.
Apresentar uma introdução sobre computação em nuvem e o Windows Azure.
Serviços de Desenvolvimento
Serviços de Integração
Serviços de Hospedagem
Serviços de Armazenamento e BI
Serviços de Segurança
Serviços de Gerenciamento
Pilares da Plataforma de Aplicações
Plataforma de Aplicações
Um modelo de capacidades para a plataforma Microsoft
VS2010, UML, Unit Test, Coded UI Test, .NET Framework, Share Point, SQL Server, TFS
BizTalk, ESB Toolkit, UDDI 3.0, SQL Server, SSIS, SharePoint
Windows Server AppFabric, WAS, IIS, Windows Azure, Azure AppFabric
SQL Server, Master Data Services, SSIS, StreamInsight, SQL Azure
WIF, ADFS 2.0, ForeFront, AD, SQL
System Center Suite, Opalis, AVICode
Pilares da Plataforma de Aplicações
Plataforma de AplicaçõesDesenvolvimento
Integração
Hospedagem
Armazenamento
Gerenciamento
Segurança
Um modelo de capacidades para a plataforma Microsoft
Bac
k-E
nd
Ser
vice
s
Mid
dle
Tier
C
lient
s
Fron
t-End
C
lient
s
Arquitetura geral de serviços
• Serviços oferecem funcionalidades para inúmeros clientes.
• Aplicações RIAs consomem serviços, por exemplo.
• Dados são acessados indiretamente através de serviços.
• Podemos trabalhar com inúmeros modelos de serviços.
Web Browser & RIA
WPF & WinForms
ASP.NET Pages
Mobile Clients
Outros Serviços
WCF Services• Implementa Entidades, Tarefas e Serviços• Provê Acesso a Dados• Exporta a Lógica da Aplicação
AJAX
Silverlight
Cal
l Dire
ctly
Opções de serviços
• Entre Web Services SOAP e serviços workflows, diferentes fatores devem ser avaliados na aplicação.
Bac
k-E
nd S
ervi
ces
Middle Tier Clients
Front-End Clients
WCF Services• Definido através de código• Modelos de serviços por entidades
Cal
l Dire
ctly
WCF Workflow Services• Definição visual (gráfica)• Suporte para processos de longa duração • Modelo de serviços por tarefas.
Windows Server AppFabricMonitoração e Hospedagem de serviços e workflows
IIS | WAS | Windows Server
AppFabric
WCF Services
WCF Workflow Services
O que é WCF?Windows Communication Foundation
Serviço
WCF
Cliente
Métodos
Behaviors
Named Pipes
TCPSOAP HTTP
filasMSMQ
Transações
Web Services
Hospedagem
Outros protocolos
O que é WF?Windows Workflow Foundation
WF Runtime
WCF
Cliente
TransaçõesPersistência
Named Pipes
TCPSOAP HTTP
filasMSMQ
Workflows e Processos
WCF Workflow Service Application
Template WCF Workflow Service para cenários de SOA
Exemplo de processos no mundo real
Exemplo de workflow com WF4
Windows Server AppFabricMonitoração e Hospedagem de serviços e workflows
Arquitetura de Referência .NET on-premise
Arquitetura de Referência para uma aplicação .NET
on-premises (local)
Tipos de ArquiteturaSegundo o App Arch Guide v2.0
Web ApplicationRich Client ApplicationRich Internet ApplicationMobile ApplicationService ApplicationHosted and Cloud Services / ApplicationOffice Business ApplicationSharePoint LOB Application
http://apparchguide.codeplex.com/
Web Application
ASP.NET WebForms 4.0ASP.NET MVC 3ASP.NET AJAX 4.0ASP.NET Chart ControlASP.NET Dynamic Data
Windows Application
Rich Application:WPF 4.0WCF 4.0WF 4.0MEFManaged Extensibility Framework
RIA Application
Rich Internet Application:
Silverlight 4.0WCF RIA ServicesWCF Data ServicesREST, POX, JSON, ATOM, OData, etc.
Orientação a Serviços
WCF 4.0WF 4.0PLINQDynamic Language RuntimeIIS 7.5/WASWindows Server AppFabric
Application Architecture Guide v2http://apparchguide.codeplex.com/
Templates prontos no Visual Studio
Arquitetura de Referência Corporativa
Diagrama Conceitual de Arquitetura de Composição
Acesso ProgramáticoRSS REST Web Services VoiceXML
Apresentação WebStatic Dynamic RIA Streaming
AplicaçãoRegras de NegócioRegras de Apresentação
SMTP SMSSOAP
Camada ClienteCliente PC
Browser Office Desktop
ComputaçãoFísico Dedicados Físico Compartilhado Virtual Simples Virtual Dinâmico
Fundações
Camada InfraestruturaIdentidade / AcessoMensageriaPersistência Workflows
Async Queue/Bus Peer to PeerBlob Human WF System WFRelacionalArq Autenticação AutorizaçãoTable
PortalPagesWeb Parts Search
Conteúdo MultimidiaImagens
Cliente MobileSpeech SMS/IM Browser Office Client
EmbeddedDevices ConsolesGadgets IM
On Premises Hoster Cloud
Integração Serviços CorporativoEIS LDAPProtocolos AdaptadoresVideos Streaming
Processos de Negócios
Gerenciam
ento / Monitoração / Q
oS
Camada Aplicação
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
Arquitetura de ComposiçãoUm portal hospedado na infraestrutura local
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
Arquitetura de ComposiçãoUma aplicação hospedada no Windows Azure
Pontos importantes…
Avaliar as capacidades de plataforma que são críticas para suas soluções
Trabalhar com o modelo de grupos de capacidades
Monitoração, segurança, hospedagem, BI & armazenamento, integração, desenvolvimento
Adotar arquiteturas de referências para tipos de aplicações e cenários existentes
Computação em Nuvem
Estendendo a arquitetura local (on-premise) para a nuvem
Diagrama Conceitual de Arquitetura de Composição
Acesso ProgramáticoRSS REST Web Services VoiceXML
Apresentação WebStatic Dynamic RIA Streaming
AplicaçãoRegras de NegócioRegras de Apresentação
SMTP SMSSOAP
Camada ClienteCliente PC
Browser Office Desktop
ComputaçãoFísico Dedicados Físico Compartilhado Virtual Simples Virtual Dinâmico
Fundações
Camada InfraestruturaIdentidade / AcessoMensageriaPersistência Workflows
Async Queue/Bus Peer to PeerBlob Human WF System WFRelacionalArq Autenticação AutorizaçãoTable
PortalPagesWeb Parts Search
Conteúdo MultimidiaImagens
Cliente MobileSpeech SMS/IM Browser Office Client
EmbeddedDevices ConsolesGadgets IM
On Premises Hoster Cloud
Integração Serviços CorporativoEIS LDAPProtocolos AdaptadoresVideos Streaming
Processos de Negócios
Camada Aplicação
É um estilo de computação que oferece escalabilidade
massiva de recursos computacionais com tecnologias de Internet e provisionamento
dinâmico.
O que é Cloud Computing?
TEMPO
CA
PAC
IDA
DE
DA
TI
Carga Atual
Alocação de capacidades
“Desperdício“ de capacidades
“Falta“ de capacidades
Custo fixo das capacidades contratadas
Previsão de Carga
Custo Inicial de Hardware
Capacidade ociosa com a redução da
carga
Custos com infraestrutura própriaOn-premise
Carga Atual
Alocação de capacidades
Redução dos investimentos
iniciais
Redução do “excesso de
TI“
Sem “falta“ de capacidades
Redução das capacidades nos
momentos de redução da carga
TEMPO
CA
PAC
IDA
DE
DA
TIPrevisão de
Carga
Computação como serviçoProvisionamento dinâmico
Tipos de Serviços
Software-as-a-Serviceconsumir
“SaaS”
Platform-as-a-Serviceconstruir“PaaS”
Infrastructure-as-a-Servicehospedar
“IaaS”
O que é o Windows Azure?Uma plataforma como serviço (PaaS)
Controlador da Malha de Servidores
empresas usuários
Internet
Plataforma Windows Azure
Experiência do DesenvolvedorUsa as mesmas ferramentas e conhecimento atual
Compute
Storage
Management Connectivity Access controlFlexible
APIsInformation Marketplace
Reporting
Relational data
Management
Data SyncReporting &
BI
Billing & Payments
Flexible APIs
Information Marketplac
e
Patterns de aplicação para o Windows Azure
Negócio: fazer processamento batch periódico.Cenário: Análise de risco de crédito feito mensalmenteExemplo: Análise de Risco, Simulações de Monte Carlo
Negócio: demanda crescente de usuários e requisiçõesCenário: Sindicalização digital, startups, eCommerce, etc.Exemplo: Associated Press Breaking News API
uso médioCo
mpu
taçã
o
tempo
“Crescimento Rápido”
Com
puta
ção
tempo
“On / Off”
médiouso
PeríodoInativo
Patterns para a nuvem
Patterns para a nuvem
Negócio: tratar de forma segura picos de demanda em seu negócio.Cenário: campanhas de marketing, vendas de tickets, situações de emergência.Exemplo:
Negócio: responder a picos de uso dentro do ciclo de negócio previsto.Cenário: sistemas de eCommerce, portal interno de pagto, websites corporativos
Exemplo:
Com
puta
ção
tempo
“Carga não prevista”
Uso médio Com
puta
ção
tempo
“Carga sazonal”
Uso médio
Plataforma de Serviços na Nuvem
Plataforma Windows Azure
Experiência do DesenvolvedorUsa as mesmas ferramentas e conhecimento atual
Compute
Storage
Management Connectivity Access controlFlexible
APIsInformation Marketplace
Reporting
Relational data
Management
Data SyncReporting &
BI
Billing & Payments
Flexible APIs
Information Marketplac
e
SQL Azure
Um banco de dados relacional na nuvem.Modelo de programação simétricoAcesso via ADO.NET, ODBC, TDS v7.3+Administração via SQL Server Management Studio ou pelo portal SQL Azure
Data Sync
Database Reporting
SQL Azurehttps://windows.azure.com/Default.aspx
Windows Azure AppFabric
Conexões seguras entre serviços e publicaçãoAzure AppFabric Service Bus
Controle de acesso baseado em declaraçõesAzure AppFabric Access Control
Caching de dados para aplicações na nuvemAzure AppFabric Caching
CachingService Bus
Access Control
Palestras Relacionadas
APPI 302 - Hospedagem de serviços e workflows com o Windows Server AppFabric Hosting
APPI 303 - Aplicações de alto desempenho e Cache Distribuído com o Windows Server AppFabric
APPI 304 - Monitoração integrada de serviços e workflows com o Windows Server AppFabric
APPI305 - Criando aplicações prontas para nuvem
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.