31
Recursos básicos do Windows Azure Vitor Ciaramella Microsoft Brasil http://vic.ms [email protected]

Windows Azure 2/8 - Recursos básicos do Windows Azure

Embed Size (px)

Citation preview

Page 1: Windows Azure 2/8 - Recursos básicos do Windows Azure

Recursos básicos do Windows Azure

Vitor CiaramellaMicrosoft Brasilhttp://[email protected]

Page 2: Windows Azure 2/8 - Recursos básicos do Windows Azure

Agenda

ComputaçãoAssinatura e ServiçosRoles e InstânciasWeb RoleEmpacotamento e Configuração

ArmazenamentoSQL AzureWindows Azure Storage BlobCaching

Page 3: Windows Azure 2/8 - Recursos básicos do Windows Azure

Computação

Page 4: Windows Azure 2/8 - Recursos básicos do Windows Azure

Assinaturas e Serviços

Subscription Determina o modelo de cobrançaPode incluir pacotes de uso (com descontos) Contém uma coleção de hosted services

Hosted ServiceUm “pacote” de aplicação com URL públicaUm conjunto de roles

Page 5: Windows Azure 2/8 - Recursos básicos do Windows Azure

Roles e InstânciasRoles

Partes de uma aplicação / hosted serviceCada role especifica

Um tipo (Web, Worker ou VM)Um tamanho (de extra-small à extra-large)EndpointsLocal Resources

Em execução, cada role pode ter n instâncias idênticas

InstânciaUm conjunto de código, configuração, e dados locais, que rodam em uma máquina virtual dedicada

Page 6: Windows Azure 2/8 - Recursos básicos do Windows Azure

Web Role

Windows Server + IIS 7.5ASP.NET 3.5 SP1 ou 4.0 – 64bitHospeda

Webforms ou MVCAplicações FastCGI (ex: PHP)Múltiplos Websites

Http(s)Web/Worker

Pode implementar um RoleEntryPoint e executar tarefas em background

Page 7: Windows Azure 2/8 - Recursos básicos do Windows Azure

Empacotamento e Configuração

Os serviços do Windows Azure Services são descritos em dois arquivos:

Service Definition (*.csdef)Service Configuration (*.cscfg)

Seu código é compactado e empacotado com a definição do serviço (*.cspkg)

Encriptado(Zipado(Código + *.csdef)) == *.cspkg

O Windows Azure consome apenas: (*.cspkg + *.cscfg)

Page 8: Windows Azure 2/8 - Recursos básicos do Windows Azure

Armazenamento

Page 9: Windows Azure 2/8 - Recursos básicos do Windows Azure

Visão Geral do SQL Azure

Page 10: Windows Azure 2/8 - Recursos básicos do Windows Azure

O que é o SQL Azure?

Em resumo:“É praticamente o SQL Server 2008

R2 que você está acostumado a trabalhar”

Page 11: Windows Azure 2/8 - Recursos básicos do Windows Azure

Features do SQL Azure

SQL AzureSQL Azure Reporting Services (CTP)SQL Azure Data Sync (CTP)

Page 12: Windows Azure 2/8 - Recursos básicos do Windows Azure

Features do SQL Azure

SQL AzureBanco de dados relacional em núvemAlta disponibilidade (SLA de 99,95%)

Mecanismo de replicação automática

Compatível com T-SQLSuporta tabelas, views, índices, roles, stored procedures, triggers e funçõesAcesso via TCP/IP com Connection String padrãoFirewall de conexão (apenas IPs autorizados se conectam)Administração via Painel de Controle Web, SQL Server Management Studio ou outraferramenta compatível

Page 13: Windows Azure 2/8 - Recursos básicos do Windows Azure

Painel de Controle – SQL Azure

Page 14: Windows Azure 2/8 - Recursos básicos do Windows Azure

Exemplo de código – SQL Azurevar stringDeConexao = "Server=tcp:u06ud2z4qy.database.windows.net;Database=meubancodedados; User ID=vitor@u06ud2z4qy;Password=Pa$$w0rd;Trusted_Connection=False; Encrypt=True;MultipleActiveResultSets=True;";

using (var conexao = new SqlConnection(stringDeConexao)){ conexao.Open(); using (var comando = conexao.CreateCommand()) { comando.CommandText = "select count(*) from TabelaX"; var resultado = comando.ExecuteScalar(); }}

Possuindo acesso ao Firewall, você pode se conectar no SQL Azure de diversas formas, incluindo:• ASP.NET, ADO.NET, Entity Framework, WCF Data Services• PHP• Java JDBC

Page 15: Windows Azure 2/8 - Recursos básicos do Windows Azure

Pontos de atenção do SQL Azure

Conexões apenas via TCP/IP porta 1433Não suporta o mecanismo backupNão suporta Full-Text SearchNão suporta SQL Server Agents / JobsNão suporta transações distribuidasA collation do banco e do servidor é sempre SQL_LATIN1_GENERAL_CP1_CI_ASTodas tabelas devem ter um índice clusterizadoTamanho máximo de 150Gb por banco de dados

Projete sua aplicação para particionar seus dados em vários bancos (Sharding)

O SQL Azure Migration Wizard te ajuda a verificar esses pontoshttp://sqlazuremw.codeplex.com/

Page 16: Windows Azure 2/8 - Recursos básicos do Windows Azure

Blob Storage

Page 17: Windows Azure 2/8 - Recursos básicos do Windows Azure

O que é o Blob Storage?

Em resumo:“É um sistema de arquivos

distribuido acessado via REST ou SDK”

Page 18: Windows Azure 2/8 - Recursos básicos do Windows Azure

Features do Blob Storage

Acessível via REST (HTTP ou HTTPS)Naturalmente interoperável (clientes .NET, Windows Phone, Java, PHP, iPhone, Android, Ajax, Silverlight, Flash e etc)

Permite associar metadadosMecanismos de controle de acesso e concorrênciaDois tipos de Blobs

Block BlobIdeal para StreamingCada Blob é uma sequência de BlocosAté 200Gb por Blob

Page BlobIdeal para acesso aleatório de leitura ou escritaCada Blob é um array de PáginasAté 1Tb por Blob

Page 19: Windows Azure 2/8 - Recursos básicos do Windows Azure

Estrutura do Blob Storage

BlobContainerConta

conta

imagens

img01.jpg

videos vid1.avi

http://<conta>.blob.core.windows.net/<container>/<nomeDoBlob>

Pages/Blocks

Block/Page

Block/Page

img02.jpg

Page 20: Windows Azure 2/8 - Recursos básicos do Windows Azure

Criando a conta de Storage

Page 21: Windows Azure 2/8 - Recursos básicos do Windows Azure

Acessando um Blob via SDK para .NET

var stringDeConexao = "DefaultEndpointsProtocol=https;AccountName=techedvc;AccountKey=iqFj1tz09TWhIqfBls++q/cSUNTsklL0Yehxx525LQQb8Cy4IvvIpdsfg+/DMcm+3NHOkA1hS0InGy2A7iug=="; var nomeDoContainer = "Arquivos";var nomeDoArquivo = "Pasta1/Pasta2/MeuArquivo.txt";var contaDeStorage = CloudStorageAccount.Parse(stringDeConexao);var clienteDoBlob = contaDeStorage.CreateCloudBlobClient(); var container = new CloudBlobContainer(nomeDoContainer.ToLower(), clienteDoBlob);

container.CreateIfNotExist();

var blobTexto = container.GetBlobReference(nomeDoArquivo.ToLower());blobTexto.UploadText("Conteudo do arquivo");

A classe CloudBlob possui diversos métodos como: Delete, DownloadToFile, DownloadToText, DownloadToStream, OpenRead, OpenWrite, UploadFromStream, UploadFile.

O nome do Blob pode conter “/”, permitindo a ideia de pastas.

Page 22: Windows Azure 2/8 - Recursos básicos do Windows Azure

Azure Caching

Page 23: Windows Azure 2/8 - Recursos básicos do Windows Azure

O que é o Azure Caching?

Em resumo:“É um sistema de cache distribuido acessado via SDK”

Page 24: Windows Azure 2/8 - Recursos básicos do Windows Azure

Features do Azure Caching

Fácil configuração e utilizaçãoAltamente escalável, com baixa latencia e alta taxa de transferência

ASP.Net Providers para Session State e Page Output CachingFaz cache de qualquer objeto .NETPossui mecanismo de Controle de AcessoMesmas APIs do Windows Server AppFabric CacheSegurança via Access Control

Page 25: Windows Azure 2/8 - Recursos básicos do Windows Azure

Estrutura do Azure Caching

Memória

Rede

Disco

Windows Azure Caching (cache local)

Windows Azure Caching (cache distribuído)

Storage

Menor latência

Média latência

Maior latência

Page 26: Windows Azure 2/8 - Recursos básicos do Windows Azure

Usando o Azure Caching

Page 27: Windows Azure 2/8 - Recursos básicos do Windows Azure

Usando o Azure Caching – Parte 1/2

<dataCacheClients> <dataCacheClient name="default" maxConnectionsToServer="1"> <hosts> <host name="techedvc.cache.windows.net" cachePort="22233" /> </hosts> <securityProperties mode="Message"> <messageSecurity authorizationInfo="YWNzOmh0dHBzOi8vdGVjaGVkdmMtY2FjaGUuYWNjZXNzY29udHJvbC53aW5kb3dzLm5ldC9XUkFQdjAuOS8mb3duZXImbWc1ZDUrV1dUSEV1aGlOaUhHQ1VmTHU5a2pqMmxEbC9GMXNlT1lXMVpSND0maHRcDovL3RlY2hlZHZjLmNhY2hlLndpbmRvd3MubmV0"> </messageSecurity> </securityProperties> </dataCacheClient></dataCacheClients>

Configuração do Cache no App.Config ou Web.Config- Não se esqueça de adicionar as referências aos assemblies do SDK!

Page 28: Windows Azure 2/8 - Recursos básicos do Windows Azure

Usando o Azure Caching – Parte 2/2

<configuration> <system.web> <sessionState mode="Custom" customProvider="DistributedSessionProvider" compressionEnabled="false"> <providers> <add name="DistributedSessionProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider,Microsoft.Web.DistributedCache" cacheName="default" applicationName="Contoso" useBlobMode="false"/> </providers> </sessionState> </system.web></configuration>Configuração para Session State do ASP.NET

Page 29: Windows Azure 2/8 - Recursos básicos do Windows Azure

Usando o Azure Caching – Parte 2/2

var cacheFactory = new DataCacheFactory();var meuCache = cacheFactory.GetDefaultCache();

var chave = "DataAtual";var objetoCacheado = meuCache.Get(chave);

if (objetoCacheado != null){ var valor = (DateTime)objetoCacheado;}else{ var valor = DateTime.Now.Date; meuCache.Put(chave, valor, TimeSpan.FromSeconds(15));}

Consultando o cache e inserindo no cache caso não exista

Page 30: Windows Azure 2/8 - Recursos básicos do Windows Azure

Pontos de Atenção do Azure Caching

Recomendado para compartilhar sessões do ASP.NET entre mais de uma instânciaAté 8Mb por objeto (serializado) cacheadoAtenção às cotas do cache

MemóriaTransaçõesLargura de bandaConexões concorrentes

Page 31: Windows Azure 2/8 - Recursos básicos do Windows Azure

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