Artigo


Criando um serviço na nuvem com Windows Azure - Parte 1

6/10/2009

 O Windows Azure é a plataforma da Microsoft voltada para computação na nuvem (Cloud-Computing). Ultimamente tem-se falado muito sobre essa nova plataforma e hoje resolvi escrever um artigo mostrando na prática a facilidade de se desenvolver um serviço Web baseado em ASP.Net e hospedá-lo na nuvem.

O artigo está dividido em duas partes: a parte do serviço de aplicação baseado em ASP.Net e a parte de banco de dados na nuvem com SQL Azure.

Para desenvolvedores, o Windows Azure conta com diversas ferramentas para linguagens como ASP.Net, PHP e futuramente Java Web. Neste artigo irei focar somente na parte de ASP.Net, com Visual Studio 2008. (Lembrando que, para desenvolver aplicações para Windows Azure com o Visual Studio 2008, é necessário rodar o Windows Vista ou superior como cliente).
Os requisitos para desenvolvimento com Windows Azure são:
•Windows Vista ou superior
•Visual Studio 2008 Professional com SP1
•Uma conta válida no Windows Azure para Hosting Services (serviços de hospedagem) e SQL Data Services (armazenamento de banco)
•SQL Server 2008 Management Studio (para criação das tabelas do banco na nuvem)
Além disto, você vai precisar do Windows Azure Tools for Visual Studio 2008 (Add-In que permite criar projetos na nuvem do Azure). Pode baixá-lo aqui: Windows Azure Tools for Microsoft Visual Studio July 2009 CTP
Para criação da conta no portal do Windows Azure, é necessário se cadastrar no Microsoft Connect, o qual será carregado desta forma:

Figura 1.1 - Página do Microsoft Connect


Após a instalação do Azure Tools, seu Visual Studio terá um novo tipo de template instalado:

Figura 1.2 - Template novo no Visual Studio 2008


Este Add-In nos permite criar um novo projeto de serviço na nuvem (neste modelo de computação na nuvem, não chamamos de aplicação, e sim de serviço, pois este é o maior intuito: prover um determinado serviço):

Figura 1.3 - Adição de novos projetos


Ao clicarmos em OK no nosso serviço, temos a janela de roles (papéis):

Figura 1.4 - Webroles do Windows Azure


Roles são os tipos de papéis com os quais podemos trabalhar. Neste caso, irei trabalhar apenas com o ASP.NET Web Role, que será utilizado para criar um serviço web na nuvem, e o chamarei de AzureWebRole.
Como já criamos nosso serviço, basta que o modifiquemos de acordo com as necessidades de nossa aplicação, seja ela um e-commerce ou um simples serviço de tarefas a fazer (To-Do). O bom de se trabalhar com o Azure, é que quem está acostumado com o ASP.Net não vai precisar mudar seus conceitos e paradigmas para que se tenha uma aplicação consistente rodando no Azure.
Mas nem só de ASP.NET básico vive o Azure. Além do PHP e Java comentados no início do artigo, no mundo .Net o Azure também aceita ASP.NET MVC e Silverlight, tecnologias que estão aparecendo no mundo do desenvolvimento.

Figura 1.5 - Solution Explorer e Código ASP.Net


Como o artigo trata sobre Windows Azure e computação na nuvem, não trabalharei a parte de criação do serviço com ASP.NET. É um assunto extenso, que dá conteúdo para uma série inteira sobre ele. Caso queiram aprender ASP.Net, recomendo que comecem pelo HTML básico, caso não saibam ainda, ou procurando tópicos na internet sobre o mesmo.
Seguindo com o artigo, seguiremos para a parte de deploy – colocar o serviço para rodar na nuvem!
Ao final da customização do seu serviço, note que, no Solution Explorer (do lado direito do código), há um projeto em negrito, no caso o ServicoWeb. Ele é nosso projeto principal, em se tratando de Windows Azure. Clicando com o botão direito sobre ele, temos as seguintes opções:

Figura 1.6 - Publicando um serviço do Windows Azure


Como podem ver, a opção que mais nos interessa atualmente é a opção Publish (Publicar), que fará com que iniciemos nosso processo de deploy no portal do Windows Azure.
Clicando nessa opção, o Visual Studio irá compilar o projeto, e se tudo der certo, o portal do Windows Azure será aberto no navegador, e os arquivos compilados serão mostrados no Windows Explorer:

Figura 1.7 - Portal do Windows Azure


Podemos ver na figura acima que há um projeto especificado, o PDC08 CTP. Ele é um projeto comum para o portal do Windows Azure, pois é nele que podemos fazer nossos serviços de testes, devido ao Azure ter sido lançado para testes no PDC (Professional Developers Conference) de 2008, em forma de um CTP (Community Technology Preview).
Clicando sobre o projeto, somos levados à página onde todos os nossos serviços se encontram. Caso seja seu primeiro serviço na nuvem, aparecerá apenas um link com o texto New Service, onde poderemos criar uma nova referência para um serviço da nuvem.

Figura 1.8 - Página de serviços


Temos aqui dois tipos de projetos:
•Hosted Services – responsável pelos serviços com interface com o usuário (“aplicações” ASP.NET, PHP e Java)
•Storage Account – serviço de armazenamento de grandes volumes de dados estruturados ou não-estruturados
Como visto na figura, não possuo mais nenhum serviço de hospedagem (Hosted Service) disponível. Em compensação, possuo 5 contas de armazenamento (Storage Account). Neste caso, irei utilizar um serviço de hospedagem que criei especificamente para este artigo.

Figura 1.9 - Página de deploy


Vendo na figura acima, selecionei o serviço Desenvolvendo Para a Nuvem. Podemos observar nele, que temos o nome, a descrição e dois cubos, o Staging e o Production.
Estes dois cubos são responsáveis pelo ambiente de produção (Production) onde o serviço irá rodar plenamente, e o ambiente de testes (Staging), que será isolado da produção, não comprometendo assim o ambiente onde a confiabilidade é extremamente necessária. Como ambos estão vazios, significa que estão sem nenhum serviço implantado. Para efetivarmos o deploy, vamos clicar no botão Deploy do Staging.

Figura 1.10 - Deploy do Staging


Podemos ver que temos dois campos para carregar arquivos, sejam eles do disco local ou de uma Conta de Armazenamento (storage account), pra que sejam referenciados diretamente da nuvem.
Estes dois arquivos, são os que aparecem quando efetuamos o publish no nosso serviço, lá no Visual Studio. O primeiro é o arquivo *.cspkg, e o segundo o arquivo *.cscfg (Cloud-Service Package e Cloud-Service Configuration, respectivamente).
Após carregarmos os dois arquivos, devemos também criar um rótulo (Label) que irá identificar este upload. Irei chamá-lo de Upload Inicial. Após isto, basta clicarmos em Deploy.

Figura 1.11 - Deploy efetuado


Já após o deploy, teremos o seguinte cenário: um cubo “cheio” e um botão de troca, o qual está no meio. Podemos observar também que existe um indicador de status, que está mostrando “Allocated” e um endereço URL. Como nosso serviço está ainda em status Allocated, devemos iniciá-lo, clicando no botão Run, para que depois seja acessível pela URL indicada abaixo.
Lembrando também do botão de troca, ele serve para que, quando desejado, coloquemos nosso ambiente de testes em produção, e vice-versa.
Após clicar no botão Run, nosso ambiente de testes está online, como pode ser visto através do status a seguir (caso venha a demorar pra iniciar o serviço, não se preocupe, pois é normal):

Figura 1.12 -Status do serviço


E disponível através do endereço http://e7bb06bce9104911b00dadc851000713.cloudapp.net/
Para que coloquemos nosso ambiente de testes em produção, basta que cliquemos no botão de troca, o que fará nosso serviço se tornar disponível através do endereço: http://cloudtodo.cloudapp.net/

Com isto, chego ao final da primeira parte do artigo. Espero que tenha sido de bom entendimento, para que na próxima parte possamos ver a facilidade de se usar o SQL Azure (antigo SQL Data Services - SDS).

Até a próxima!

Alliston Carlos



Alliston Carlos - alliston@live.com

  • Bacharel em Sistemas de Informação
  • Certificado ASP.Net, WPF, Windows Forms e Framework Foundation (70-562 / 70-502 / 70-526 / 70-536)
  • Desenvolvedor na Politec - GYN

Interessado em:

  • Inovações de User Experience (com WPF e Silverlight)
  • Desenvolvimento ágil com SCRUM
  • Modelagem de Sistemas com UML
  • Arquitetura de Sistemas
  • Gerência de Projetos



| | Mais


Comentários

Alliston Carlos
alliston

.NETAlliston Carlos

1/11/2009 17:03:52

Obrigado Paiva, aguarde os próximos :)

Marcelo Paiva
marcelo.paiva

.NETMarcelo Paiva

14/10/2009 18:20:34

Muito bom o artigo. Parabéns Alliston.

José Lino Neto
barley3066

.NETJosé Lino Neto

14/10/2009 16:15:01

o expression encoder 3 ou camtasia

Alliston Carlos
alliston

.NETAlliston Carlos

14/10/2009 11:54:57

Valeu Kono! E legal a idéia Lino, vou adotar sim. Tem alguma ferramenta de gravação da tela com áudio pra indicar?

José Lino Neto
barley3066

.NETJosé Lino Neto

14/10/2009 10:19:11

se puder prepara vídeos também sobre o assunto. Ao realizar as demos já vai gravando o vídeo para colocar nos artigos... Estamos pensando em pontuar os artigos, dicas e etc. Vai haver um bônus para os vídeos em artigos...

Rodrigo Kono
kono

.NETRodrigo Kono

14/10/2009 0:06:16

Muito bom esse artigo. Muito bem descrito e explicado. Esperamos os próximos! Parabéns Alliston.

Alliston Carlos
alliston

.NETAlliston Carlos

13/10/2009 20:59:55

Justamente SQL Azure na parte 2! E eu já ouvi falar desse SQL Azure Explorer, mas é uma pena que ainda não tenha pro VS2008, pois tá muito bom. Tem também o SQL Azure Management, uma ferramenta escrita em WPF pra gerenciar o SQL Azure. Muito bom também!

José Lino Neto
barley3066

.NETJosé Lino Neto

13/10/2009 20:12:21

Show de bola alliston, o que vem para a parte 2? estava testando o vs2010 com o explorer para SQL Azure, já na nuvem. Ouviu falar?

Qual a sua opinião?
Faça o login no topo do site ou cadastre-se rapidamente.



2003-2009 DevGoiás.NET. Todos os direitos reservados.