Hoje vou falar sou o Windows Azure, algo que tem grande potencial para crescer muito rapidamente. Desenvolver para Windows Azure não requer muitas ferramentas e nem muita configuração, é bastante simples.
Instalação
Visual Studio 2010
O Windows Azure funciona apenas com Visual Studio 2010, para quem não tem uma versão paga dele uma boa pedida é o Visual Studio Web Developer 2010 Express: download totalmente gratuito.
Eu recomendo a utilização do Visual Studio para desenvolvimento nas plataformas .Net.
SQL Server
Caso você não possua o SQL Server instalado. A Microsoft disponibiliza duas versões totalmente gratuitas:
- SQL Express 2005.
- SQL Express 2008.
Internet Information Services
É necessário ter instalado e habilitado o IIS 7.0 ou superior com suporte para ASP.NET. Também é disponibilizado gratuitamente o IIS 7.
Azure SDK e Toolkit
Estas ferramentas instalarão os templates de projetos e outras ferramentas necessárias ao desenvolvimento e também o SDK do Windows Azure.
O download do SDK e Toolkit podem ser feito aqui. Se preferir apenas o SDK (esse é obrigatório ter instalado para desenvolver para Azure), os links são: Standalone SDK x64 ou Standalone SDK x86.
Agora você tem um ambiente configurado, vamos a Introdução.
Introdução
Imagine uma aplicação ASP.NET instalada num grupo de servidores para atendimento de requisições que chegam a partir de clientes Web. Imagine ainda que atrás dessa bateria de servidores temos um grupo de máquinas para as regras de negócio, coordenação de processos ou mesmo serviços implementados em WCF – Windows Communication Foundation, fornecendo funcionalidades para essa aplicação. Também no back-end encontramos as máquinas para bancos de dados ou sistemas de integração com o legado da empresa, acessando as chamadas aplicações linhas de negócio (LOB – Line of Business Applications). Esse cenário é muito comum nas empresas hoje em dia, implementado numa infra-estrutura própria (on-premise) ou eventualmente com máquinas em provedores e hosts locais.
A partir de uma campanha de marketing, que coloque em evidência sua empresa, ou mesmo devido o crescente interesse pelas funcionalidades da aplicação, o volume de transações deve crescer ao longo do tempo, aumentando o número de requisições ou mesmo de usuários simultâneos nas páginas e serviços da solução. Em seu planejamento, você prepara esse crescimento, disparando a compra de mais servidores, mais infra-estrutura de rede e a configuração da nova parte da TI para a aplicação. Com esse crescimento, ganhamos um custo de operação adicional, mais máquinas para administrar, monitorar, enquanto você passa a ser responsável pela atualização de software básico e instalação das funcionalidades da aplicação em mais máquinas. Os riscos e desafios aumentam.
Imagine agora que o volume de acesso e requisições diminua por alguma razão, estabilizando num patamar inferior ao volume inicialmente previsto de crescimento, recuando para o volume original de acesso. Suas máquinas estão agora ociosas a maior parte do tempo, ainda consumindo custos de operação, administração, energia elétrica, monitoração, etc. Não seria interessante poder simplesmente mudar um arquivo de configuração e “desprovisionar” essas máquinas adicionais, pagando novamente os custos originais do sistema? E que tal fazer esse provisionamento/desprovisionamento quantas vezes quiser, enquanto for necessário? O cenário apresentado é o ambiente perfeito para o modelo de computação na nuvem e o Windows Azure.
Cloud Computing
De forma simplificada, podemos definir o cloud computing ou computação na nuvem como um ambiente de processamento e armazenamento de dados massivo, de alta escalabilidade e alta disponibilidade, acessível via interfaces web como HTTP, REST e SOAP, instalado em datacenters de última geração espalhados pelo mundo.
Uma grande característica desse modelo de computação é o provisionamento elástico da computação: olhando o exemplo da introdução, podemos iniciar a operação do sistema com 10 máquinas previstas para o front-end e back-end. Com o crescente volume de requisições, podemos contratar novas máquinas, passando para um cenário de 20 máquinas para o front-end e back-end, de forma dinâmica, através da configuração do ambiente via um portal de administração, por exemplo. Terminado o pico de utilização, podemos simplesmente retornar para a configuração original de 10 máquinas, apenas atualizando a configuração do ambiente na nuvem. Esse poder de configuração é conhecido como computação elástica, onde o provisionamento é feito de modo dinâmico, conforme a demanda pela aplicação. Ao mesmo tempo, novos modelos de contração, subscrição de serviços e licenciamento estão associados, onde a empresa pode pagar apenas pela infra-estrutura que realmente usa.
O principal objetivo da computação em nuvem, é disponibilizar recursos aaS (as a Service), desta forma podemos disponibilizar SaaS (Software as a Service), HaaS (Hardware as a Service), dentre outros. Desta forma, podemos fazer um provisionamento e melhorias de processamento de hardware, alta-disponibilidade de aplicativos e capacidade computacional, que fique transparente para o usuário e que ele não tenha down-time, ou seja, que não parem os serviços durante o provisionamento.
Fazendo algumas contas, você verá que o cenário de computação na nuvem pode oferecer uma grande redução nos custos de administração e operação da TI nas empresas, o que tem explicado o interesse crescente de clientes e fornecedores de software, como a Microsoft.
Entre as características presentes no Windows Azure destacamos sua natureza para o “utility computing”, onde diversos serviços são oferecidos pelo sistema operacional para administrar e abstrair os recursos presentes no datacenter, como:
- Facilidade para expandir para novas localidades (geo-distribuição);
- Atualização viva de novas funcionalidades de software;
- Aplicação de patches e correções de sistema operacional;
- Diagnóstico e recuperação de falhas de hardware no próprio datacenter;
- Grande capacidade de armazenamento com alta disponibilidade;
- Lidar com o aumento de tráfego;
- Diagnosticar e responder a falhas de serviços.
Vamos olhar um pouco mais do núcleo de operação do Windows Azure: ele é composto pelos componentes de processamento, gerenciamento de serviços (Service Management), virtualização (Virtualized Compute), espaço de armazenamento (Storage) e tipos de dados específicos para o ambiente de computação elástica, como Tables, Blobs, Queues e Locks.
Componentes do Núcleo do Windows Azure
Alguns cenários de aplicações são especialmente aderentes ao modelo de computação na nuvem, como:
- SaaS LOB Applications, ou aplicações linhas de negócio no modelo SaaS (Software as a Services), oferecendo funcionalidades como serviços. Alguns exemplos são CRM SaaS, HR SaaS, ERP SaaS, etc;
- Aplicações Web Colaborativas, envolvendo diversos dispositivos e usuários com a manipulação de formatos de dados diversos;
- Aplicações com Hub de dados compartilhados, envolvendo um volume crescente de dados compartilhados entre diversas empresas, como cenários de cadeias de suprimentos, integração entre empresas, etc;
- Aplicações Web com Business Intelligence e Data Mining, com volumes crescentes de dados e armazenamento de informações.
Muitos outros cenários são aderentes ao modelo, a lista acima é apenas um começo.
Azure Services
- Windows Azure – É o coração de tudo. O Windows Azure é o sistema operacional que vai prover todos os recursos. Nele também é onde encontramos o gerenciamento de serviços, aplicativos e provisionamento de computação;
- SQL Azure – É o SQL Server na nuvem. Com ele, podemos ter a disposição um banco de dados relacional, com hospedagem e processamento na nuvem. Ainda não tem todos os recursos do SQL Server on-premises (o SQL que instalamos em nossos servidores, a versão “comum” do SQL);
- Windows Azure AppFabric – Framework de comunicação e gerenciamento de aplicativos e recursos na nuvem e on-premises.
Preços
Veja a lista abaixo:
- Conta introdutória, algo como um trial do serviço;;
- Benefícios da Plataforma Windows Azure para Assinantes do MSDN.
Outra coisa é que é necessário ter cartão de crédito para a criação da conta, pois se passar o limite de testes, haverá cobrança normal do serviço.
Construindo uma aplicação ASP.NET para Windows Azure e SQL Azure
Nesse artigo você irá aprender a migrar uma base de dados para o SQL Azure, criar sua primeira aplicação ASP.NET Web Role, acessar os dados de uma instância de SQL no SQL Azure e finalmente publicar sua aplicação no Windows Azure. Confira aqui.


