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.