Upload
vitor-ciaramella
View
627
Download
2
Tags:
Embed Size (px)
Citation preview
Recursos básicos do Windows Azure
Vitor CiaramellaMicrosoft Brasilhttp://[email protected]
Agenda
ComputaçãoAssinatura e ServiçosRoles e InstânciasWeb RoleEmpacotamento e Configuração
ArmazenamentoSQL AzureWindows Azure Storage BlobCaching
Computação
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
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
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
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)
Armazenamento
Visão Geral do SQL Azure
O que é o SQL Azure?
Em resumo:“É praticamente o SQL Server 2008
R2 que você está acostumado a trabalhar”
Features do SQL Azure
SQL AzureSQL Azure Reporting Services (CTP)SQL Azure Data Sync (CTP)
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
Painel de Controle – SQL 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
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/
Blob Storage
O que é o Blob Storage?
Em resumo:“É um sistema de arquivos
distribuido acessado via REST ou SDK”
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
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
Criando a conta de Storage
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.
Azure Caching
O que é o Azure Caching?
Em resumo:“É um sistema de cache distribuido acessado via SDK”
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
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
Usando o Azure Caching
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!
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
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
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
© 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.