Arquitetura de Soluções

por Waldemir Cambiucci

SQL Azure : uma aplicação Web Role com SQL Azure – parte 1/2

Olá pessoal, tudo certo?

Atendendo a pedidos, o post de hoje é um tutorial completo da demo que usei em minhas últimas palestras, para construção de uma aplicação ASP.NET Web Role que consome uma base de dados no SQL Azure. Como são vários passos, dividi o tutorial em duas partes. Espero que gostem.

Importante: estou considerando que você já tenha uma conta no Windows Azure. Para criar sua conta, entre no link abaixo e escolha país BRASIL. A seguir, selecione a criação de uma conta do tipo INTRODUCTORY SPECIAL, que é a mesma que estou usando para essa demonstração. Ela não paga nada, dentro de certos limites de utilização. Para testes, é uma boa dica! Mas você vai precisar de um cartão de crédito para cadastro.

Criando uma conta INTRODUCTORY SPECIAL
Ref.: https://windows.azure.com/Cloud/Provisioning/

Importante: este post ainda está compatível com o portal antigo de administração do Windows Azure, assim como o SDK 1.2 do Windows Azure. O novo portal de administração está em Silverlight e entrou em operação esta semana. Em breve, farei a atualização dos principais recursos e funcionalidades sobre o novo portal, que ficou muito bonito. Aguardem!

PREPARANDO O AMBIENTE

Para começar, você precisa preparar seu ambiente de desenvolvimento com o Visual Studio 2010. Se ainda não tiver instalado, use o Visual Studio Express Edition, no link abaixo:

Visual Studio 2010 Express Edition
Ref.: http://www.microsoft.com/express/Downloads/

Com o Visual Studio ok, faça o download de outro componente importante da demo, o SQL Azure Migration Wizard, no link abaixo:

SQL Azure Migration Wizard
Ref.: http://sqlazuremw.codeplex.com/

Agora abra o Visual Studio 2010 como ADMINISTRATOR e selecione a opção FILE / NEW / PROJECT. A janela de templates irá aparecer. Nela, escolha a pasta CLOUD e o template ‘Windows Azure Cloud Service’, para a linguagem de sua preferência. Nesse exemplo, estarei usando C#.

Como é sua primeira aplicação, o Visual Studio irá direcioná-lo para instalar o pacote Azure Tools for Visual Studio, no link a seguir:

Windows Azure Tools for Microsoft Visual Studio
Ref.: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2274a0a8-5d37-4eac-b50a-e197dc340f6f&displaylang=en

Pronto! Sua máquina está pronta para começar a demo. O primeiro passo será criar uma base de dados no SQL Azure.

CRIANDO UMA BASE NO SQL AZURE

Em sua conta no SQL Azure, abra o portal de administração e crie uma nova instância de SQL Azure para sua demo.

Portal de Administração do SQL Azure
Ref.: https://sql.azure.com/

Importante: através desta URL, você ainda opera as bases do SQL Azure através do portal antigo de administração. Somente quando selecionamos a pasta Windows Azure neste portal é que somos redirecionados para a interface em Silverlight. Isso será mais notado na segunda parte desta demonstração. Fique atento!

image

Para nossa demo, vamos criar uma base chamada ADVENTUREWORKSAZURE, pois vamos migrar essa base local para o SQL Azure. Ao clicar em Create Database, vamos escolher uma base de 1 GB apenas, pois será suficiente:

image

Ao final, temos uma base da versão WEB Edition do SQL Azure, com tamanho máximo de 1 GB de dados.

Note que nossa base de administração e controle ‘master’ continua na lista. A base ‘master’ não é cobrada como serviço do usuário, serve apenas para controle interno do SQL Azure.

image

Outra tarefa importante para nossa aplicação é configurar os IP’s liberados no FIREWALL do SQL Azure. Isso é feito na aba “FIREWALL SETTINGS”, que você vê na figura abaixo.

Em meu exemplo, estou liberando todas as faixas de IP’s, pois o cenário é apenas de teste. Em sua aplicação final, faça a correta configuração dos IP’s válidos para consumo do banco na nuvem. Você poderá fazer isso através do botão “Add Rule”.

image

MIGRANDO DADOS PARA O SQL AZURE

Agora que temos nossa base criada, podemos usar a ferramenta SQL Azure Migration Wizard para migrar o schema e os dados de uma base local para a nuvem. Vamos escolher uma base conhecida, como o banco AdventureWorks, que você encontra no link abaixo:

AdventureWorks Community Samples Databases for SQL Azure (December CTP)
Ref.: http://msftdbprodsamples.codeplex.com/releases/view/37304

A base acima já está compatível com os objetos suportados pelo SQL Azure.

Abrindo o SQL Azure Migration Wizard, vamos escolher a carga a partir de um arquivo TSQL, como vemos a seguir:

image

Note que escolhi a opção de análise de compatibilidade e migração do arquivo. Ainda, estou usando um arquivo reduzido do AdventureWorks, pois retirei parte dos dados, para um teste de carga mais rápido. Mantive as estruturas e schemas do banco sem alteração.

Seguindo, o SQL Azure Migration Wizard faz uma varredura de análise no arquivo TSQL, como vemos a seguir:

image

A partir dessa análise, a ferramenta pede as credenciais de acesso e o nome do servidor SQL AZURE que vamos usar, veja:

image

Entrando o servidor e credenciais corretamente, o SQL Azure Migration Wizard mostra as bases disponíveis na nuvem. Como vemos, nossa base ADVENTUREWORKSAZURE aparece na lista. Vamos selecionar essa base para começar a migração dos dados locais.

image

Finalmente, podemos avançar e realizar o processo de migração de dados para a base ADVENTUREWORKSAZURE no SQL Azure.

image

Ao final, nossa instância de SQL Azure na nuvem possui os dados e tabelas da base AdventureWorks, prontos para consumo.

image

No próximo post, vamos ver a segunda parte dessa demo, com a criação de uma aplicação ASP.NET Web Role que irá consumir a base aqui criada. Não perca.

Por enquanto é só! Até o próximo post 🙂

Waldemir.