Arquitetura de Referência
na Plataforma Microsoft e
Windows Azure
APPI 301
Alexandre Ricardo Nardi
Consultor Sênior
Microsoft Brasil
Arquitetura “pra” quê?
The Winchester “Mystery” House
38 anos de construção – 147 operários e 0 arquitetos
160 salas – 40 quartos, 6 cozinhas, 2 subsolos, 950 portas
65 portas para paredes, 13 escadas abandonadas, 24 clarabóias
no chão
Sem sequer um rascunho de arquitetura
Agenda
Apresentar uma visão sobre capacidades
de uma plataforma de aplicações.
Apresentar uma introdução sobre
computação em nuvem e o Windows
Azure.
Um modelo de capacidades para a
plataforma Microsoft
Pilares da Plataforma de Aplicações
Plataforma de Aplicações
Serviços de Desenvolvimento
Serviços de Armazenamento e BI
Serviços de Integração
Serviços de Gerenciamento
Serviços de Hospedagem
Serviços de Segurança
Um modelo de capacidades para a
plataforma Microsoft
Pilares da Plataforma de Aplicações
Plataforma de Aplicações
Desenvolvimento
Armazenamento
VS2010, UML, Unit Test, Coded UI Test, .NET
Framework, Share Point, SQL Server, TFS
SQL Server, Master Data Services, SSIS,
StreamInsight, SQL Azure
Integração
Gerenciamento
BizTalk, ESB Toolkit, UDDI 3.0, SQL
Server, SSIS, SharePoint
Hospedagem
Windows Server AppFabric, WAS, IIS,
Windows Azure, Azure AppFabric
System Center Suite, Opalis, AVICode
Segurança
WIF, ADFS 2.0, ForeFront, AD, SQL
Front-End
Clients
Arquitetura
geral de
serviços
Web Browser
AJAX & RIA
Silverlight
WPF &
WinForms
Mobile Clients
• Serviços oferecem
funcionalidades para
consomem serviços,
por exemplo.
Middle Tier
Clients
• Aplicações RIAs
Call Directly
inúmeros clientes.
ASP.NET
Pages
Outros
Serviços
• Dados são acessados
indiretamente através
• Podemos trabalhar
com inúmeros modelos
de serviços.
Back-End
Services
de serviços.
WCF Services
• Implementa Entidades, Tarefas e Serviços
• Provê Acesso a Dados
• Exporta a Lógica da Aplicação
• Entre Web Services
Front-End Clients
Call Directly
Opções de
serviços
Middle Tier Clients
SOAP e serviços
workflows, diferentes
fatores devem ser
aplicação.
Back-End Services
avaliados na
WCF Services
• Definido através de código
• Modelos de serviços por entidades
WCF Workflow Services
• Definição visual (gráfica)
• Suporte para processos de longa duração
• Modelo de serviços por tarefas.
Windows Server AppFabric
Monitoração e Hospedagem de serviços e
workflows
WCF Services
IIS | WAS |
Windows Server
AppFabric
WCF
Workflow
Services
O que é WCF?
Windows Communication Foundation
Web
Services
Named
Pipes
filas
MSMQ
Métodos
Outros
protocolos
Serviço
Cliente
Behaviors
TCP
SOAP
HTTP
WCF
Transações
Hospedagem
O que é WF?
Workflows e
Processos
Windows Workflow Foundation
filas
MSMQ
Named
Pipes
Cliente
WF
Runtime
TCP
SOAP
HTTP
Persistência
WCF
Transações
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 AppFabric
Monitoraçã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 Arquitetura
Segundo o App Arch Guide v2.0
Web Application
Rich Client Application
Rich Internet Application
Mobile Application
Service Application
Hosted and Cloud Services / Application
Office Business Application
SharePoint LOB Application
http://apparchguide.codeplex.com/
Web Application
ASP.NET
WebForms 4.0
ASP.NET MVC 3
ASP.NET AJAX
4.0
ASP.NET Chart
Control
ASP.NET
Dynamic Data
Windows Application
Rich Application:
WPF 4.0
WCF 4.0
WF 4.0
MEF
Managed
Extensibility
Framework
RIA Application
Rich Internet
Application:
Silverlight 4.0
WCF RIA Services
WCF Data
Services
REST, POX,
JSON, ATOM,
OData, etc.
Orientação a Serviços
WCF 4.0
WF 4.0
PLINQ
Dynamic
Language
Runtime
IIS 7.5/WAS
Windows
Server AppFabric
Application Architecture Guide v2
http://apparchguide.codeplex.com/
Templates prontos no Visual Studio
Arquitetura de Referência
Corporativa
Diagrama Conceitual de Arquitetura de
Composição
Camada Cliente
Cliente PC
Browser
Office
Desktop
Cliente Mobile
Gadgets
IM
Speech
SMS/IM
Browser
Embedded
Office
Client
Devices
Consoles
Apresentação Web
Static
Dynamic
RIA
Acesso Programático
Streaming
RSS
REST
Web Services
VoiceXML
SMS
SMTP
SOAP
Aplicação
Regras de Apresentação
Regras de Negócio
Processos de Negócios
Camada Infraestrutura
Persistência
Arq
Relacional
Mensageria
Blob
Table
Portal
Web Parts
Pages
Async Queue/Bus
Peer to Peer
Autenticação
Conteúdo Multimidia
Search
Imagens
Fundações
Videos
Workflows
Identidade / Acesso
Autorização
Integração
Streaming
Protocolos
Adaptadores
Human WF
Serviços Corporativo
EIS
Computação
Físico Dedicados
On Premises
Físico Compartilhado
Virtual Simples
Hoster
System WF
Virtual Dinâmico
Cloud
LDAP
Gerenciamento / Monitoração / QoS
Camada Aplicação
Arquitetura de Composição
Um portal hospedado na infraestrutura local
Software Cliente
Cliente PC
Browser
Office
Client
Cliente Mobile
Gadgets
IM
Speech
SMS/IM
Browser
Embedded
Office
Client
Devices
Consoles
Software Aplicativo
Apresentação Web
Static
Dynamic
RIA
Acesso Programático
Streaming
RSS
REST
Web Services
VoiceXML
SOAP
SMS
SMTP
Aplicação
Presentation (Web Role)
Business Logic (Worker Role)
Infraestrutura
Storage
File
Relational
Blob
Messaging
Table
Async Queue/Bus
Fundações
Identity & Access
Peer to Peer
Authentication
Authorization
Workflow
Event Based
Computação
Physical, Dedicated
On Premises
Physical, Shared
Hoster
Virtual, Single
Virtual, Scalable
Cloud
Worker Based
Arquitetura de Composição
Uma aplicação hospedada no Windows Azure
Software Cliente
Cliente PC
Browser
Office
Client
Cliente Mobile
Gadgets
IM
Speech
SMS/IM
Browser
Embedded
Office
Client
Devices
Consoles
Software Aplicativo
Apresentação Web
Static
Dynamic
RIA
Acesso Programático
Streaming
RSS
REST
Web Services
VoiceXML
SOAP
SMS
SMTP
Aplicação
Presentation (Web Role)
Business Logic (Worker Role)
Infraestrutura
Storage
File
Relational
Blob
Messaging
Table
Async Queue/Bus
Fundações
Identity & Access
Peer to Peer
Authentication
Authorization
Workflow
Event Based
Computação
Physical, Dedicated
On Premises
Physical, Shared
Hoster
Virtual, Single
Virtual, Scalable
Cloud
Worker Based
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
Camada Cliente
Cliente PC
Browser
Office
Desktop
Cliente Mobile
Gadgets
IM
Speech
SMS/IM
Browser
Embedded
Office
Client
Devices
Consoles
Camada Aplicação
Apresentação Web
Static
Dynamic
RIA
Acesso Programático
Streaming
RSS
REST
Web Services
VoiceXML
SMS
SMTP
SOAP
Aplicação
Regras de Apresentação
Regras de Negócio
Processos de Negócios
Camada Infraestrutura
Persistência
Arq
Relacional
Mensageria
Blob
Table
Portal
Web Parts
Pages
Async Queue/Bus
Peer to Peer
Autenticação
Conteúdo Multimidia
Search
Imagens
Fundações
Videos
Workflows
Identidade / Acesso
Autorização
Integração
Streaming
Protocolos
Adaptadores
Human WF
Serviços Corporativo
EIS
Computação
Físico Dedicados
On Premises
Físico Compartilhado
Virtual Simples
Hoster
System WF
Virtual Dinâmico
Cloud
LDAP
O que é Cloud Computing?
É um estilo de computação que
oferece escalabilidade massiva de
recursos computacionais com
tecnologias de Internet e
provisionamento dinâmico.
Custos com infraestrutura própria
CAPACIDADE DA TI
On-premise
Custo
Inicial de
Hardware
“Falta“ de
capacidades
Alocação de
capacidades
Previsão de
Carga
“Desperdício“ de
capacidades
Custo fixo das
capacidades
contratadas
Carga Atual
Capacidade ociosa
com a redução da
carga
TEMPO
Computação como serviço
Provisionamento dinâmico
CAPACIDADE DA TI
Previsão de
Carga
Redução dos
investimentos
iniciais
Alocação de
capacidades
Sem “falta“ de
capacidades
Redução do
“excesso de
TI“
Carga Atual
TEMPO
Redução das
capacidades nos
momentos de
redução da carga
Tipos de Serviços
“IaaS”
Infrastructure-as-a-Service
“SaaS”
Software-as-a-Service
hospedar
consumir
“PaaS”
Platform-as-a-Service
construir
O que é o Windows Azure?
Uma plataforma como serviço (PaaS)
empresas
usuários
Controlador da
Malha de Servidores
Plataforma Windows Azure
Storage
Compute
Management
Reporting
Relational data
Billing & Payments
Management
Data Sync
Connectivity
Access control
Flexible
Flexible
APIs
APIs
Information
Marketplac
e
Information
Reporting &
Marketplace
BI
Patterns de aplicação para o
Windows Azure
Patterns para a nuvem
“Crescimento Rápido”
Período
Inativo
uso
médio
tempo
Computação
Computação
“On / Off”
uso
médio
tempo
Negócio: fazer processamento
batch periódico.
Negócio: demanda crescente
de usuários e requisições
Cenário: Análise de risco de
crédito feito mensalmente
Cenário: Sindicalização digital,
startups, eCommerce, etc.
Exemplo: Análise de Risco,
Simulações de Monte Carlo
Exemplo: Associated
Press Breaking News API
Patterns para a nuvem
“Carga sazonal”
Uso médio
Computação
Computação
“Carga não prevista”
tempo
Uso médio
tempo
Negócio: tratar de forma
segura picos de demanda em
seu negócio.
Negócio: responder a picos de
uso dentro do ciclo de negócio
previsto.
Cenário: campanhas de
marketing, vendas de tickets,
situações de emergência.
Cenário: sistemas de
eCommerce, portal interno de
pagto, websites corporativos
Exemplo:
Exemplo:
Plataforma de Serviços na
Nuvem
Plataforma Windows Azure
Storage
Compute
Management
Reporting
Relational data
Billing & Payments
Management
Data Sync
Connectivity
Access control
Flexible
Flexible
APIs
APIs
Information
Marketplac
e
Information
Reporting &
Marketplace
BI
SQL Azure
Um banco de dados relacional na nuvem.
Modelo de programação simétrico
Acesso via ADO.NET, ODBC, TDS v7.3+
Administração via SQL Server Management
Studio ou pelo portal SQL Azure
SQL Azure
https://windows.azure.com/Default.aspx
Windows Azure AppFabric
Conexões seguras entre serviços e publicação
Azure AppFabric Service Bus
Controle de acesso baseado em declarações
Azure AppFabric Access Control
Caching de dados para aplicações na nuvem
Azure AppFabric Caching
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
Get the free mobile app for your phone
http:/ / gettag.mobi
http://technet.microsoft.com/pt-br
Get the free mobile app for your phone
http:/ / gettag.mobi
http://msdn.microsoft.com/pt-br
Não esqueça de
preencher sua avaliação
online
www.teched.com.br/avaliacao
Get the free mobile app for your phone
http:/ / 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.
Download

Arquitetura de Referência na Plataforma Microsoft e Windows Azure