Desenvolvendo para o Windows Azure e SQL Azure

3.327 visualizações

Publicada em

Conhecendo os principais recursos e como desenvolver para estes dois serviços da plataforma Windows Azure.

Esta palestra foi apresentada para o Encontro de Parceiros na Microsoft Brasil.

Publicada em: Tecnologia
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
3.327
No SlideShare
0
A partir de incorporações
0
Número de incorporações
380
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvendo para o Windows Azure e SQL Azure

  1. 1.
  2. 2. Desenvolvendopara Windows Azure e SQL Azure<br />Luciano Condé<br />Arquiteto de Soluções<br />Microsoft Brasil<br />http://blogs.msdn.com/conde<br />luconde@microsoft.com <br />
  3. 3. Objetivos desta sessão<br />Identificar as principais funcionalidades presentes no Windows Azure e SQL Azure<br />Como é a experiência de construção de aplicações com o Windows Azure e SQL Azure<br />
  4. 4.
  5. 5. O que é o Windows Azure?<br />Sistema Operacional para a Nuvem<br />Poder de computação<br />Armazenamento massivo<br />Gerenciamento de serviços<br />Desenvolvimento ágil<br />Provisionamento dinâmico <br />Sobre datacenters Microsoft<br />Uma plataformacomoserviço<br />PaaS – Platform as a Service<br />
  6. 6. Fluxo de desenvolvimento<br />Hospe-<br />dagem<br />Portal<br />SDK<br />Armaze-<br />namento<br />Executar<br />Provisionar<br />Desenvolvimento<br />
  7. 7. Componentes do Windows Azure<br />Compute<br />Storage<br />Management<br />
  8. 8. Roles<br />Role<br />Código<br />Configuração<br />
  9. 9. Balanceamento de carga entre instâncias<br />Role<br />Máquina<br />Virtual 1<br />http://yourapp.cloudapp.net<br />Máquina Virtual 2<br />
  10. 10. Web Role X Worker Role<br />Worker Role<br />Web Role<br />Hospedeiro de processos<br />Hospedeiro IIS<br />Seu código<br />Seucódigo<br />
  11. 11. Ambiente de desenvolvimento<br />Máquina de desenvolvimento<br />Ambientesimulado Windows Azure<br />Development Storage<br />Development Fabric<br />
  12. 12. Portal de gerenciamento<br />
  13. 13. Demo<br />
  14. 14. Hello Cloud – Web Role<br />Web Role<br />
  15. 15. Componentes do Windows Azure<br />Compute<br />Storage<br />Management<br />
  16. 16. Gerência dos Serviços hospedados<br />Realiza as manutenções nos serviços do Windows Azure<br />Alteração de números de instâncias<br />Atualização de versão da aplicação<br />Coleta e armazenamento de dados de logging das roles<br />Coleta e armazenamento de dados de contadores de desempenho das roles<br />
  17. 17. Usando a Gerência dos Serviços hospedados<br />Através do Portal <br />Orientado para atividades manuais<br />Pode ser feita pelo portal do Azure ou ferramentas de terceiros<br />Através da API Service Management<br />API de Logging<br />Log gerado pelo desenvolvedor<br />API de diagnóstico<br />Contadores de desempenho, IIS loggings<br />API de Service Management<br />Gerenciamento remoto das configurações das roles<br />
  18. 18. Demo<br />
  19. 19. Hello Cloud – Tracing<br />Web Role<br />
  20. 20. Atualizando uma aplicação no Azure<br />Stop => Start<br />Switch Stage => Production<br />In-placerollingupgrade<br />
  21. 21. Exemplo: Stop => Start<br />+<br />
  22. 22. Modelo Switch Stage => Production<br />Stage Deployment<br />Production Deployment<br />
  23. 23. Modelo Switch Stage => Production<br />Stage Deployment<br />Production Deployment<br />
  24. 24. Modelo In-place<br />Production Deployment<br />
  25. 25. Exemplo: In-place<br />Web<br />Web<br />Web<br />Web<br />Web<br />Web<br />Worker<br />Worker<br />Worker<br />Worker<br />Worker<br />Worker<br />
  26. 26. Exemplo: In-place<br />Web<br />Web<br />Web<br />Web<br />Web<br />Web<br />Worker<br />Worker<br />Worker<br />Worker<br />Worker<br />Worker<br />upgradeDomainCount=“2”<br />
  27. 27. Demo<br />
  28. 28. Componentes do Windows Azure<br />Compute<br />Storage<br />Management<br />
  29. 29. Windows AzureStorage<br />Abstração de dados<br />Armazenamento massivo para dados não-estruturados – blobs<br />Armazenamento massivo para dados estruturados – Tables<br />Armazenamento para mensagens - Queues<br />Acesso NTFS - Drives<br />Conjunto simples de interfaces para acesso<br />REST (HTTP e HTTPs)<br />Bibliotecas de acesso já prontas<br />NTFS<br />
  30. 30. Estruturas de dados<br />Storage<br />Queue<br />Blob<br />Account<br />Tables<br />Drives<br />
  31. 31. “Account”<br /><ul><li>Usuário cria nome globalmente único
  32. 32. Pode ser armazenado em qualquer datacenter do Azure
  33. 33. Pode estar localizado em conjunto com os serviços de computação
  34. 34. Usa uma chave secreta de 256 bits
  35. 35. Cada “Account”:
  36. 36. Armazena até 100TB
  37. 37. Tem um limite padrão é de 5 “Accounts” por subscrição</li></ul>Account<br />
  38. 38. Estruturas de dados<br />Storage<br />Queue<br />Blob<br />Account<br />Tables<br />Drives<br />
  39. 39. Blob - Conceitos<br />Blob<br />Container<br />Account<br />PIC01.JPG<br />images<br />MOV1.AVI<br />PIC02.JPG<br />sally<br />movies<br />
  40. 40. Blob - Conceitos<br />Account<br /><ul><li>Usuário cria nome globalmente único
  41. 41. Pode ser armazenado em qualquer datacenter do Azure
  42. 42. Pode estar localizado em conjunto com os serviços de computação
  43. 43. Usa uma chave secreta de 256 bits
  44. 44. Cada “Account”:
  45. 45. Armazena até 100TB
  46. 46. Tem um limite padrão é de 5 “Accounts” por subscrição</li></ul>sally<br />
  47. 47. Blob - Conceitos<br />Blob<br />Account<br />Container<br />PIC01.JPG<br />images<br />MOV1.AVI<br />PIC02.JPG<br />sally<br />movies<br />
  48. 48. Blob - Conceitos<br />Container<br /><ul><li>Quantidade de “Containers”
  49. 49. Limitado até a quantidade suportada por uma “Account”
  50. 50. Blob “Container”
  51. 51. É um conjunto de Blobs
  52. 52. Política de acesso
  53. 53. Privado ou Público
  54. 54. Pode armazenar metadado no container (limite 8K)
  55. 55. Funciona como uma “pasta” </li></ul>images<br />movies<br />
  56. 56. Blob - Conceitos<br />Account<br />Container<br />Blob<br />PIC01.JPG<br />images<br />MOV1.AVI<br />PIC02.JPG<br />sally<br />movies<br />
  57. 57. Blob - Conceitos<br />Container<br />Blob<br /><ul><li>Orientado para armazenar grandes arquivos (vários gigas)
  58. 58. Replicado para outras 2 localizações no mesmo datacenter
  59. 59. Dois tipos
  60. 60. Page Blob
  61. 61. Limite: 1 TB
  62. 62. Leitura/Escrita randômica
  63. 63. BlockBlob
  64. 64. Limite: 200 GB
  65. 65. Arquivos a serem distribuídos</li></ul>PIC01.JPG<br />images<br />MOV1.AVI<br />PIC02.JPG<br />movies<br />
  66. 66. Demo<br />
  67. 67. Upload de arquivo para Blob<br />Blob<br />
  68. 68. Estruturas de dados<br />Storage<br />Queue<br />Blob<br />Account<br />Tables<br />Drives<br />
  69. 69. Queues – Conceitos<br />Accounts<br />Queues<br />Messages<br />128 x 128 http://...<br />thumbnailjobs<br />256 x 256 http://...<br />sally<br />http://...<br />traverselinks<br />http://...<br />
  70. 70. Queues - Conceitos<br />Limite: 8 KB<br />Acessível via REST ou API da Biblioteca do Windows Azure<br />Operações com Filas<br />“Queue”<br />Criar fila<br />Apagar fila<br />Listar Filas<br />Capturar o número de mensagens em uma fila<br />Mensagens<br />Adicionar mensagem na fila (enfilerar)<br />Pegar mensagem na fila (remover da fila)<br />Apagar mensagem<br />Messages<br />128 x 128 http://...<br />256 x 256 http://...<br />http://...<br />http://...<br />
  71. 71. Demo<br />
  72. 72. Manipulando uma fila<br />Queue<br />
  73. 73. Hello Cloud – Web Role + Queue + Blob<br />Web Role<br />Mensagem<br />Queue<br />Upload Blob<br />Blob<br />
  74. 74. Estruturas de dados<br />Storage<br />Queue<br />Blob<br />Account<br />Tables<br />Drives<br />
  75. 75. Tables - Conceitos<br />Tables<br />Entities<br />Accounts<br />Email =…<br />Name = …<br />Users<br />Email =…<br />Name = …<br />moviesonline<br />Genre =…<br />Title = …<br />Movies<br />Genre =…<br />Title = …<br />
  76. 76. Tables - Conceitos<br />Tables<br />Armazenamento massivo de dados estruturados<br />Cada table pode ter bilhões de linhas/entidades<br />Programação<br />REST<br />WCF Data Services<br />Users<br />Movies<br />
  77. 77. Tables - Conceitos<br />Tables<br />Entities<br />Accounts<br />Email =…<br />Name = …<br />Users<br />Email =…<br />Name = …<br />moviesonline<br />Genre =…<br />Title = …<br />Movies<br />Genre =…<br />Title = …<br />
  78. 78. Tables - Conceitos<br />Entities<br />Grupo de propriedades<br />Chavespara Entidades<br />PartitionKey– permite a escalabilidade<br />RowKey – identifica unicamente a entidade dentro da partição<br />Email =…<br />Name = …<br />Email =…<br />Name = …<br />Genre =…<br />Title = …<br />Genre =…<br />Title = …<br />
  79. 79. Demo<br />
  80. 80. Manipulando uma tabela<br />Table<br />
  81. 81. Hello Cloud – Web Role + Queue + Blob + Table<br />Web Role<br />Mensagem<br />Queue<br />Upload Blob<br />Armazenaentrada<br />Blob<br />Table<br />
  82. 82. Estruturas de dados<br />Storage<br />Queue<br />Blob<br />Account<br />Tables<br />Drives<br />
  83. 83. Windows Azure Drive<br />Fornece um VHD (Volume NTFS) para as aplicações que estão rodando no Azure<br />Otimiza processos de migração de aplicações que necessitam de grandes pacotes de upload<br />É montado em cima do Page Blob<br />Dentro de uma role é montado como um drive (ex: Drive X:”)<br />Suporta leitura/escrita pelas roles do Windows Azure<br />Cada role suporta até 8 drives<br />
  84. 84. Como funciona o Windows Azure Drive<br />VM<br />Application<br />Drive X:<br />OS<br />Lease<br />Local Cache<br /> Windows Azure Blob Service<br />MyBlob<br />
  85. 85. HelloCloud – Web Role + Queue + Blob + Table + Worker Role + Drive<br />Worker Role<br />Lê Message<br />Queue<br />Monta<br />Blob<br />Atualiza Table<br />Drives<br />Table<br />
  86. 86. Demo completa – “YoutubeKiller”<br />Worker Role<br />Web Role<br />Queue<br />Blob<br />Table<br />Drives<br />
  87. 87. Sumário - Windows AzureStorage<br />4 tipos de estruturas<br />Queues: Atividades Assíncronas<br />Tables: Armazenamento massivo de dados estruturados<br />Blobs: Armazenamento massivo para dados não-estruturados<br />Drives – Orientado para aplicações que precisam de volumes VHD<br />
  88. 88.
  89. 89. O que é o SQL Azure?<br />Banco de dados como Serviço<br />O poder da plataforma SQL Server na nuvem<br />Construído para permitir alta-disponibilidade e tolerância à falhas<br />Pague conforme o seu crescimento<br />
  90. 90. Componentes do SQL Azure<br />Business Analytics<br />Reporting<br />Data Sync<br />Database<br />
  91. 91. Applications use standard SQL client libraries: ODBC, ADO.Net, PHP, …<br />Arquitetura do SQL Azure<br />Application<br />Internet<br />Azure Cloud<br />TDS (tcp)<br />Fronteira de segurança<br />LoadBalancer controla as sessões do “TDS”<br />LB<br />TDS (tcp)<br />Gateway<br />Gateway<br />Gateway<br />Gateway<br />Gateway<br />Gateway<br />Gateway: TDS protocol gateway, enforces AUTHN/AUTHZ policy; proxy to CloudDB<br />TDS (tcp)<br />SQL<br />SQL<br />SQL<br />SQL<br />SQL<br />SQL<br />Escalabilidade e disponibilidade: Fabric, Failover, Replicação, e balanceamento de carga<br />
  92. 92. Demo<br />
  93. 93. Hello SQL Azure – App Local + SQL Azure<br />SQL Azure<br />
  94. 94. Sincronização com a nuvem<br />Windows Azure Platform<br />On-Premises Sync Application<br />Sync Application<br />Sync Orchestrator<br />SQL Azure<br />SQL Server<br />SQL Server Sync Provider<br />SQL Azure <br />Sync Provider<br />TDS<br />Sync Runtime<br />
  95. 95. Escalabilidade via “Sharding”<br />App<br />Servidor<br />Node 56<br />Node 76<br />Node 2<br />Node 19<br />Node 21<br />Node 99<br />Node 33<br />DBC1<br />DBC2<br />DBC7<br />DBC3<br />DBC4<br />DBC5<br />DBC6<br />SQL Azure Cluster<br />
  96. 96. Sumário – SQL Azure<br />Utilize o seu conhecimento do SQL Server no SQL Azure<br />Migração<br />Fique atento às diferenças entre comandos T-SQL do SQL Server para o SQL Azure<br />Escalabilidade<br />Identifique os pontos para “Sharding”<br />Sincronização <br />SQL AzureDataSync é recomendável para sincronizar a nuvem com o on-premises<br />
  97. 97.
  98. 98. Algumas novidades para o futuro<br />Windows Azure<br />Privilégios de administração nas VMs<br />Terminal Remoto nas VMs<br />Deployment de imagens de VMspré-configuradas<br />Windows AzureStorage<br />Tables – Índices secundários<br />SQL Azure<br />Backup<br />Ferramentas de sincronização on-premises x Nuvem<br />BIna nuvem<br />Reporting Services<br />
  99. 99. Onde aprender?<br />Portal do Windows Azure - Inglês<br />http://www.microsoft.com/azure<br />Portal do Windows Azure no Brasil - Português<br />Vídeos brasileiros sobre Azure - Português<br />http://channel9.msdn.com/brasil<br />Portal do MSDN sobre Azure - Português<br />http://msdn.microsoft.com/pt-br/azure/dd637687.aspx<br />
  100. 100. ?<br />Perguntas?<br />
  101. 101. Luciano Condé<br />Arquiteto de Soluções<br />Microsoft Brasil<br />http://blogs.msdn.com/conde<br />luconde@microsoft.com<br />http://twitter.com/luconde<br />

×