SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Windows Azure
              Giovanni Bassi
       Arquiteto de Software
          giggio@giggio.net
Agenda
Sessão 2 (1h20min)
  Hosting Services
  Storage (blobs, tables e queues)
  .Net Services (service bus)
  Q&A
O que você precisa
• Resources
http://www.microsoft.com/azure/sdk.mspx
• Azure SDK:
http://go.microsoft.com/fwlink/?LinkID=130232
• Windows Azure Tools for Microsoft Visual Studio
http://go.microsoft.com/fwlink/?LinkId=128752
• Microsoft .NET Services SDK
http://go.microsoft.com/fwlink/?LinkID=129448
• Microsoft SQL Data Services SDK
http://go.microsoft.com/fwlink/?LinkID=129449
• Live Services Visual Studio Tools + SDK
http://go.microsoft.com/fwlink/?LinkID=145417
Ambiente
• Windows Vista ou Server 2008
  – Não funciona corretamente no Windows 7
  – Não suporta Windows XP
• Visual Studio 2008 (pode ser a Express)
• SQL Server 2005 (Express)
Samples
• Depois da instalação do Azure SDK:
  C:Program FilesWindows Azure
   SDKv1.0samples.zip
• Azure Training Kit (Atualmente Feb09):
  http://tinyurl.com/azuretrainingkit
Hosting

HOSTING SERVICES
Hosting
• É uma hospedagem normal
• Processa ASP.Net
• Funciona:
  – Ajax
  – Silverlight
  – ASP.Net MVC
• Não funciona:
  – Acesso à bancos relacionais (SQL Server, Oracle, etc)
  – Outras limitação por CAS
• Sistema de staging e production
Azure Storage
• Baseado em abstrações:
  – Tables
  – Queues
  – Blobs
Azure Storage
• Armazenamento que é
  –   Durável
  –   Escalável (capacidade e velocidade)
  –   De disponibilidade alta
  –   Seguro


• Interfaces simples
  – REST e ADO.Net
Blobs
          Container
          http://<conta>.blob.core.windows.net/<container>



              Table                       Entities
Account
           http://<conta>.table.core.windows.net/<table>



             Queue                      Messages
          http://<conta>.queue.core.windows.net/<queue>
Storage

TABLES
Funcionalidades
•   Escálavel “ao infinito”
•   Altamente disponíveis
•   Duráveis (replicado ao menos 3 vezes)
•   Não são tabelas relacionais

• Interfaces simples
    – REST e ADO.Net
    – Baseado em ADO.Net Data Services (Astoria)
Modelo
• Uma conta tem quantas tabelas quiser
• Uma tabela tem entidades
• Entidades tem propriedades
  – Propriedades de entidades na mesma tabela podem
    ser diferentes
• Duas propriedades são obrigatórias:
  – PartitionKey
  – RowKey
Particionamento

PartitionKey   RowKey (produto) Preço
(fornecedor)
Fornecedor A   Produto A       10,00    Partição 1

Fornecedor A   Produto B       15,00
Fornecedor B   Produto C       20,00    Partição 2


Fornecedor C   Produto D       30,00    Partição 3
Porque particionar?
• Performance
• Localização da entidade
• Escalabilidade
Tipos de dados
• Propriedades Partition Key e Row Key obrigatório string
  (até to 64KB)
• Outras propriedades
   –   String (até 64KB)
   –   Binary (até 64KB)
   –   Bool
   –   DateTime
   –   GUID
   –   Int
   –   Int64
   –   Double
Storage

BLOBS
Funcionalidades
•   Arquivos binários
•   Até 50GB
•   Baseado em REST, com PUT/GET
•   Utiliza metadados
•   Permite continuação de upload
    – Separado em blocks
• Permite obter só um pedaço do blob
Estrutura dos blobs


   Account     Container     Blob

                           One.mp3
                musicas
                           Outra.mp3
     giggio

                 filmes    Video.avi
Estrutura
• URL do blob:
http://<Account>.blob.core.windows.net/<Container>/<BlobName>
• Exemplo:
   – Account – giggio
   – Container – musica
   – BlobName – metal/metallica/one.mp3
• URL:
  http://giggio.blob.core.windows.net/musica/metal/metallica/on
  e.mp3
Envio com blocks
• Sem Blocks: 64MB
• Com Blocks: 50GB
BlobExamplo.wmv                                 Examplo de upload
                                            
                                                    Blocks fora de ordem
                                                
                                                    Ids duplicados
                                                
                                                    Blocks não utilizados
                                                
                  Block Id 4


                               Block Id 4
     Block Id 1
                  Block Id 3

                               Block Id 2



                                                Sequencia das operações
                                            
                                                    PutBlock   BlockId1
                                                
                                                    PutBlock   BlockId3
                                                
                                                    PutBlock   BlockId4
                                                
                                                    PutBlock   BlockId2
                                                
                                                    PutBlock   BlockId4
                                                
                   Block Id 2
                   Block Id 3
                   Block Id 4




                                                    PutBlockList BlockId2,
                                                
                                                    BlockId3, BlockId4
Versão final do blob armazenada
Resultado do putblock

PUT
http://dvd.blob.core.windows.net/movies/TheBlob.wmv
?comp=block &blockid=BlockId1 &timeout=60
HTTP/1.1 Content-Length: 4194304
Content-MD5: HUXZLQLMuI/KZ5KDcJPcOA==
Authorization: SharedKey dvd:
      F5a+dUDvef+PfMb4T8Rc2jHcwfK58KecSZY+l2naIao=
x-ms-date: Mon, 27 Oct 2008 17:00:25 GMT
……… Block Data Contents ………
Resultado do putblock list
PUT
http://dvd.blob.core.windows.net/movies/TheBlob.wmv
?comp=blocklist &timeout=120
HTTP/1.1 Content-Length: 161213
Authorization: SharedKey dvd:
     QrmowAF72IsFEs0GaNCtRU143JpkflIgRTcOdKZaYxw=
x-ms-date: Mon, 27 Oct 2008 17:00:25 GMT

<?xml version=“1.0” encoding=“utf-8”?>
<BlockList>
    <Block>BlockId1</Block>
    <Block>BlockId2</Block>
    ………………
</BlockList>
Storage

QUEUES
Funcionalidades
•   Durável
•   Confiável
•   Sem limite de mensagens na fila
•   Limite de 8KB por mensagem
Fornecedores da fila        Consumidores da fila

                                         1. Dequeue(Q, 30 sec)  msg 1
                                C1
  P2


            4   3   2   1

                                C2
  P1
         2. Dequeue(Q, 30 sec)  msg 2
Fornecedores da fila       Consumidores da fila

                                         1. Dequeue(Q, 30 sec)  msg 1
                           1    C1
  P2
                                         5. C1 caiu

                                         6. msg1 visível por 30 segundos
            43     2   1
                                         após retirado da fila
                           2
                                C2
  P1
                                            Benefício:
         2. Dequeue(Q, 30 sec)  msg 2
         3. C2 consumiu msg 2
                                            • Toda mensagem
         4. Delete(Q, msg 2)
                                              processada “pelo
         7. Dequeue(Q, 30 sec)  msg 1
                                              menos” uma vez.
.Net Services

.NET SERVICE BUS
Funcionalidades
•   Baseado em WCF
•   Conexão via relay e diretamente
•   Modelo de multicast – publish/subscribe
•   Seguro (integrado com ACS)
Bindings do WCF
WCF Binding                   New Service Bus Binding
BasicHttpBinding              BasicHttpRelayBinding
WebHttpBinding                WebHttpRelayBinding
WSHttpBinding                 WSHttpRelayBinding
WS2007HttpBinding             WS2007HttpRelayBinding
WSHttpContextBinding          WSHttpRelayContextBinding
WS2007FederationHttpBinding   WS2007FederationHttpRelayBinding
NetTcpBinding                 NetTcpRelayBinding
NetTcpContextBinding          NetTcpRelayContextBinding
n/a                           NetOnewayRelayBinding
n/a                           NetEventRelayBinding
Arquitetura do .Net Service BUS

                           Service Orchestration


                                           Naming
  Federated
                                       Service Registry
 Identity and
Access Control
                                       Messaging Fabric


                 Clients         On-Premises                Cloud Services
 Your
Service
                                 ESB                                Compute
                                                          Storage
           Desktop, R
             Desktop,
              Desktop,
            IA, Web
             RIA, Web
                RIA, &
                                                                        …
                                                          Billing
                                   Corp Service
                 Web
Relay




               Mensagens de mão
    Enviador   única através de TCP
                                      Recebedor
     da msg
sb://servicebus.windows.net/services/user/service/endpoint




Relay




    Enviador
                                            Recebedor
     da msg
                        Upgrade para
                      conexão direta se
                          possível
Relay




               Mensagens de mão
    Enviador     única via TCP
                                  Receiver
     da msg                         Receiver
                                      Receiver
                                    Recebedores
Links úteis
 • Site do Azure (inglês)
    – http://www.microsoft.com/azure
 • Channel 9 Brasil (vídeos do time de arquitetura)
    – http://channel9.msdn.com/brasil/
 • Blog Waldemir Cambiucci
    – http://blogs.msdn.com/wcamb/archive/tags/Windows+
      Azure/default.aspx
 • Sessões PDC 2008 (inglês)
    – https://sessions.microsoftpdc.com/public/sessions.aspx
 • .Net Unplugged
    – http://unplugged.giggio.net/category/Azure.aspx
Q&A
Obrigado!
            Giovanni Bassi
     Arquiteto de Software
        giggio@giggio.net
Online @:
Email: giggio@giggio.net
Blog técnico: http://unplugged.giggio.net
Site: http://giovannibassi.com
Fórum: http://forum.giggio.net

.Net Architects:
Grupo: http://dotnetarchitects.net
Online: http://tinyurl.com/DotNetArch

Weitere ähnliche Inhalte

Andere mochten auch

I Reubzaet Cinop Oeb 2009v1
I Reubzaet Cinop Oeb 2009v1I Reubzaet Cinop Oeb 2009v1
I Reubzaet Cinop Oeb 2009v1Ireubzaet
 
Dichtbijpresentatie 09122010 maastricht
Dichtbijpresentatie 09122010 maastrichtDichtbijpresentatie 09122010 maastricht
Dichtbijpresentatie 09122010 maastrichtBart Brouwers
 
Skema Bm Kertas2 Set2
Skema Bm Kertas2 Set2Skema Bm Kertas2 Set2
Skema Bm Kertas2 Set2Kay Aniza
 
Marketing Communications Spring 2008 Final Project
Marketing Communications Spring 2008 Final ProjectMarketing Communications Spring 2008 Final Project
Marketing Communications Spring 2008 Final Projectlat886
 
Rabo Mobiel - Product Development Overview
Rabo Mobiel - Product Development OverviewRabo Mobiel - Product Development Overview
Rabo Mobiel - Product Development OverviewDan Armstrong
 
Ceramic teapots -PMI Loyalty Program for Red Rose Te and Dare Biscuit
Ceramic teapots -PMI Loyalty Program for Red Rose Te and Dare BiscuitCeramic teapots -PMI Loyalty Program for Red Rose Te and Dare Biscuit
Ceramic teapots -PMI Loyalty Program for Red Rose Te and Dare BiscuitPMI Inc
 
e-politics project
e-politics projecte-politics project
e-politics projectjasonmeyers
 
Six Word Digital Memoirs
Six Word Digital MemoirsSix Word Digital Memoirs
Six Word Digital MemoirsJeanette Murphy
 
Looking at money 2 locally sold products
Looking at money 2   locally sold productsLooking at money 2   locally sold products
Looking at money 2 locally sold productsJeanette Murphy
 
Has Anyone Asked a Customer?
Has Anyone Asked a Customer?Has Anyone Asked a Customer?
Has Anyone Asked a Customer?Dan Armstrong
 
Putauaki Primary Inquiry Learning Tackle Box Stages (Colour Coded)
Putauaki Primary Inquiry Learning Tackle Box Stages (Colour Coded)Putauaki Primary Inquiry Learning Tackle Box Stages (Colour Coded)
Putauaki Primary Inquiry Learning Tackle Box Stages (Colour Coded)Jeanette Murphy
 
Hyperlokaal Voor #3D Conference
Hyperlokaal Voor #3D ConferenceHyperlokaal Voor #3D Conference
Hyperlokaal Voor #3D ConferenceBart Brouwers
 
Action Guide Facebook 1.03.2010
Action Guide   Facebook   1.03.2010Action Guide   Facebook   1.03.2010
Action Guide Facebook 1.03.2010mythicgroup
 
Smc076 (old version)
Smc076 (old version)Smc076 (old version)
Smc076 (old version)Bart Brouwers
 
Centrifugal+Pump+Main[1].+Seminar+(Tt$)
Centrifugal+Pump+Main[1].+Seminar+(Tt$)Centrifugal+Pump+Main[1].+Seminar+(Tt$)
Centrifugal+Pump+Main[1].+Seminar+(Tt$)Mahmoud Osman
 

Andere mochten auch (20)

I Reubzaet Cinop Oeb 2009v1
I Reubzaet Cinop Oeb 2009v1I Reubzaet Cinop Oeb 2009v1
I Reubzaet Cinop Oeb 2009v1
 
Dichtbijpresentatie 09122010 maastricht
Dichtbijpresentatie 09122010 maastrichtDichtbijpresentatie 09122010 maastricht
Dichtbijpresentatie 09122010 maastricht
 
Skema Bm Kertas2 Set2
Skema Bm Kertas2 Set2Skema Bm Kertas2 Set2
Skema Bm Kertas2 Set2
 
Marketing Communications Spring 2008 Final Project
Marketing Communications Spring 2008 Final ProjectMarketing Communications Spring 2008 Final Project
Marketing Communications Spring 2008 Final Project
 
TTB- I Spy
TTB- I SpyTTB- I Spy
TTB- I Spy
 
Rabo Mobiel - Product Development Overview
Rabo Mobiel - Product Development OverviewRabo Mobiel - Product Development Overview
Rabo Mobiel - Product Development Overview
 
RUN FOR HOPE
RUN FOR HOPERUN FOR HOPE
RUN FOR HOPE
 
Wood
WoodWood
Wood
 
Ceramic teapots -PMI Loyalty Program for Red Rose Te and Dare Biscuit
Ceramic teapots -PMI Loyalty Program for Red Rose Te and Dare BiscuitCeramic teapots -PMI Loyalty Program for Red Rose Te and Dare Biscuit
Ceramic teapots -PMI Loyalty Program for Red Rose Te and Dare Biscuit
 
e-politics project
e-politics projecte-politics project
e-politics project
 
Six Word Digital Memoirs
Six Word Digital MemoirsSix Word Digital Memoirs
Six Word Digital Memoirs
 
Looking at money 2 locally sold products
Looking at money 2   locally sold productsLooking at money 2   locally sold products
Looking at money 2 locally sold products
 
Has Anyone Asked a Customer?
Has Anyone Asked a Customer?Has Anyone Asked a Customer?
Has Anyone Asked a Customer?
 
Putauaki Primary Inquiry Learning Tackle Box Stages (Colour Coded)
Putauaki Primary Inquiry Learning Tackle Box Stages (Colour Coded)Putauaki Primary Inquiry Learning Tackle Box Stages (Colour Coded)
Putauaki Primary Inquiry Learning Tackle Box Stages (Colour Coded)
 
Justize
JustizeJustize
Justize
 
Hyperlokaal Voor #3D Conference
Hyperlokaal Voor #3D ConferenceHyperlokaal Voor #3D Conference
Hyperlokaal Voor #3D Conference
 
Action Guide Facebook 1.03.2010
Action Guide   Facebook   1.03.2010Action Guide   Facebook   1.03.2010
Action Guide Facebook 1.03.2010
 
Smc076 (old version)
Smc076 (old version)Smc076 (old version)
Smc076 (old version)
 
Centrifugal+Pump+Main[1].+Seminar+(Tt$)
Centrifugal+Pump+Main[1].+Seminar+(Tt$)Centrifugal+Pump+Main[1].+Seminar+(Tt$)
Centrifugal+Pump+Main[1].+Seminar+(Tt$)
 
Tool
ToolTool
Tool
 

Ähnlich wie Introdução ao Windows Azure - Sessão 2 (mais prática)

VoltDB talk at QCON-Brasil
VoltDB talk at QCON-BrasilVoltDB talk at QCON-Brasil
VoltDB talk at QCON-BrasilEdward Ribeiro
 
Laboratório -configuração_de_um_endereço_de_gerenciamento_do_switch-1
Laboratório  -configuração_de_um_endereço_de_gerenciamento_do_switch-1Laboratório  -configuração_de_um_endereço_de_gerenciamento_do_switch-1
Laboratório -configuração_de_um_endereço_de_gerenciamento_do_switch-1WalissonMartinsdeSou
 
Testes de escalabilidade usando cloud
Testes de escalabilidade usando cloudTestes de escalabilidade usando cloud
Testes de escalabilidade usando cloudPET Computação
 
Quebrando o monolito com microserviços - TDC 2017
Quebrando o monolito com microserviços - TDC 2017Quebrando o monolito com microserviços - TDC 2017
Quebrando o monolito com microserviços - TDC 2017Rodrigo Stefani Domingues
 
QCon 2019 - Kubernetes Deepdive
QCon 2019 -  Kubernetes DeepdiveQCon 2019 -  Kubernetes Deepdive
QCon 2019 - Kubernetes DeepdiveRicardo Katz
 
Pipeline de deploy continuo (DevOps) de chatbot
Pipeline de deploy continuo (DevOps) de chatbotPipeline de deploy continuo (DevOps) de chatbot
Pipeline de deploy continuo (DevOps) de chatbotLappis UnB
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Fabiano Weimar
 
Angular Extreme Performance
Angular  Extreme PerformanceAngular  Extreme Performance
Angular Extreme PerformanceGustavo Costa
 
Blockchain e registro eletrônico imobiliário no Brasil
Blockchain e registro eletrônico imobiliário no BrasilBlockchain e registro eletrônico imobiliário no Brasil
Blockchain e registro eletrônico imobiliário no BrasilIRIB
 
Apresentação Bluetooth
Apresentação BluetoothApresentação Bluetooth
Apresentação Bluetoothsafetycontrol
 
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Emerson Macedo
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017Fabio Janiszevski
 
Kubecon EU 2019 Remarks
Kubecon EU 2019 RemarksKubecon EU 2019 Remarks
Kubecon EU 2019 RemarksRicardo Katz
 
Blockchain e o Futuro da Internet
Blockchain e o Futuro da InternetBlockchain e o Futuro da Internet
Blockchain e o Futuro da InternetWesley Carçado
 

Ähnlich wie Introdução ao Windows Azure - Sessão 2 (mais prática) (20)

VoltDB talk at QCON-Brasil
VoltDB talk at QCON-BrasilVoltDB talk at QCON-Brasil
VoltDB talk at QCON-Brasil
 
Laboratório -configuração_de_um_endereço_de_gerenciamento_do_switch-1
Laboratório  -configuração_de_um_endereço_de_gerenciamento_do_switch-1Laboratório  -configuração_de_um_endereço_de_gerenciamento_do_switch-1
Laboratório -configuração_de_um_endereço_de_gerenciamento_do_switch-1
 
Testes de escalabilidade usando cloud
Testes de escalabilidade usando cloudTestes de escalabilidade usando cloud
Testes de escalabilidade usando cloud
 
Quebrando o monolito com microserviços - TDC 2017
Quebrando o monolito com microserviços - TDC 2017Quebrando o monolito com microserviços - TDC 2017
Quebrando o monolito com microserviços - TDC 2017
 
Aula 7 infraestrutura - 11022012
Aula 7   infraestrutura - 11022012Aula 7   infraestrutura - 11022012
Aula 7 infraestrutura - 11022012
 
QCon 2019 - Kubernetes Deepdive
QCon 2019 -  Kubernetes DeepdiveQCon 2019 -  Kubernetes Deepdive
QCon 2019 - Kubernetes Deepdive
 
Pipeline de deploy continuo (DevOps) de chatbot
Pipeline de deploy continuo (DevOps) de chatbotPipeline de deploy continuo (DevOps) de chatbot
Pipeline de deploy continuo (DevOps) de chatbot
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
 
Angular Extreme Performance
Angular  Extreme PerformanceAngular  Extreme Performance
Angular Extreme Performance
 
Blockchain e registro eletrônico imobiliário no Brasil
Blockchain e registro eletrônico imobiliário no BrasilBlockchain e registro eletrônico imobiliário no Brasil
Blockchain e registro eletrônico imobiliário no Brasil
 
Projeto rede local
Projeto rede localProjeto rede local
Projeto rede local
 
Apresentação Bluetooth
Apresentação BluetoothApresentação Bluetooth
Apresentação Bluetooth
 
GDB e Análise de Bugs
GDB e Análise de BugsGDB e Análise de Bugs
GDB e Análise de Bugs
 
Esclarecimentos da nova prova CCNA
Esclarecimentos da nova prova CCNAEsclarecimentos da nova prova CCNA
Esclarecimentos da nova prova CCNA
 
Guia passoapassodomikrotik
Guia passoapassodomikrotikGuia passoapassodomikrotik
Guia passoapassodomikrotik
 
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017
 
Roteiro exp9
Roteiro exp9Roteiro exp9
Roteiro exp9
 
Kubecon EU 2019 Remarks
Kubecon EU 2019 RemarksKubecon EU 2019 Remarks
Kubecon EU 2019 Remarks
 
Blockchain e o Futuro da Internet
Blockchain e o Futuro da InternetBlockchain e o Futuro da Internet
Blockchain e o Futuro da Internet
 

Mehr von Giovanni Bassi

O que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviçosO que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviçosGiovanni Bassi
 
Analisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NETAnalisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NETGiovanni Bassi
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraGiovanni Bassi
 
Conhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetesConhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetesGiovanni Bassi
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 
C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8Giovanni Bassi
 
Engenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployEngenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployGiovanni Bassi
 
Entrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresEntrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresGiovanni Bassi
 
.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2Giovanni Bassi
 
.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux.NET com contêineres Windows e Linux
.NET com contêineres Windows e LinuxGiovanni Bassi
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraGiovanni Bassi
 
Compartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.jsCompartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.jsGiovanni Bassi
 
Construindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsConstruindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsGiovanni Bassi
 
Um mergulho nos containers windows
Um mergulho nos containers windowsUm mergulho nos containers windows
Um mergulho nos containers windowsGiovanni Bassi
 
Por dentro do .NET Core
Por dentro do .NET CorePor dentro do .NET Core
Por dentro do .NET CoreGiovanni Bassi
 
Build e release pipeline com docker
Build e release pipeline com dockerBuild e release pipeline com docker
Build e release pipeline com dockerGiovanni Bassi
 
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Giovanni Bassi
 

Mehr von Giovanni Bassi (20)

O que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviçosO que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviços
 
Sendo ágil com git
Sendo ágil com gitSendo ágil com git
Sendo ágil com git
 
Analisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NETAnalisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NET
 
Novidades do c# 7 e 8
Novidades do c# 7 e 8Novidades do c# 7 e 8
Novidades do c# 7 e 8
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agora
 
Conhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetesConhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetes
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8
 
Engenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployEngenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deploy
 
Entrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresEntrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineres
 
.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2
 
.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agora
 
Compartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.jsCompartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.js
 
Construindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsConstruindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.js
 
O Futuro do C#: C#8
O Futuro do C#: C#8O Futuro do C#: C#8
O Futuro do C#: C#8
 
Um mergulho nos containers windows
Um mergulho nos containers windowsUm mergulho nos containers windows
Um mergulho nos containers windows
 
Por dentro do .NET Core
Por dentro do .NET CorePor dentro do .NET Core
Por dentro do .NET Core
 
Build e release pipeline com docker
Build e release pipeline com dockerBuild e release pipeline com docker
Build e release pipeline com docker
 
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
 

Kürzlich hochgeladen

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 

Kürzlich hochgeladen (8)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 

Introdução ao Windows Azure - Sessão 2 (mais prática)

  • 1. Windows Azure Giovanni Bassi Arquiteto de Software giggio@giggio.net
  • 2. Agenda Sessão 2 (1h20min) Hosting Services Storage (blobs, tables e queues) .Net Services (service bus) Q&A
  • 3. O que você precisa • Resources http://www.microsoft.com/azure/sdk.mspx • Azure SDK: http://go.microsoft.com/fwlink/?LinkID=130232 • Windows Azure Tools for Microsoft Visual Studio http://go.microsoft.com/fwlink/?LinkId=128752 • Microsoft .NET Services SDK http://go.microsoft.com/fwlink/?LinkID=129448 • Microsoft SQL Data Services SDK http://go.microsoft.com/fwlink/?LinkID=129449 • Live Services Visual Studio Tools + SDK http://go.microsoft.com/fwlink/?LinkID=145417
  • 4. Ambiente • Windows Vista ou Server 2008 – Não funciona corretamente no Windows 7 – Não suporta Windows XP • Visual Studio 2008 (pode ser a Express) • SQL Server 2005 (Express)
  • 5. Samples • Depois da instalação do Azure SDK: C:Program FilesWindows Azure SDKv1.0samples.zip • Azure Training Kit (Atualmente Feb09): http://tinyurl.com/azuretrainingkit
  • 7. Hosting • É uma hospedagem normal • Processa ASP.Net • Funciona: – Ajax – Silverlight – ASP.Net MVC • Não funciona: – Acesso à bancos relacionais (SQL Server, Oracle, etc) – Outras limitação por CAS • Sistema de staging e production
  • 8.
  • 9. Azure Storage • Baseado em abstrações: – Tables – Queues – Blobs
  • 10. Azure Storage • Armazenamento que é – Durável – Escalável (capacidade e velocidade) – De disponibilidade alta – Seguro • Interfaces simples – REST e ADO.Net
  • 11. Blobs Container http://<conta>.blob.core.windows.net/<container> Table Entities Account http://<conta>.table.core.windows.net/<table> Queue Messages http://<conta>.queue.core.windows.net/<queue>
  • 13. Funcionalidades • Escálavel “ao infinito” • Altamente disponíveis • Duráveis (replicado ao menos 3 vezes) • Não são tabelas relacionais • Interfaces simples – REST e ADO.Net – Baseado em ADO.Net Data Services (Astoria)
  • 14. Modelo • Uma conta tem quantas tabelas quiser • Uma tabela tem entidades • Entidades tem propriedades – Propriedades de entidades na mesma tabela podem ser diferentes • Duas propriedades são obrigatórias: – PartitionKey – RowKey
  • 15. Particionamento PartitionKey RowKey (produto) Preço (fornecedor) Fornecedor A Produto A 10,00 Partição 1 Fornecedor A Produto B 15,00 Fornecedor B Produto C 20,00 Partição 2 Fornecedor C Produto D 30,00 Partição 3
  • 16. Porque particionar? • Performance • Localização da entidade • Escalabilidade
  • 17. Tipos de dados • Propriedades Partition Key e Row Key obrigatório string (até to 64KB) • Outras propriedades – String (até 64KB) – Binary (até 64KB) – Bool – DateTime – GUID – Int – Int64 – Double
  • 18.
  • 20. Funcionalidades • Arquivos binários • Até 50GB • Baseado em REST, com PUT/GET • Utiliza metadados • Permite continuação de upload – Separado em blocks • Permite obter só um pedaço do blob
  • 21. Estrutura dos blobs Account Container Blob One.mp3 musicas Outra.mp3 giggio filmes Video.avi
  • 22. Estrutura • URL do blob: http://<Account>.blob.core.windows.net/<Container>/<BlobName> • Exemplo: – Account – giggio – Container – musica – BlobName – metal/metallica/one.mp3 • URL: http://giggio.blob.core.windows.net/musica/metal/metallica/on e.mp3
  • 23. Envio com blocks • Sem Blocks: 64MB • Com Blocks: 50GB
  • 24. BlobExamplo.wmv Examplo de upload  Blocks fora de ordem  Ids duplicados  Blocks não utilizados  Block Id 4 Block Id 4 Block Id 1 Block Id 3 Block Id 2 Sequencia das operações  PutBlock BlockId1  PutBlock BlockId3  PutBlock BlockId4  PutBlock BlockId2  PutBlock BlockId4  Block Id 2 Block Id 3 Block Id 4 PutBlockList BlockId2,  BlockId3, BlockId4 Versão final do blob armazenada
  • 25. Resultado do putblock PUT http://dvd.blob.core.windows.net/movies/TheBlob.wmv ?comp=block &blockid=BlockId1 &timeout=60 HTTP/1.1 Content-Length: 4194304 Content-MD5: HUXZLQLMuI/KZ5KDcJPcOA== Authorization: SharedKey dvd: F5a+dUDvef+PfMb4T8Rc2jHcwfK58KecSZY+l2naIao= x-ms-date: Mon, 27 Oct 2008 17:00:25 GMT ……… Block Data Contents ………
  • 26. Resultado do putblock list PUT http://dvd.blob.core.windows.net/movies/TheBlob.wmv ?comp=blocklist &timeout=120 HTTP/1.1 Content-Length: 161213 Authorization: SharedKey dvd: QrmowAF72IsFEs0GaNCtRU143JpkflIgRTcOdKZaYxw= x-ms-date: Mon, 27 Oct 2008 17:00:25 GMT <?xml version=“1.0” encoding=“utf-8”?> <BlockList> <Block>BlockId1</Block> <Block>BlockId2</Block> ……………… </BlockList>
  • 27.
  • 29. Funcionalidades • Durável • Confiável • Sem limite de mensagens na fila • Limite de 8KB por mensagem
  • 30. Fornecedores da fila Consumidores da fila 1. Dequeue(Q, 30 sec)  msg 1 C1 P2 4 3 2 1 C2 P1 2. Dequeue(Q, 30 sec)  msg 2
  • 31. Fornecedores da fila Consumidores da fila 1. Dequeue(Q, 30 sec)  msg 1 1 C1 P2 5. C1 caiu 6. msg1 visível por 30 segundos 43 2 1 após retirado da fila 2 C2 P1 Benefício: 2. Dequeue(Q, 30 sec)  msg 2 3. C2 consumiu msg 2 • Toda mensagem 4. Delete(Q, msg 2) processada “pelo 7. Dequeue(Q, 30 sec)  msg 1 menos” uma vez.
  • 32.
  • 34. Funcionalidades • Baseado em WCF • Conexão via relay e diretamente • Modelo de multicast – publish/subscribe • Seguro (integrado com ACS)
  • 35. Bindings do WCF WCF Binding New Service Bus Binding BasicHttpBinding BasicHttpRelayBinding WebHttpBinding WebHttpRelayBinding WSHttpBinding WSHttpRelayBinding WS2007HttpBinding WS2007HttpRelayBinding WSHttpContextBinding WSHttpRelayContextBinding WS2007FederationHttpBinding WS2007FederationHttpRelayBinding NetTcpBinding NetTcpRelayBinding NetTcpContextBinding NetTcpRelayContextBinding n/a NetOnewayRelayBinding n/a NetEventRelayBinding
  • 36. Arquitetura do .Net Service BUS Service Orchestration Naming Federated Service Registry Identity and Access Control Messaging Fabric Clients On-Premises Cloud Services Your Service ESB Compute Storage Desktop, R Desktop, Desktop, IA, Web RIA, Web RIA, & … Billing Corp Service Web
  • 37. Relay Mensagens de mão Enviador única através de TCP Recebedor da msg
  • 38. sb://servicebus.windows.net/services/user/service/endpoint Relay Enviador Recebedor da msg Upgrade para conexão direta se possível
  • 39. Relay Mensagens de mão Enviador única via TCP Receiver da msg Receiver Receiver Recebedores
  • 40.
  • 41. Links úteis • Site do Azure (inglês) – http://www.microsoft.com/azure • Channel 9 Brasil (vídeos do time de arquitetura) – http://channel9.msdn.com/brasil/ • Blog Waldemir Cambiucci – http://blogs.msdn.com/wcamb/archive/tags/Windows+ Azure/default.aspx • Sessões PDC 2008 (inglês) – https://sessions.microsoftpdc.com/public/sessions.aspx • .Net Unplugged – http://unplugged.giggio.net/category/Azure.aspx
  • 42. Q&A
  • 43. Obrigado! Giovanni Bassi Arquiteto de Software giggio@giggio.net
  • 44. Online @: Email: giggio@giggio.net Blog técnico: http://unplugged.giggio.net Site: http://giovannibassi.com Fórum: http://forum.giggio.net .Net Architects: Grupo: http://dotnetarchitects.net Online: http://tinyurl.com/DotNetArch

Hinweis der Redaktion

  1. apresentação: 3 minwindowsazure: 19 minutos (22)como surgiu o azure: 10 minutos (32)arquitetura até a demo: 10 minutos (42)demo: 9 minutos (51)finalização da arquitetura: 5 minutos (56)FAQ: 8 minutos (1 hr e 4 min)Q&A: 16 minutos (1 hr e 20 min)