Plataforma Windows Azure




                                                            David Chou
                                              david.chou@microsoft.com
                                                blogs.msdn.com/dachou

Tradução: Prof. Eng. Sylvio Silveira Santos
http://soa4you.wordpress.com
Tipos de Nuvens

                       Sistemas                                Infrastrutura                                               Plataforma




                                                                                       Você administra
                       Privados                               (Como Serviço)                                             (Como Serviço)
                     (On-Premise)



                                            Você administra
                       Aplicações                                 Aplicações                                                 Aplicações

                        Runtimes                                   Runtimes                                                   Runtimes




                                                                                                                                                  Administrado pelo fornecedor
                   Segurança & Integração                     Segurança & Integração                                     Segurança & Integração




                                                                                          Administrado pelo fornecedor
 Você administra




                    Bases de Dados                             Bases de Dados                                             Bases de Dados

                       Servidores                                 Servidores                                                 Servidores

                      Virtualização                              Virtualização                                              Virtualização

                      Servidor HW                                Servidor HW                                                Servidor HW

                    Armazenamento                              Armazenamento                                              Armazenamento

                          Redes                                      Redes                                                      Redes
Tipos de Nuvens

     Privativas     Infraestrutura   Plataforma
     (On-Premise)   (Como Serviço)   (Como Serviço)
Um Mundo Híbrido


     Consistencia e Controle       Escalabilidade & Disponibilidade

Nuvem Privada                                           Nuvem Pública
 (on-premise)                                           (off-premise)


Desempenho em Tempo Real             Redundancia e Resiliencia
    Segurança e Privacidade          Alcance Global
                  Customização       Provisionamento Fácil
                Recursos Físicos     Recursos Abstratos
            Heterogeneidade          Homogeneidade
A Nuvem da Microsoft
Aproximadamente 100 Centros de Processamento de Dados Distribuídos
Globalmente




 Quincy, WA       Chicago, IL   San Antonio, TX   Dublin, Irlanda   Geração 4 DCs
A Nuvem da Microsoft
Categorias de Serviços

                         Serviços de Aplicações


                         Serviços de Software


                           Platform Services




                     Serviços de Infraestrutura
A Plataforma Windows Azure
    Escala da Internet, uma fábrica nas nuvens de elevada disponibilidade
    Data Centers da Microsoft globalmente distribuidos
    Certificações ISO/IEC 27001:2005 e SAS 70 – Certificação Tipo I e Tipo II
    Consumo e utilização baseado em preço justo: classe empresarial SLA



    Computação – auto-                 Dados – escalabilidade            Service Bus – conectividade
     provisionamento de 64-bits;         maciça e bancos de dados           de aplicações on-premise;
     aplicações residentes em            relacionais altamente              Web Services amigáveis,
     containers em Windows               consistentes; geo-replicação       seguros, federados, através
     Server VMs; suporta ampla           e geo-localização de dados         de fire-walls e menssageria
     faixa de modelos de                Processamento – relacional,        intermediária; queues de
     aplicação                           queries, buscas, relatórios,       informações duráveis e de
    Armazenamento – Tabelas             analítica em dados                 fácil descobrimento
     com alta disponibilidade,           estruturados, semi-               Controle de Acesso –
     blobs e filas com serviços de       estruturados e não                 Identificação federada
     armazenamento em cache              estruturados                       dirigida por regras;
    Linguagens – .NET 3.5 (C#,         Integração – sincronização e       federação AD; autorizações
     VB.NET, etc.), IronRuby,            replicação de bases de             baseadas em pedidos
     IronPython, PHP, Java, código       dados on-premise com              Workflows – orquestrações
     nativo Win32                        outras fontes de dados             de serviços via atividades
                                                                            baseadas em REST
Preços

   Computação                                            Ediçaõ Web (1GB)           Barramento de Serviços
        • $0.12 / CPU hora                                  • $9.99 / mês               • $0.15 / 100k mensagens
   Armazenagem                                           Business Edition (10GB)    Controle de Acesso
        • $0.15 / GB / mês                                  • $99.99 / mês              • $0.15 / 100k tokens
        • $0.01 / 10k transações /                        Largura de Faixa           Largura de Faixa
            mês
                                                            • $0.10 in / GB             • $0.10 in / GB
   Largura de Faixa
                                                            • $0.15 out / GB            • $0.15 out / GB
        • $0.10 in / GB
        • $0.15 out / GB

     Virtual Machine instances                            Armazenamento de Blobs      Ingresso/Egresso
         Host OS    Windows Server 2008 x64               Armazenamento de Tabelas    (to/from sòmente
        Guest OS    Windows Server 2008 Enterprise x64    Múltiplas réplicas          Internet)
      Hypervisor    Hyper-V
             CPU    1.5 - 1.7 GHz x64 equivalent
        Memory      1.7GB
        Network     100Mbps
Transient storage   250GB
     Balanceadores de carga, roteadores, etc.
     Gestão de Serviços Automatizados
      - Operações da Fabric Controller
        (deploy/upgrade/delete/scale)
      - Programação de balanceamento de
        carga
Garantia de Serviços




                                                                     O barramento
                                                    Serviços de      de serviços
   Tudo que está     Seu serviço é   As bases de    armazena-        (.NET Service
   rodando é         conectado e     dados são      mento de facil   Bus endpoint)
   monitorado        acessado via    conectadas     acesso, com      terá
   continuamente     Web             ao             elevada          conetividade
                                     respectivo     conectividade    externa
   Se o aplicativo   Os papeis
   ou rotina for
                                     gateway na
                     diversos de     Internet       Seus pedidos     Solicitações
   corrompido,
                     acesso na                      de               de operação
   nós
   detectamos        Internet tem    Monitora-      armazenagem      de mensagem
   imediatamente     conectividade   mento          serão            serão
   e tomamos         externa         disponivel a   processados      processadas
   medidas                           cada 5         de forma bem     de forma a
   corretivas                        minutos de     sucedida         serem bem
                                     intervalo                       sucedidas
 Gerenciamento
 Automático dos
    Sistemas         >99.95%         >99.9%         >99.9%           >99.9%
Beneficios

    DEMANDAS DE      DEMANDAS DE      OFERECIMENTOS DA PLATAFORMA
      NEGÓCIOS        TECNOLOGIA      WINDOWS AZURE
                                      • Solução efetiva em custos para gestão de recursos de TI
                                      • Menos infra-estrutura para comprar/configurar e
     Custos Mais       Eficiencia       suportar
                                      • TCO mais baixo
       Baixos                         • Custos previsiveis

                                      • Foco na disponibilidade de software eficiente
                                        e não em gerenciar infra-estrutura
     Permaneça         Inovação       • Monetização de novas ofertas rápidamente sem
     Competitivo                        investimento para cobranças ou outras tecnologias
                                        habilitadoras, como pagamentos.

                                      • Velocidade de desenvolvimento
                                      • Inter-operacionalidade
    Geração Rápida                    • Aproveitamento de IP existente
      de Novos         Agilidade      • Disponibilidade simplificada na Web
       Retornos                       • Escalonamento up ou down de acordo com
                                        necessidade do negócio
                                      • Acesso rápido ao mercado

                                      •   Serviço exequivel
        Riscos                        •   SLAs (Service Level Agreements)
                     Exequibilidade
      Reduzidos                       •   Segurança
                                      •   Centros globais de processamento de dados
Plataformas de Escolha
http://www.azure.com
Registre-se no Portal de
Desenvolvedores da
Plataforma Windows
Azure
     Acesso ao Windows
     Azure
     Ferramentas para
     desenvolvedores
     White papers
     Amostras de aplicações

Planeje aplicações piloto,
provas de conceitos e
sessões de projetos de
arquitetura com parceiros
Windows Azure
Arquitetura de Aplicações
Modelos de Aplicações
Hospedagem Web                          Computação de Alto Desempenho
    Infra-estrutura em escala maciça       Processamento paralelo e
    Gerência de estouro e overflow          distribuido
    Sites temporários e ad-hoc             Modelagem e simulação maciças

Hospedagem de Aplicações                    Analítica avançada

    Extensões “on-premise”             Compartilhamento de Informação
    Aplicações compostas                   Repositorios comuns de dados
    Agentes automaticos / jobs             Dados referenciados

Hospedagem & Processamento                  Knowledge Mgmt e descoberta

    Renderização CGI                   Processos Colaborativos
    Transcodificação de conteudo           Integração multi-empresarial
    Streaming de midia                     B2B e e-commerce

Armazenamento Distribuído                   Gestão de Suprimentos

    Armazenamento externo e backup         Ciências da Saude e da Vida
                                            Serviços em dominios especificos
Arquitetura de Aplicações em Escala da Internet

Projeto                                             Dados e Conteúdo
      Escalonamento horizontal                           De-normalização
      Composição SOA                                     Particionamento lógico
      Consistencia eventual                              Distribuição em cache de memória
      Tolerancia a erros (falhas esperadas)              Diversas opções de armazenamento de
                                                           dados (lida com dados persistentes e
Segurançca                                                 transientes, relacionais e não estruturados,
      Autenticação com base em pedidos e                  texto e binario, leitura e escrita, etc.)
       controle de acesso
                                                    Processos
      Identidade federada
                                                          Componentes fracamente acoplados
      Criptografia de dados e controle de chaves
                                                          Processamento paralelo e distribuido
Administração                                             Comunicação assincrona distribuida
      Automação direcionada por políticas                Idempotente (lida com duplicidade)
      Percepção de ciclo-de-vida das aplicações          Isolamento (separação de atributos)
      Trabalho com dados dinamicos e mudanças
       de configuração
Arquitetura de Aplicações em Escala da Internet
 Apresentação
 • ASP.NET C#, PHP, Java
 • Cache distribuído in-memory




 Serviços
 •   .NET C#, Java, codigo nativo
 •   Cache de memória distribuído
 •   Processos assíncronos
 •   Processos paralelos distribuídos
 •   Armazenamento de arquivos
     transientes


 Conectividade
 •   Enfileiramento de mensagens
 •   Orquestração de serviços
 •   Identitdade de federação                      SERVICE    ACCESS   WORK
                                                     BUS     CONTROL   FLOWS
 •   Controle de acesso com base em solicitações
 •   Conectividade a serviços externos



 Armazenamento
 • Dados relacionais e transacionais
 • Bases de Dados federadas
 • Dados não-estruturados,
   de-normalizados
 • Particionamento lógico
 • Persistencia de arquivos e blobs
 • Armazenamento criptografado
Padrões de Aplicação
Aplicações Web em Nuvem


                 Web            Mobile                   Silverlight     WPF
                Browser         Browser                 Application    Application
Usuário




                                                                                             Jobs
 Enterprise     ASP.NET                                  Web Svc                                             Application
                 ASP.NET                                  ASP.NET                          (Worker
                                                                                            ASP.NET
 Application   (Web Role)
                  ASP.NET                               (Web Role)
                                                           ASP.NET                            ASP.NET          Service
                (Web Role)
                   ASP.NET                               (Web Role)
                                                            ASP.NET                        (Web Role)
                                                                                            Role)
                                                                                               ASP.NET
                 (Web Role)
                     ASP.NET                              (Web Role)
                                                              ASP.NET                       (Web Role)
                                                                                                ASP.NET
                  (Web Role)                               (Web Role)                         (Web Role)
                   (Web Role)                               (Web Role)                         (Web Role)
  Enterprise                                                                                                    Data
   Web Svc                                                                                                     Service
                                           Table          Blob
                                                                       Queue
  Enterprise                              Storage       Storage                                               Storage
                                                                       Service
    Data                                  Service       Service                                               Service


  Enterprise                                                                     Access                       Identity
                 User      Application      Reference                                         Workflow
   Identity                                                    Service Bus       Control                      Service
                 Data        Data             Data                                             Service
                                                                                 Service
                                                                                                            Nuvem de
Nuvem                                                                                                       Serviços
Privativa                                                                                                   Públicos
Padrões de Aplicação
Aplicação de Serviços Compostos


                 Web            Mobile                   Silverlight     WPF
                Browser         Browser                 Application    Application
Usuário




                                                                                             Jobs
 Enterprise     ASP.NET                                  Web Svc                                             Application
                 ASP.NET                                  ASP.NET                          (Worker
                                                                                            ASP.NET
 Application   (Web Role)
                  ASP.NET                               (Web Role)
                                                           ASP.NET                            ASP.NET          Service
                (Web Role)
                   ASP.NET                               (Web Role)
                                                            ASP.NET                        (Web Role)
                                                                                            Role)
                                                                                               ASP.NET
                 (Web Role)
                     ASP.NET                              (Web Role)
                                                              ASP.NET                       (Web Role)
                                                                                                ASP.NET
                  (Web Role)                               (Web Role)                         (Web Role)
                   (Web Role)                               (Web Role)                         (Web Role)
  Enterprise                                                                                                    Data
   Web Svc                                                                                                     Service
                                           Table          Blob
                                                                       Queue
  Enterprise                              Storage       Storage                                                Storage
                                                                       Service
    Data                                  Service       Service                                                Service


  Enterprise                                                                     Access                        Identity
                 User      Application      Reference                                         Workflow
   Identity                                                    Service Bus       Control                       Service
                 Data        Data             Data                                             Service
                                                                                 Service
Nuvem                                                                                                       Serviços
Privativa                                                                                                   Públicos
Padrões de Aplicação
Aplicação em Nuvem com Auxílio de Agentes


                 Web            Mobile                   Silverlight     WPF
                Browser         Browser                 Application    Application
Usuário




                                                                                             Jobs
 Enterprise     ASP.NET                                  Web Svc                                             Application
                 ASP.NET                                  ASP.NET                          (Worker
                                                                                            ASP.NET
 Application   (Web Role)
                  ASP.NET                               (Web Role)
                                                           ASP.NET                            ASP.NET          Service
                (Web Role)
                   ASP.NET                               (Web Role)
                                                            ASP.NET                        (Web Role)
                                                                                            Role)
                                                                                               ASP.NET
                 (Web Role)
                     ASP.NET                              (Web Role)
                                                              ASP.NET                       (Web Role)
                                                                                                ASP.NET
                  (Web Role)                               (Web Role)                         (Web Role)
                   (Web Role)                               (Web Role)                         (Web Role)
  Enterprise                                                                                                    Data
   Web Svc                                                                                                     Service
                                           Table          Blob
                                                                       Queue
  Enterprise                              Storage       Storage                                                Storage
                                                                       Service
    Data                                  Service       Service                                                Service


  Enterprise                                                                     Access                        Identity
                 User      Application      Reference                                         Workflow
   Identity                                                    Service Bus       Control                       Service
                 Data        Data             Data                                             Service
                                                                                 Service
Núvem                                                                                                       Serviços
Privativa                                                                                                   Públicos
Padrões de Aplicação
Aplicação com Integração B2B


                 Web            Mobile                   Silverlight     WPF
                Browser         Browser                 Application    Application
Usuário




                                                                                             Jobs
 Enterprise     ASP.NET                                  Web Svc                                             Application
                 ASP.NET                                  ASP.NET                          (Worker
                                                                                            ASP.NET
 Application   (Web Role)
                  ASP.NET                               (Web Role)
                                                           ASP.NET                            ASP.NET          Service
                (Web Role)
                   ASP.NET                               (Web Role)
                                                            ASP.NET                        (Web Role)
                                                                                            Role)
                                                                                               ASP.NET
                 (Web Role)
                     ASP.NET                              (Web Role)
                                                              ASP.NET                       (Web Role)
                                                                                                ASP.NET
                  (Web Role)                               (Web Role)                         (Web Role)
                   (Web Role)                               (Web Role)                         (Web Role)
  Enterprise                                                                                                    Data
   Web Svc                                                                                                     Service
                                           Table          Blob
                                                                       Queue
  Enterprise                              Storage       Storage                                                Storage
                                                                       Service
    Data                                  Service       Service                                                Service


  Enterprise                                                                     Access                        Identity
                 User      Application      Reference                                         Workflow
   Identity                                                    Service Bus       Control                       Service
                 Data        Data             Data                                             Service
                                                                                 Service
Nuvem                                                                                                       Serviços
Privativa                                                                                                   Públicos
Padrões de Aplicação
Aplicações em Grade / Computação Paralela


                 Web            Mobile                   Silverlight     WPF
                Browser         Browser                 Application    Application
Usuário




                                                                                             Jobs
 Enterprise     ASP.NET                                  Web Svc                                             Application
                 ASP.NET                                  ASP.NET                          (Worker
                                                                                            ASP.NET
 Application   (Web Role)
                  ASP.NET                               (Web Role)
                                                           ASP.NET                            ASP.NET          Service
                (Web Role)
                   ASP.NET                               (Web Role)
                                                            ASP.NET                        (Web Role)
                                                                                            Role)
                                                                                               ASP.NET
                 (Web Role)
                     ASP.NET                              (Web Role)
                                                              ASP.NET                       (Web Role)
                                                                                                ASP.NET
                  (Web Role)                               (Web Role)                         (Web Role)
                   (Web Role)                               (Web Role)                         (Web Role)
  Enterprise                                                                                                    Data
   Web Svc                                                                                                     Service
                                           Table          Blob
                                                                       Queue
  Enterprise                              Storage       Storage                                                Storage
                                                                       Service
    Data                                  Service       Service                                                Service


  Enterprise                                                                     Access                        Identity
                 User      Application      Reference                                         Workflow
   Identity                                                    Service Bus       Control                       Service
                 Data        Data             Data                                             Service
                                                                                 Service
Nuvem                                                                                                       Serviços
Privativa                                                                                                   Públicos
Padrões de Aplicação
Aplicações Empresariais Híbridas


                 Web            Mobile                   Silverlight     WPF
                Browser         Browser                 Application    Application
Usuário




                                                                                             Jobs
 Enterprise     ASP.NET                                  Web Svc                                             Application
                 ASP.NET                                  ASP.NET                          (Worker
                                                                                            ASP.NET
 Application   (Web Role)
                  ASP.NET                               (Web Role)
                                                           ASP.NET                            ASP.NET          Service
                (Web Role)
                   ASP.NET                               (Web Role)
                                                            ASP.NET                        (Web Role)
                                                                                            Role)
                                                                                               ASP.NET
                 (Web Role)
                     ASP.NET                              (Web Role)
                                                              ASP.NET                       (Web Role)
                                                                                                ASP.NET
                  (Web Role)                               (Web Role)                         (Web Role)
                   (Web Role)                               (Web Role)                         (Web Role)
  Enterprise                                                                                                    Data
   Web Svc                                                                                                     Service
                                           Table          Blob
                                                                       Queue
  Enterprise                              Storage       Storage                                               Storage
                                                                       Service
    Data                                  Service       Service                                               Service


  Enterprise                                                                     Access                        Identity
                 User      Application      Reference                                         Workflow
   Identity                                                    Service Bus       Control                       Service
                 Data        Data             Data                                             Service
                                                                                 Service
Nuvem                                                                                                       Serviços
Privativa                                                                                                   Púbublicos
Arquitetura do Windows Azure

                NEGÓCIOS              CONSUMIDORES




                           INTERNET
Arquitetura do Windows Azure




                                                                   Fabric
                           Fabric                                controller




                 Compute             Storage


                             O Fabric Controller comunica-se com cada
                             servidor dentro da Fabrica. Ele gerencia o
                             Windows Azure, monitora cada aplicação,
                             decide onde novas aplicações deverão rodar –
                             otimizando a utilização do hardware.
Arquitetura do Windows Azure

                                                    O Fabric Controller automatiza o
                                                    balanceamento de carga e calcula o
                                                    escalonamento de recursos




                                                                               Segurança e Características de Controle
                                                                               incluem armazenamento de encriptação,
                                                                               autenticação de acesso e criptografia
                                                                               “over-the-wire” com uso de HTTPS.
 Computação                       Serviços de Armazenamento                    Certificação com padrões da indústria
 Provê esclabilidade das          Permitem aos clientes fazer                  fazem parte do roadmap do Windows
 aplicações. Desenvolvedores      escalonamento e armazenamento de             Azure.
 podem criar uma combinação de    grandes quantidades de dados – em
 papeis da web e de trabalho      qualquer formato – para qualquer             Centros de Processamento de Dados
 local. Estes papeis podem ser    duração no tempo, pagando apenas             geograficamente distribuídos,
 replicados conforme necessário   pelo que usam ou armazenam.                  “estado da arte” para
 para escalonamento e ampliação                                                armazenamento de seus aplicativos e
 das aplicações e poder de                                                     dados, accessiveis através da Internet
 processamento computacional.                                                  a partir de qualquer ponto que se
                                                                               queira, e por meio de diferentes
                                                                               plataformas e sistemas, tablets e
                                                                               celulares.
Arquitetura do Windows Azure
Fabric Controller




                        Interage com um agente
                        inteligente “Fabric Agent” em cada
                        máquina

                        Monitora cada VM, aplicação e
                        instância

                        Realização de balanceamento de
                        carga, check pointing e
                        recuperação
Arquitetura do Windows Azure
Computação
 OBJETIVO:
 ESCALABILIDADE                        Dois tipos de instâncias: Web Role e Worker Role
                                       As aplicações em Windows Azure são construídas
 Gerenciamento da escalabilidade por   dentro de instâncias - instâncias de papéis na web (web
 meio da replicação de instâncias de   role instances), de trabalho (worker role instances),
 trabalho de acôrdo com as             ou uma combinação de ambas.
 necessidades.

 Permite às aplicações fazerem o
 escalonamento do número de usuários
 e processamento computacional de
 modo independente.




                                          Cada instância roda
                                          em sua própria VM
                                          (virtual machine), que
                                          é replicada de acôrdo
                                          com as necessidades
Arquitetura do Windows Azure
Armazenamento

 OBJETIVO:
 ARMAZENAMENTO ELÁSTICO,
 COM DURABILIDADE                                      Tabelas: dados       Filas (Queues): mensagens
                                                       estruturados
                                      Blobs: dados                          ou solicitações acessadas
                                                       simples, que podem
                                      volumosos,                            de modo série, permitindo
O armazenamento do Windows Azure      não
                                                       ser acessados        interação de papeis “web-
storage é um aplicativo gerenciado                     usando serviços de
                                      estruturados                          roles” e “worker-roles”
                                                       dados ADO.NET
pelo Fabric Controller                (audio, video,
                                      etc)
As aplicações Windows Azure podem
usar armazenamento nativo ou o SQL
Azure

O estado de uma aplicação é mantido
pelos serviços de armazenamento, de
modo que os papeis dos usuários
podem ser replicados conforme as
necessidades
Arquitetura do Windows Azure
Administração dos Serviços

OBJETIVO:
ADMINISTRAÇÃO E CONTROLE DE APLICAÇÕES




                                    Fabric




     O Fabric Controller automatiza o
     gerenciamento de serviços
Opcções de Armazenamento de Dados
                             SQL Server
                                                                                           • SQL Server “on-premises”
                                                                                           • Recursos: governança de
     Dedicado
                                                           Hospedagem                        máquina
                                                                                           • Segurança: SQL Server/OS
                                                             RDBMS
                                                          • Hospedagem SQL Server          Roda seu próprio HA/DR/scale
                                                          • Recursos: governance @ VM
                             Base de                      • Security @ SQL Server/OS
                           Dados SQL
                                                          Roda seu próprio HA/DR/scale
                              Azure
       Recursos




                            (RDBMS)
                           • Servidor DB virtual
                           • Base de Dados ´logica de
                             usuário (LUDB)
                           • Governança de recursos:
                             governance @ LUDB
                           • Segurança @LUDB




Compartilhado

                   Baixo                                                                                       Alto
                                                          “Fricção”/Controle

                  Proposições de Valor:                 Proposições de Valor :           Proposições de Valor :
                    • Auto HA, Tolerância a Falhas        • XSPs, Server Ops               • Controle integral h/w –
                    • Escalabilidade livre de atritos     • SQL CLR                          tamanho/escala
                    • Auto-provisionamento                • 100% de compatibilidade        • 100% de compatibilidade
                    • Elevada compatibilidade
Arquitetura do SQL Azure
                                                                   RDBMS de armazenamento e
Acesso flexivel aos dados em nuvem                                 hospedagem simples
   •   Crie aplicações cliente que acessam dados
       na nuvem via TDS – como se faz no SQL                      Aplicação
                                                                                                                    ODBC, OLEDB,
                                                                                      Aplicação      Aplicação      ADO.Net PHP,
       Server em sua empresa                                         em                                             Ruby, …
                                                                   Browser           REST Cliente    SQL Cliente*
   •   Crie aplicações Web na nuvem em Azure
       utilizando bibliotecas padronizadas
       SQLClient com uso de ADO.NET
   •   Crie interfaces baseadas em nuvem em
       Azure com uso de interfaces de dados                                         Nuvem
       baseadas em REST com ADO.NET Data
       Services e Entity Framework




                                                                                       HTTP+REST
                                                                   HTTP
Nivel baixo de atrito no provisionamento




                                                                                                        TDS
destinado ao armazenamento de dados
                                                                         Windows Azure
   •   Interface Web para provisionamento simples

                                                    Data Center
                                                                     Web App      REST(Astoria)
       de base de dados
                                                                    SQL Client*       ADO.Net +EF
   •   Escalonamento suave de dados dentro das
       necessidades

                                                                                  TDS + TSQL Model
Data Center auto-gerenciável
   •   Manutenção automatizada
                                                                              SQL Azure
   •   Elevada disponibilidade e recuperação de
       dados automatizada
                                                      * Acesso cliente habilitado usando TDS para ODBC,
                                                        ADO.Net, OLEDB, PHP-SQL, Ruby, …
Projeto na Plataforma de Dados

        Conta                       • Objetivo:
          Alcance global Azure         – Uma plataforma de
          Sistema de cobrança            armazenamento contruida para
                                         escalabilidade extrema e baixo
                                         custo
     Possui uma ou mais
                                    • Arquitetura:
         Servidor                      – Uma conta Azure permite
          Metadados da Database          acesso ao SQL Azure
          Unidade de autorização       – Cada conta pode ter um ou
          Unidade geo-localização        mais servidores lógicos
                                           •   Implementados como servidores físicos
                                               múltiplos dentro de uma geo-localização
     Possui uma ou mais
                                       – Cada servidor lógico pode
       Base de Dados                     conter uma ou mais base de
                                         dados lógicas
          Unidade de Consistência          •   Implementadas como dados replicados e
          Contém Usuários,                     particionados através de múltiplas bases
                                               de dados físicas
          Tabelas, Vistas, etc…
Bases de Dados Lógicas de Usuário
• Usa infraestrutura compartilhada na base de dados SQL database e mais:
       – Cada usuário da base de dados é replicado em um ou mais servidores (configuráveis segundo SLA)
       – Solicitações clientes são enviadas ao “servidor primário” para operações de leitura e escrita (com base na sessão SQL)
       – Segurança, bloqueio e isolamento reforçados na conexão SQL
• Tecnologia estado-da-arte: HA de elevada escalabilidade
       – Detecção automática de falhas; solicitações-cliente redirecionadas para novos servidores primários em caso de falhas
       – Elevado padrão de garantia SLA por meio de replicação lógica (réplicas “hot standby”)
       – Gerenciamento automático, correção automática e balanceamento de carga através de um pool de recursos
         compartilhados
• A Base de Dados SQL Azure dispõe de provisionamento e infra-estrutura de cálculos de custos e cobrança

Base de Dados SQL Azure : Provisionamento (Bases de Dados, Contas, Atribuições, …, Medições e Cobranças)

                Máquina 4                                     Máquina 5                                    Máquina 6
               Instância SQL                                 Instância SQL                                Instância SQL
                   SQL DB                                        SQL DB                                       SQL DB
  Usuário     Usuário   Usuário   Usuário         Usuário   Usuário   Usuário   Usuário        Usuário   Usuário   Usuário   Usuário
   DB1         DB2       DB3       DB4             DB1       DB2       DB3       DB4            DB1       DB2       DB3       DB4




                Escalabilidade e Disponibilidade: Fabric, Failover, Replicação e Balanceamento de Carga

            Contratos relativos ao DBA podem ser alterados com fóco no gerenciamento
                    presente nas políticas/lógicas de administração dos sistemas
Modelos de Segurança e Conexão
Segurança
• Usa o modelo tradicional de segurança do SQL
   – Autenticação de logins, mapeamento de usuários e atribuições
   – Autorização para usuários e atribuições em objetos SQL
• Suporte padronizado de logins SQL
   – Logins são sempre username + strings de password
   – O serviço é reforçado com uso de credenciais de segurança por SSL
   – Suporte (futuro) para Federação tipo AD, WLID, etc., como protocolos alternativos
     de autenticação

Conexões
  • Conexões usando bibliotecas de clientes comuns
      – ADO.NET, OLE DB, ODBC, etc.
  • Clientes podem conectar-se diretamente às bases
    de dados
  • Ampla superfície para SQL suportada dentro dos limites da base
    de dados
      – Trabalho futuro deverá relaxar muitas destas restrições
Modelo de Provisionamento
• Contas e provisionamento de srvidores
   – Acesso facilitado por portais baseados em APIs
   – Ex: Enumere meus servidores, mostre-me as
     métricas de utilização, etc
• Cada conta possui um ou mais servidores
   – Ex: srv123.data.database.windows.net
• Cada servidor possui uma base virtual de
                                                               * *
  dados-mestre (Virtual Master Database)
   – Possui um sub-conjunto do SQL Server para uma
     interface-mestre na base de dados (Master DB Interface)
• Cada servidor possui um ou mais logins
  em SQL
   – O sistema cria um logi sysadmin no “server creation”
• Bases de Dados criadas usando “CREATE
  DATABASE”
   – Podem ser chamadas por sysadmin ou por qualquer
     pessoa com permissão de acesso à base de dados (create
     DB permission)
Compatibilidade do Servidor SQL
• O servidor SQL possui muitos padrões para
  cumprimento de suas tarefas
     – A base de dados do SQL Azure suporta um subconjunto
       dos padrões integrais da SQL
     – Com foco na lógica e políticas de administração do
       sistema
     – Os padrões são aplicáveis tanto à base de dados do SQL
       Azure Database como do servidor SQL
          • Isto favorece a migração de aplicações on-premise para e do SQL
            Azure
• A base de dados SQL Azure é um serviço multi-
  inquilino
     – Políticas para gestão de estrangulamento e de controle
       de carga
     – Examplos: limite nas dimensões do Banco de Dados,
       duração das transações, etc.

Entrada do escopo para v1                                          Saída do escopo para v1
 •     Criar/Alterar/Cancelar algo na Base de                      •    CLR
       Dados/Indexar/Examinar                                      •    Alternância de serviços (Service Broker)
 •     Procedimentos armazenados (Transact-SQL)                    •    Transações distribuídas
 •     Disparadores (Triggers)                                     •    Pesquisas distribuidas (Distributed Queries)
 •     Restrições                                                  •    Análise espacial
 •     Variáveis em tabelas, tabelas para controle de              •    Niveis DDL em todos os serviços
       tempo (#t)                                                  •    Todas as vistas físicas e de catálogos em DDL
 •     + muitos outros procedimentos
Cenários de Aplicação

 Aplicações dem Departamentos   Aplicações Web




        Data Hubs               Ofertas ISV/SaaS
Padrões Comuns e Problemas
• Como podemos usar serviços em nuvem para conectar aplicações e
  serviços através de localidades de desenvolvimento?
   – Nuvem-ponte, serviços on-premises e hospedagem de ativos
   – Navegue na rede e nos limites de segurança, de modo seguro e descomplicado
   – Assuma controle da identidade e acesso através de organizações e provedoes de ID
   – Interopere através de linguagens, plataformas e padrões
   – Realize mediação através de protocolos e mapeamento de esquemas (schema
     mapping)
• Clientes necessitam de uma maneira para:




   Conectar a pontos terminais                        Controle & acesso seguro


            Barramento de                                         Controle de
               Serviços                                             Acesso
Serviços .NET oferecem soluções
para desenvolvedores enfrentando estes problemas




            Terminais de Conexão

                                                                      Service Bus

    Barramento de Serviços                              Access Control Service
• Expõe serviços RESTful ou SOAP na Internet        • Authorization management and federation
  através de firewalls e limites NAT                  infrastructure                           firewall
                                                firewall
• Communicação bi-direcional entre                  • Provides internet-scope federated identity
                                                                                               NAT
                                                      integration for distributed applications
  aplicações e serviços por meio de interface
  inter-operavel                                    • Use it to
                                                      • Secure Service Bus communications
• Permite escolher relés, filas roteadores e
                                                      • Manage user-level access to apps across
  outros padrões e tipos de mensagem
                                                        organizations and ID providers
• Permite escalabilidade natural e
  exequibilidade acompanhando crescimento
  de aplicações e serviços
                                                Sua aplicação              Aplicação de Cliente/Parceiro
Serviços .NET são Provedores de Soluções


                                                                                          Controle de Acesso

                         Access Control Service


                                                                              Serviço de Controle de
   1. Define access                               3. Map input claims
   control rules for a                            to output claims
   customer
                          Service Bus
                                                                                      Acesso
•Network abstraction and virtualization infrastructure                  •Integra autorizações em aplicações com a finalidade de
•Enables many common shapes of communication in an                       controlar “o que os usuários tem autorização para fazer”
 efficient and interoperable manner                                     •Integra em um só local múltiplos sistemas de identificação
•Use it to
  6. Check claims
                                                                         através de organizações e provedores de ID
 •Connect applications across any network topology, including           •Permite aplicar regras de controle de acesso com granulação
  firewalls and NAT boundaries
                                                                         fina e simplificadas
 •Exchange data between loosely coupled applications
                                                                        •Comunicações seguras no Barramento de Serviços
                                                                        •Permite elevada escalabilidade, com naturalidade e eficiência,
                                5. Msg w/token                           independentemente do crescimento das aplicações e serviços

Your app                              Customer/partner users & apps
Capacidade do Barramento de Serviços
• Escopo de abrangência da Internet e redes em geral, ligando IP NATs e
  Firewalls com controle de acesso em todos os sistemas federados
   – Comunicação tipo Listen/Send a partir de qualquer dispositivo conectado à
     rede
   – Escopo da Internet para qualquer terminal, por “endpoint Naming” e
     Descoberta
   – NAT/FW Traversal via TCP, TCP/Direct, e HTTP Web Streams


          Espaço de
          Redes                     B
          Privativas          ACS
                                                     ACS

                                Espaço da
              A    ACS                                     D
                                 Internet
                                                     ACS
                              ACS
                                    C
Barramento de Serviços: Capacidades Específicas
• Transferência de dados brutos e estruturados, permitindo
  uso de qualquer forma comum de comunicação
     – Dados Brutos, Texto, XML, JSON, …
     – Datagramas, Sessões, Mensagens Correlacionadas
     – Unicast, Multicast



 A                                     B              Octet-Streams
                                                        Texto
                                                         XML
 A                                     B                 SOAP

                                               JSON             …     …
                                                         XML-
                                                         RPC

                                                          …
 A                                     B
Barramento de Serviços: Capacidades Específicas
• Mensageria de primitivos Built-In, para comunicação
  temporária desacoplada, roteamento e processamento de
  mensagens
   – Tradução para receptores ocasionalmente conectados do tipo
     Push/Pull
   – Metodos publish/subscribe e processamento de mensagem (após
     V1)
                  Push                Pull
            A                                 B

                                   Push
                                              B
                  Push
                                                   C
            A
                                              D
                                                   E
Padrão: Notificação de Fan-Out
(Datagramas tipo Sessionless Unicast ou Multicast)

      Windows Azure, Datacenter, Hosting, Amazon EC2, Google App Engine


           “Worker Role”                         ACS                    App
           App Instance                                 ACS             Instance




                ACS      ACS

      unicast                                          unicast    ACS         ACS   ACS


                                                                              multicast

                                                                                              NATs
                 ACS             ACS




     Cliente           Cliente         Cliente          Cliente         Cliente     Cliente
Padrão: REST Resource Management
(Request/Response HTTP/HTTPS c/ payloads arbitrarios)

      Windows Azure, Datacenter, Hosting, Amazon EC2, Google App Engine

                   Storage                 Storage                Storage


            App                      App                    App
            Instance                 Instance               Instance


                        ACS                                            ACS
                              POST, PUT, DELETE      POST, PUT,
                                                      DELETE                       POST
                                                                       ACS
                                                                                   PUT
                   POST, PUT, DELETE                                               DELETE
                                        ACS
                                                                             ACS
                                                            GET


                        On-Demand „Pull‟ Sync

                                                                        Cache
                        Continuous „Push‟ Sync
                                                             On-Premise App(s)
Padrão: Troca de Documentos
(session-bound, app-level ack‟d em transfer. de documentos +
notificações)

         Hosted                   In-House                    Outsourced
                    ACS


          Storage                   Storage                       Storage

    Fronteira de                                          Sistema de Estoque
                            Sistema de
    E-Commerce                                            / Remessa
                            Pedidos


                                                                                  Pronto
                                                                                  Embarcado
                      PO    ACS                   SO        ACS
                                                                                  Entregue
                                                                            ACS
                      ACK                         ACK


                                                 ACS


                                      Pedido Aceito
   Experiência do Web                 Pedido processado      Experiência do
          Client                                              Cliente HiFi
Padrão: DMZ Externo
(qualquer estilo de comunicação, atravessamento NAT para TCP e HTTP/S)


            Home                                                       Datacenter Interno
                                                       Storage                         Storage
     Storage                   Devices
                                                                         Enterprise
                                                     Enterprise App                               Enterprise
                                                                            App
     Home Automation                                    Instance                                 App Instance
                                                                          Instance
     or Home Media
     Server
                                                                         Balanceamento / Filter Reverse Proxy


                              ACS                          ACS                          ACS
          http(s) / net.tcp


                                    net.tcp/direto




   Experiência Web ou                                                 Experiência Web ou
      Hi-Fi Cliente                                                      Hi-Fi Cliente
Padrão: Integrar Qualquer Coisa
(Sessão limitada, tunelamento de binário bruto para transporte)

              Windows Azure, Datacenter, Hosting, Amazon EC2 (Windows)

                                   Socket Agent      NP Agent


                                   App        ASP.NET      J2EE, JDBC,
                                   Instance   ADO.NET         JMS



      Socket                                              HTTP/HTTPS                         TDS
   Passthrough                                            Passthrough                    Passthrough
                 ACS                                                             ACS
                                                        w/ URI Rewriting


           Socket Bridge                      HTTP Bridge                     NP Bridge

      Exchange/Mail (SMTP/IMAP)
         Active Directory (LDAP)          ERP, CRM, Custom Apps
         System Center (SNMP)              .NET, J2EE, ROR, PHP                  SQL
                    …                                …                          Server

    Infraestrutura On-Premise           Aplicações & Serviços              Dados On-Premise
Obrigado




Tradução: Prof. Eng. Sylvio Silveira Santos
http://soa4you.wordpress.com
                                                                                                                                                Direitos e Copyright : David Chou
                                                                                                                                                       david.chou@microsoft.com
                                                                                                                                                         blogs.msdn.com/dachou

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

A plataforma Azure da Microsoft

  • 1.
    Plataforma Windows Azure David Chou david.chou@microsoft.com blogs.msdn.com/dachou Tradução: Prof. Eng. Sylvio Silveira Santos http://soa4you.wordpress.com
  • 2.
    Tipos de Nuvens Sistemas Infrastrutura Plataforma Você administra Privados (Como Serviço) (Como Serviço) (On-Premise) Você administra Aplicações Aplicações Aplicações Runtimes Runtimes Runtimes Administrado pelo fornecedor Segurança & Integração Segurança & Integração Segurança & Integração Administrado pelo fornecedor Você administra Bases de Dados Bases de Dados Bases de Dados Servidores Servidores Servidores Virtualização Virtualização Virtualização Servidor HW Servidor HW Servidor HW Armazenamento Armazenamento Armazenamento Redes Redes Redes
  • 3.
    Tipos de Nuvens Privativas Infraestrutura Plataforma (On-Premise) (Como Serviço) (Como Serviço)
  • 4.
    Um Mundo Híbrido Consistencia e Controle Escalabilidade & Disponibilidade Nuvem Privada Nuvem Pública (on-premise) (off-premise) Desempenho em Tempo Real Redundancia e Resiliencia Segurança e Privacidade Alcance Global Customização Provisionamento Fácil Recursos Físicos Recursos Abstratos Heterogeneidade Homogeneidade
  • 5.
    A Nuvem daMicrosoft Aproximadamente 100 Centros de Processamento de Dados Distribuídos Globalmente Quincy, WA Chicago, IL San Antonio, TX Dublin, Irlanda Geração 4 DCs
  • 6.
    A Nuvem daMicrosoft Categorias de Serviços Serviços de Aplicações Serviços de Software Platform Services Serviços de Infraestrutura
  • 7.
    A Plataforma WindowsAzure  Escala da Internet, uma fábrica nas nuvens de elevada disponibilidade  Data Centers da Microsoft globalmente distribuidos  Certificações ISO/IEC 27001:2005 e SAS 70 – Certificação Tipo I e Tipo II  Consumo e utilização baseado em preço justo: classe empresarial SLA  Computação – auto-  Dados – escalabilidade  Service Bus – conectividade provisionamento de 64-bits; maciça e bancos de dados de aplicações on-premise; aplicações residentes em relacionais altamente Web Services amigáveis, containers em Windows consistentes; geo-replicação seguros, federados, através Server VMs; suporta ampla e geo-localização de dados de fire-walls e menssageria faixa de modelos de  Processamento – relacional, intermediária; queues de aplicação queries, buscas, relatórios, informações duráveis e de  Armazenamento – Tabelas analítica em dados fácil descobrimento com alta disponibilidade, estruturados, semi-  Controle de Acesso – blobs e filas com serviços de estruturados e não Identificação federada armazenamento em cache estruturados dirigida por regras;  Linguagens – .NET 3.5 (C#,  Integração – sincronização e federação AD; autorizações VB.NET, etc.), IronRuby, replicação de bases de baseadas em pedidos IronPython, PHP, Java, código dados on-premise com  Workflows – orquestrações nativo Win32 outras fontes de dados de serviços via atividades baseadas em REST
  • 8.
    Preços Computação  Ediçaõ Web (1GB)  Barramento de Serviços • $0.12 / CPU hora • $9.99 / mês • $0.15 / 100k mensagens  Armazenagem  Business Edition (10GB)  Controle de Acesso • $0.15 / GB / mês • $99.99 / mês • $0.15 / 100k tokens • $0.01 / 10k transações /  Largura de Faixa  Largura de Faixa mês • $0.10 in / GB • $0.10 in / GB  Largura de Faixa • $0.15 out / GB • $0.15 out / GB • $0.10 in / GB • $0.15 out / GB Virtual Machine instances Armazenamento de Blobs Ingresso/Egresso Host OS Windows Server 2008 x64 Armazenamento de Tabelas (to/from sòmente Guest OS Windows Server 2008 Enterprise x64 Múltiplas réplicas Internet) Hypervisor Hyper-V CPU 1.5 - 1.7 GHz x64 equivalent Memory 1.7GB Network 100Mbps Transient storage 250GB Balanceadores de carga, roteadores, etc. Gestão de Serviços Automatizados - Operações da Fabric Controller (deploy/upgrade/delete/scale) - Programação de balanceamento de carga
  • 9.
    Garantia de Serviços O barramento Serviços de de serviços Tudo que está Seu serviço é As bases de armazena- (.NET Service rodando é conectado e dados são mento de facil Bus endpoint) monitorado acessado via conectadas acesso, com terá continuamente Web ao elevada conetividade respectivo conectividade externa Se o aplicativo Os papeis ou rotina for gateway na diversos de Internet Seus pedidos Solicitações corrompido, acesso na de de operação nós detectamos Internet tem Monitora- armazenagem de mensagem imediatamente conectividade mento serão serão e tomamos externa disponivel a processados processadas medidas cada 5 de forma bem de forma a corretivas minutos de sucedida serem bem intervalo sucedidas Gerenciamento Automático dos Sistemas >99.95% >99.9% >99.9% >99.9%
  • 10.
    Beneficios DEMANDAS DE DEMANDAS DE OFERECIMENTOS DA PLATAFORMA NEGÓCIOS TECNOLOGIA WINDOWS AZURE • Solução efetiva em custos para gestão de recursos de TI • Menos infra-estrutura para comprar/configurar e Custos Mais Eficiencia suportar • TCO mais baixo Baixos • Custos previsiveis • Foco na disponibilidade de software eficiente e não em gerenciar infra-estrutura Permaneça Inovação • Monetização de novas ofertas rápidamente sem Competitivo investimento para cobranças ou outras tecnologias habilitadoras, como pagamentos. • Velocidade de desenvolvimento • Inter-operacionalidade Geração Rápida • Aproveitamento de IP existente de Novos Agilidade • Disponibilidade simplificada na Web Retornos • Escalonamento up ou down de acordo com necessidade do negócio • Acesso rápido ao mercado • Serviço exequivel Riscos • SLAs (Service Level Agreements) Exequibilidade Reduzidos • Segurança • Centros globais de processamento de dados
  • 11.
  • 12.
    http://www.azure.com Registre-se no Portalde Desenvolvedores da Plataforma Windows Azure Acesso ao Windows Azure Ferramentas para desenvolvedores White papers Amostras de aplicações Planeje aplicações piloto, provas de conceitos e sessões de projetos de arquitetura com parceiros Windows Azure
  • 13.
  • 14.
    Modelos de Aplicações HospedagemWeb Computação de Alto Desempenho  Infra-estrutura em escala maciça  Processamento paralelo e  Gerência de estouro e overflow distribuido  Sites temporários e ad-hoc  Modelagem e simulação maciças Hospedagem de Aplicações  Analítica avançada  Extensões “on-premise” Compartilhamento de Informação  Aplicações compostas  Repositorios comuns de dados  Agentes automaticos / jobs  Dados referenciados Hospedagem & Processamento  Knowledge Mgmt e descoberta  Renderização CGI Processos Colaborativos  Transcodificação de conteudo  Integração multi-empresarial  Streaming de midia  B2B e e-commerce Armazenamento Distribuído  Gestão de Suprimentos  Armazenamento externo e backup  Ciências da Saude e da Vida  Serviços em dominios especificos
  • 15.
    Arquitetura de Aplicaçõesem Escala da Internet Projeto Dados e Conteúdo  Escalonamento horizontal  De-normalização  Composição SOA  Particionamento lógico  Consistencia eventual  Distribuição em cache de memória  Tolerancia a erros (falhas esperadas)  Diversas opções de armazenamento de dados (lida com dados persistentes e Segurançca transientes, relacionais e não estruturados,  Autenticação com base em pedidos e texto e binario, leitura e escrita, etc.) controle de acesso Processos  Identidade federada  Componentes fracamente acoplados  Criptografia de dados e controle de chaves  Processamento paralelo e distribuido Administração  Comunicação assincrona distribuida  Automação direcionada por políticas  Idempotente (lida com duplicidade)  Percepção de ciclo-de-vida das aplicações  Isolamento (separação de atributos)  Trabalho com dados dinamicos e mudanças de configuração
  • 16.
    Arquitetura de Aplicaçõesem Escala da Internet Apresentação • ASP.NET C#, PHP, Java • Cache distribuído in-memory Serviços • .NET C#, Java, codigo nativo • Cache de memória distribuído • Processos assíncronos • Processos paralelos distribuídos • Armazenamento de arquivos transientes Conectividade • Enfileiramento de mensagens • Orquestração de serviços • Identitdade de federação SERVICE ACCESS WORK BUS CONTROL FLOWS • Controle de acesso com base em solicitações • Conectividade a serviços externos Armazenamento • Dados relacionais e transacionais • Bases de Dados federadas • Dados não-estruturados, de-normalizados • Particionamento lógico • Persistencia de arquivos e blobs • Armazenamento criptografado
  • 17.
    Padrões de Aplicação AplicaçõesWeb em Nuvem Web Mobile Silverlight WPF Browser Browser Application Application Usuário Jobs Enterprise ASP.NET Web Svc Application ASP.NET ASP.NET (Worker ASP.NET Application (Web Role) ASP.NET (Web Role) ASP.NET ASP.NET Service (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) (Web Role) (Web Role) (Web Role) (Web Role) (Web Role) Enterprise Data Web Svc Service Table Blob Queue Enterprise Storage Storage Storage Service Data Service Service Service Enterprise Access Identity User Application Reference Workflow Identity Service Bus Control Service Data Data Data Service Service Nuvem de Nuvem Serviços Privativa Públicos
  • 18.
    Padrões de Aplicação Aplicaçãode Serviços Compostos Web Mobile Silverlight WPF Browser Browser Application Application Usuário Jobs Enterprise ASP.NET Web Svc Application ASP.NET ASP.NET (Worker ASP.NET Application (Web Role) ASP.NET (Web Role) ASP.NET ASP.NET Service (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) (Web Role) (Web Role) (Web Role) (Web Role) (Web Role) Enterprise Data Web Svc Service Table Blob Queue Enterprise Storage Storage Storage Service Data Service Service Service Enterprise Access Identity User Application Reference Workflow Identity Service Bus Control Service Data Data Data Service Service Nuvem Serviços Privativa Públicos
  • 19.
    Padrões de Aplicação Aplicaçãoem Nuvem com Auxílio de Agentes Web Mobile Silverlight WPF Browser Browser Application Application Usuário Jobs Enterprise ASP.NET Web Svc Application ASP.NET ASP.NET (Worker ASP.NET Application (Web Role) ASP.NET (Web Role) ASP.NET ASP.NET Service (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) (Web Role) (Web Role) (Web Role) (Web Role) (Web Role) Enterprise Data Web Svc Service Table Blob Queue Enterprise Storage Storage Storage Service Data Service Service Service Enterprise Access Identity User Application Reference Workflow Identity Service Bus Control Service Data Data Data Service Service Núvem Serviços Privativa Públicos
  • 20.
    Padrões de Aplicação Aplicaçãocom Integração B2B Web Mobile Silverlight WPF Browser Browser Application Application Usuário Jobs Enterprise ASP.NET Web Svc Application ASP.NET ASP.NET (Worker ASP.NET Application (Web Role) ASP.NET (Web Role) ASP.NET ASP.NET Service (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) (Web Role) (Web Role) (Web Role) (Web Role) (Web Role) Enterprise Data Web Svc Service Table Blob Queue Enterprise Storage Storage Storage Service Data Service Service Service Enterprise Access Identity User Application Reference Workflow Identity Service Bus Control Service Data Data Data Service Service Nuvem Serviços Privativa Públicos
  • 21.
    Padrões de Aplicação Aplicaçõesem Grade / Computação Paralela Web Mobile Silverlight WPF Browser Browser Application Application Usuário Jobs Enterprise ASP.NET Web Svc Application ASP.NET ASP.NET (Worker ASP.NET Application (Web Role) ASP.NET (Web Role) ASP.NET ASP.NET Service (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) (Web Role) (Web Role) (Web Role) (Web Role) (Web Role) Enterprise Data Web Svc Service Table Blob Queue Enterprise Storage Storage Storage Service Data Service Service Service Enterprise Access Identity User Application Reference Workflow Identity Service Bus Control Service Data Data Data Service Service Nuvem Serviços Privativa Públicos
  • 22.
    Padrões de Aplicação AplicaçõesEmpresariais Híbridas Web Mobile Silverlight WPF Browser Browser Application Application Usuário Jobs Enterprise ASP.NET Web Svc Application ASP.NET ASP.NET (Worker ASP.NET Application (Web Role) ASP.NET (Web Role) ASP.NET ASP.NET Service (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) ASP.NET (Web Role) (Web Role) (Web Role) (Web Role) (Web Role) (Web Role) Enterprise Data Web Svc Service Table Blob Queue Enterprise Storage Storage Storage Service Data Service Service Service Enterprise Access Identity User Application Reference Workflow Identity Service Bus Control Service Data Data Data Service Service Nuvem Serviços Privativa Púbublicos
  • 24.
    Arquitetura do WindowsAzure NEGÓCIOS CONSUMIDORES INTERNET
  • 25.
    Arquitetura do WindowsAzure Fabric Fabric controller Compute Storage O Fabric Controller comunica-se com cada servidor dentro da Fabrica. Ele gerencia o Windows Azure, monitora cada aplicação, decide onde novas aplicações deverão rodar – otimizando a utilização do hardware.
  • 26.
    Arquitetura do WindowsAzure O Fabric Controller automatiza o balanceamento de carga e calcula o escalonamento de recursos Segurança e Características de Controle incluem armazenamento de encriptação, autenticação de acesso e criptografia “over-the-wire” com uso de HTTPS. Computação Serviços de Armazenamento Certificação com padrões da indústria Provê esclabilidade das Permitem aos clientes fazer fazem parte do roadmap do Windows aplicações. Desenvolvedores escalonamento e armazenamento de Azure. podem criar uma combinação de grandes quantidades de dados – em papeis da web e de trabalho qualquer formato – para qualquer Centros de Processamento de Dados local. Estes papeis podem ser duração no tempo, pagando apenas geograficamente distribuídos, replicados conforme necessário pelo que usam ou armazenam. “estado da arte” para para escalonamento e ampliação armazenamento de seus aplicativos e das aplicações e poder de dados, accessiveis através da Internet processamento computacional. a partir de qualquer ponto que se queira, e por meio de diferentes plataformas e sistemas, tablets e celulares.
  • 27.
    Arquitetura do WindowsAzure Fabric Controller Interage com um agente inteligente “Fabric Agent” em cada máquina Monitora cada VM, aplicação e instância Realização de balanceamento de carga, check pointing e recuperação
  • 28.
    Arquitetura do WindowsAzure Computação OBJETIVO: ESCALABILIDADE Dois tipos de instâncias: Web Role e Worker Role As aplicações em Windows Azure são construídas Gerenciamento da escalabilidade por dentro de instâncias - instâncias de papéis na web (web meio da replicação de instâncias de role instances), de trabalho (worker role instances), trabalho de acôrdo com as ou uma combinação de ambas. necessidades. Permite às aplicações fazerem o escalonamento do número de usuários e processamento computacional de modo independente. Cada instância roda em sua própria VM (virtual machine), que é replicada de acôrdo com as necessidades
  • 29.
    Arquitetura do WindowsAzure Armazenamento OBJETIVO: ARMAZENAMENTO ELÁSTICO, COM DURABILIDADE Tabelas: dados Filas (Queues): mensagens estruturados Blobs: dados ou solicitações acessadas simples, que podem volumosos, de modo série, permitindo O armazenamento do Windows Azure não ser acessados interação de papeis “web- storage é um aplicativo gerenciado usando serviços de estruturados roles” e “worker-roles” dados ADO.NET pelo Fabric Controller (audio, video, etc) As aplicações Windows Azure podem usar armazenamento nativo ou o SQL Azure O estado de uma aplicação é mantido pelos serviços de armazenamento, de modo que os papeis dos usuários podem ser replicados conforme as necessidades
  • 30.
    Arquitetura do WindowsAzure Administração dos Serviços OBJETIVO: ADMINISTRAÇÃO E CONTROLE DE APLICAÇÕES Fabric O Fabric Controller automatiza o gerenciamento de serviços
  • 32.
    Opcções de Armazenamentode Dados SQL Server • SQL Server “on-premises” • Recursos: governança de Dedicado Hospedagem máquina • Segurança: SQL Server/OS RDBMS • Hospedagem SQL Server Roda seu próprio HA/DR/scale • Recursos: governance @ VM Base de • Security @ SQL Server/OS Dados SQL Roda seu próprio HA/DR/scale Azure Recursos (RDBMS) • Servidor DB virtual • Base de Dados ´logica de usuário (LUDB) • Governança de recursos: governance @ LUDB • Segurança @LUDB Compartilhado Baixo Alto “Fricção”/Controle Proposições de Valor: Proposições de Valor : Proposições de Valor : • Auto HA, Tolerância a Falhas • XSPs, Server Ops • Controle integral h/w – • Escalabilidade livre de atritos • SQL CLR tamanho/escala • Auto-provisionamento • 100% de compatibilidade • 100% de compatibilidade • Elevada compatibilidade
  • 33.
    Arquitetura do SQLAzure RDBMS de armazenamento e Acesso flexivel aos dados em nuvem hospedagem simples • Crie aplicações cliente que acessam dados na nuvem via TDS – como se faz no SQL Aplicação ODBC, OLEDB, Aplicação Aplicação ADO.Net PHP, Server em sua empresa em Ruby, … Browser REST Cliente SQL Cliente* • Crie aplicações Web na nuvem em Azure utilizando bibliotecas padronizadas SQLClient com uso de ADO.NET • Crie interfaces baseadas em nuvem em Azure com uso de interfaces de dados Nuvem baseadas em REST com ADO.NET Data Services e Entity Framework HTTP+REST HTTP Nivel baixo de atrito no provisionamento TDS destinado ao armazenamento de dados Windows Azure • Interface Web para provisionamento simples Data Center Web App REST(Astoria) de base de dados SQL Client* ADO.Net +EF • Escalonamento suave de dados dentro das necessidades TDS + TSQL Model Data Center auto-gerenciável • Manutenção automatizada SQL Azure • Elevada disponibilidade e recuperação de dados automatizada * Acesso cliente habilitado usando TDS para ODBC, ADO.Net, OLEDB, PHP-SQL, Ruby, …
  • 34.
    Projeto na Plataformade Dados Conta • Objetivo: Alcance global Azure – Uma plataforma de Sistema de cobrança armazenamento contruida para escalabilidade extrema e baixo custo Possui uma ou mais • Arquitetura: Servidor – Uma conta Azure permite Metadados da Database acesso ao SQL Azure Unidade de autorização – Cada conta pode ter um ou Unidade geo-localização mais servidores lógicos • Implementados como servidores físicos múltiplos dentro de uma geo-localização Possui uma ou mais – Cada servidor lógico pode Base de Dados conter uma ou mais base de dados lógicas Unidade de Consistência • Implementadas como dados replicados e Contém Usuários, particionados através de múltiplas bases de dados físicas Tabelas, Vistas, etc…
  • 35.
    Bases de DadosLógicas de Usuário • Usa infraestrutura compartilhada na base de dados SQL database e mais: – Cada usuário da base de dados é replicado em um ou mais servidores (configuráveis segundo SLA) – Solicitações clientes são enviadas ao “servidor primário” para operações de leitura e escrita (com base na sessão SQL) – Segurança, bloqueio e isolamento reforçados na conexão SQL • Tecnologia estado-da-arte: HA de elevada escalabilidade – Detecção automática de falhas; solicitações-cliente redirecionadas para novos servidores primários em caso de falhas – Elevado padrão de garantia SLA por meio de replicação lógica (réplicas “hot standby”) – Gerenciamento automático, correção automática e balanceamento de carga através de um pool de recursos compartilhados • A Base de Dados SQL Azure dispõe de provisionamento e infra-estrutura de cálculos de custos e cobrança Base de Dados SQL Azure : Provisionamento (Bases de Dados, Contas, Atribuições, …, Medições e Cobranças) Máquina 4 Máquina 5 Máquina 6 Instância SQL Instância SQL Instância SQL SQL DB SQL DB SQL DB Usuário Usuário Usuário Usuário Usuário Usuário Usuário Usuário Usuário Usuário Usuário Usuário DB1 DB2 DB3 DB4 DB1 DB2 DB3 DB4 DB1 DB2 DB3 DB4 Escalabilidade e Disponibilidade: Fabric, Failover, Replicação e Balanceamento de Carga Contratos relativos ao DBA podem ser alterados com fóco no gerenciamento presente nas políticas/lógicas de administração dos sistemas
  • 36.
    Modelos de Segurançae Conexão Segurança • Usa o modelo tradicional de segurança do SQL – Autenticação de logins, mapeamento de usuários e atribuições – Autorização para usuários e atribuições em objetos SQL • Suporte padronizado de logins SQL – Logins são sempre username + strings de password – O serviço é reforçado com uso de credenciais de segurança por SSL – Suporte (futuro) para Federação tipo AD, WLID, etc., como protocolos alternativos de autenticação Conexões • Conexões usando bibliotecas de clientes comuns – ADO.NET, OLE DB, ODBC, etc. • Clientes podem conectar-se diretamente às bases de dados • Ampla superfície para SQL suportada dentro dos limites da base de dados – Trabalho futuro deverá relaxar muitas destas restrições
  • 37.
    Modelo de Provisionamento •Contas e provisionamento de srvidores – Acesso facilitado por portais baseados em APIs – Ex: Enumere meus servidores, mostre-me as métricas de utilização, etc • Cada conta possui um ou mais servidores – Ex: srv123.data.database.windows.net • Cada servidor possui uma base virtual de * * dados-mestre (Virtual Master Database) – Possui um sub-conjunto do SQL Server para uma interface-mestre na base de dados (Master DB Interface) • Cada servidor possui um ou mais logins em SQL – O sistema cria um logi sysadmin no “server creation” • Bases de Dados criadas usando “CREATE DATABASE” – Podem ser chamadas por sysadmin ou por qualquer pessoa com permissão de acesso à base de dados (create DB permission)
  • 38.
    Compatibilidade do ServidorSQL • O servidor SQL possui muitos padrões para cumprimento de suas tarefas – A base de dados do SQL Azure suporta um subconjunto dos padrões integrais da SQL – Com foco na lógica e políticas de administração do sistema – Os padrões são aplicáveis tanto à base de dados do SQL Azure Database como do servidor SQL • Isto favorece a migração de aplicações on-premise para e do SQL Azure • A base de dados SQL Azure é um serviço multi- inquilino – Políticas para gestão de estrangulamento e de controle de carga – Examplos: limite nas dimensões do Banco de Dados, duração das transações, etc. Entrada do escopo para v1 Saída do escopo para v1 • Criar/Alterar/Cancelar algo na Base de • CLR Dados/Indexar/Examinar • Alternância de serviços (Service Broker) • Procedimentos armazenados (Transact-SQL) • Transações distribuídas • Disparadores (Triggers) • Pesquisas distribuidas (Distributed Queries) • Restrições • Análise espacial • Variáveis em tabelas, tabelas para controle de • Niveis DDL em todos os serviços tempo (#t) • Todas as vistas físicas e de catálogos em DDL • + muitos outros procedimentos
  • 39.
    Cenários de Aplicação Aplicações dem Departamentos Aplicações Web Data Hubs Ofertas ISV/SaaS
  • 41.
    Padrões Comuns eProblemas • Como podemos usar serviços em nuvem para conectar aplicações e serviços através de localidades de desenvolvimento? – Nuvem-ponte, serviços on-premises e hospedagem de ativos – Navegue na rede e nos limites de segurança, de modo seguro e descomplicado – Assuma controle da identidade e acesso através de organizações e provedoes de ID – Interopere através de linguagens, plataformas e padrões – Realize mediação através de protocolos e mapeamento de esquemas (schema mapping) • Clientes necessitam de uma maneira para: Conectar a pontos terminais Controle & acesso seguro Barramento de Controle de Serviços Acesso
  • 42.
    Serviços .NET oferecemsoluções para desenvolvedores enfrentando estes problemas Terminais de Conexão Service Bus Barramento de Serviços Access Control Service • Expõe serviços RESTful ou SOAP na Internet • Authorization management and federation através de firewalls e limites NAT infrastructure firewall firewall • Communicação bi-direcional entre • Provides internet-scope federated identity NAT integration for distributed applications aplicações e serviços por meio de interface inter-operavel • Use it to • Secure Service Bus communications • Permite escolher relés, filas roteadores e • Manage user-level access to apps across outros padrões e tipos de mensagem organizations and ID providers • Permite escalabilidade natural e exequibilidade acompanhando crescimento de aplicações e serviços Sua aplicação Aplicação de Cliente/Parceiro
  • 43.
    Serviços .NET sãoProvedores de Soluções Controle de Acesso Access Control Service Serviço de Controle de 1. Define access 3. Map input claims control rules for a to output claims customer Service Bus Acesso •Network abstraction and virtualization infrastructure •Integra autorizações em aplicações com a finalidade de •Enables many common shapes of communication in an controlar “o que os usuários tem autorização para fazer” efficient and interoperable manner •Integra em um só local múltiplos sistemas de identificação •Use it to 6. Check claims através de organizações e provedores de ID •Connect applications across any network topology, including •Permite aplicar regras de controle de acesso com granulação firewalls and NAT boundaries fina e simplificadas •Exchange data between loosely coupled applications •Comunicações seguras no Barramento de Serviços •Permite elevada escalabilidade, com naturalidade e eficiência, 5. Msg w/token independentemente do crescimento das aplicações e serviços Your app Customer/partner users & apps
  • 44.
    Capacidade do Barramentode Serviços • Escopo de abrangência da Internet e redes em geral, ligando IP NATs e Firewalls com controle de acesso em todos os sistemas federados – Comunicação tipo Listen/Send a partir de qualquer dispositivo conectado à rede – Escopo da Internet para qualquer terminal, por “endpoint Naming” e Descoberta – NAT/FW Traversal via TCP, TCP/Direct, e HTTP Web Streams Espaço de Redes B Privativas ACS ACS Espaço da A ACS D Internet ACS ACS C
  • 45.
    Barramento de Serviços:Capacidades Específicas • Transferência de dados brutos e estruturados, permitindo uso de qualquer forma comum de comunicação – Dados Brutos, Texto, XML, JSON, … – Datagramas, Sessões, Mensagens Correlacionadas – Unicast, Multicast A B Octet-Streams Texto XML A B SOAP JSON … … XML- RPC … A B
  • 46.
    Barramento de Serviços:Capacidades Específicas • Mensageria de primitivos Built-In, para comunicação temporária desacoplada, roteamento e processamento de mensagens – Tradução para receptores ocasionalmente conectados do tipo Push/Pull – Metodos publish/subscribe e processamento de mensagem (após V1) Push Pull A B Push B Push C A D E
  • 47.
    Padrão: Notificação deFan-Out (Datagramas tipo Sessionless Unicast ou Multicast) Windows Azure, Datacenter, Hosting, Amazon EC2, Google App Engine “Worker Role” ACS App App Instance ACS Instance ACS ACS unicast unicast ACS ACS ACS multicast NATs ACS ACS Cliente Cliente Cliente Cliente Cliente Cliente
  • 48.
    Padrão: REST ResourceManagement (Request/Response HTTP/HTTPS c/ payloads arbitrarios) Windows Azure, Datacenter, Hosting, Amazon EC2, Google App Engine Storage Storage Storage App App App Instance Instance Instance ACS ACS POST, PUT, DELETE POST, PUT, DELETE POST ACS PUT POST, PUT, DELETE DELETE ACS ACS GET On-Demand „Pull‟ Sync Cache Continuous „Push‟ Sync On-Premise App(s)
  • 49.
    Padrão: Troca deDocumentos (session-bound, app-level ack‟d em transfer. de documentos + notificações) Hosted In-House Outsourced ACS Storage Storage Storage Fronteira de Sistema de Estoque Sistema de E-Commerce / Remessa Pedidos Pronto Embarcado PO ACS SO ACS Entregue ACS ACK ACK ACS Pedido Aceito Experiência do Web Pedido processado Experiência do Client Cliente HiFi
  • 50.
    Padrão: DMZ Externo (qualquerestilo de comunicação, atravessamento NAT para TCP e HTTP/S) Home Datacenter Interno Storage Storage Storage Devices Enterprise Enterprise App Enterprise App Home Automation Instance App Instance Instance or Home Media Server Balanceamento / Filter Reverse Proxy ACS ACS ACS http(s) / net.tcp net.tcp/direto Experiência Web ou Experiência Web ou Hi-Fi Cliente Hi-Fi Cliente
  • 51.
    Padrão: Integrar QualquerCoisa (Sessão limitada, tunelamento de binário bruto para transporte) Windows Azure, Datacenter, Hosting, Amazon EC2 (Windows) Socket Agent NP Agent App ASP.NET J2EE, JDBC, Instance ADO.NET JMS Socket HTTP/HTTPS TDS Passthrough Passthrough Passthrough ACS ACS w/ URI Rewriting Socket Bridge HTTP Bridge NP Bridge Exchange/Mail (SMTP/IMAP) Active Directory (LDAP) ERP, CRM, Custom Apps System Center (SNMP) .NET, J2EE, ROR, PHP SQL … … Server Infraestrutura On-Premise Aplicações & Serviços Dados On-Premise
  • 52.
    Obrigado Tradução: Prof. Eng.Sylvio Silveira Santos http://soa4you.wordpress.com Direitos e Copyright : David Chou david.chou@microsoft.com blogs.msdn.com/dachou © 2009 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.