You are on page 1of 25

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010 White paper

Publicado em fevereiro de 2011

ndice
Introduo ............................................................................................................. 1 Um caso para a computao em nuvem ..................................................................... 2 SaaS, IaaS e PaaS .............................................................................................. 4 Apresentando o Windows Azure ................................................................................ 5 Ol nuvem! ............................................................................................................ 6 Explorando o aplicativo de amostra da Green Fee Broker .......................................... 6 Desenvolvendo para o Windows Azure com o Visual Studio 2010 ............................... 7 Implantao no Windows Azure ........................................................................... 15 Concluso ............................................................................................................ 20 Sobre o autor: .................................................................................................. 20 Apndice ............................................................................................................. 21 Servio de computao do Windows Azure ............................................................ 21 Armazenamento do Windows Azure ..................................................................... 22 Segurana na nuvem ......................................................................................... 22

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010
White Paper
Publicado em fevereiro de 2011 (estilo = Publicado)
Para obter as informaes mais recentes, visite: http://msdn.microsoft.com/vstudio

Introduo
Organizaes de todos os portes sofrem presso constante para fazer mais com menos. Oferecer solues que atendam a essas demandas e ainda reduzam os custos operacionais, maximizando a eficincia, no apenas altamente desejvel: uma necessidade. E, alm disso, espera-se que os provedores de solues em tecnologia da informao garantam o fornecimento do servio ao mesmo tempo em que crescem dinamicamente com as necessidades dos negcios e minimizam os custos. Essa proposta no nada fcil. As organizaes precisam ser cuidadosas ao selecionar a infraestrutura e uma plataforma que oferea produtividade operacional e de desenvolvimento. Essas so escolhas que precisam atender s necessidades atuais e futuras do negcio. S que planejar investimentos baseando-se em custos imprevisveis de plataforma e infraestrutura pode ser uma tarefa herclea. Em resposta a esses desafios, chega uma tecnologia que pode mudar tudo, conhecida como computao em nuvem. A Wikipdia define a computao em nuvem como a evoluo natural da ampla adoo da virtualizao, da arquitetura voltada para servios e da computao utilitria. Os detalhes so invisveis aos consumidores, que no precisam mais conhecer profundamente nem controlar a infraestrutura de tecnologia na nuvem responsvel por tudo. O Windows Azure uma oferta de computao em nuvem do tipo Plataforma como um Servio (PaaS), que forma a base da plataforma de servios Azure da Microsoft. O foco das ofertas de PaaS est em permitir que os clientes desenvolvam, implantem e operem aplicativos sem ter que se concentrar na infraestrutura subjacente, nos servidores ou no gerenciamento das operaes em andamento. Os desenvolvedores escrevem aplicativos para o Windows Azure com o Microsoft .NET, um framework de criao de aplicativos e servios para desktops, dispositivos mveis, a Web e a nuvem. O Windows Azure tem suporte a vrias linguagens de programao que no so da Microsoft, como PHP, Java e Ruby, mas o Microsoft .NET oferece diversas opes de linguagens aos desenvolvedores, dentre as quais as mais comuns so o Visual C# e o Visual Basic para a criao
Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010 1

de aplicativos em .NET, alm do ASP.NET, framework principal da Microsoft para a criao de aplicativos Web. Esses aplicativos podem ser criados com um simples editor de textos e com ferramentas de linha de comando para cuidar da compilao, mas o Visual Studio 2010 o principal ambiente de desenvolvimento integrado (IDE) para a criao de aplicativos .NET de implantao local e na nuvem.

Um caso para a computao em nuvem


Fazer estimativas e oferecer infraestrutura sai caro, porque difcil prever as necessidades elsticas de um aplicativo ou servio ao longo do tempo. Mesmo deixando o planejamento da capacidade por conta de especialistas, as necessidades de um negcio podem se expandir e contrair abruptamente, j que as demandas por produtos e servios costumam ser elsticas. O resultado que, muitas vezes, as empresas precisam optar entre nivelar por baixo ou por cima na hora de adquirir infraestrutura. Nivelar por baixo apresenta um risco bastante realista de falha no fornecimento do servio, e nivelar por cima pode sair tremendamente caro. Como vemos na figura 1, muitas empresas ficam no meio termo, o que implica em um incessante processo de aquisies e em um grande aumento de despesas, conforme um servidor aps o outro vai desaparecendo em um buraco negro. Isso no s provoca um escoamento dos oramentos operacionais do ponto de vista do hardware, como causa uma grande perda de tempo no provisionamento e na implantao de servidores, o que tambm sai caro e prejudica a capacidade de implantar recursos em atividades geradoras de receita que sejam mais tangveis.

Figura 1: o eterno desencontro entre oferta e demanda de capacidades de TI. Uma organizao precisa extrapolar os investimentos na plataforma e na infraestrutura para garantir sua capacidade de dimensionar de acordo com as necessidades (que esto sempre mudando) de seu negcio? Quanto custa essa
Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010 2

capacidade excessiva que fica sem uso por um dado perodo de tempo? Ou pior: com oramentos cada vez mais agressivos, quais so as consequncias sobre a identidade da marca e a experincia do cliente decorrentes de um investimento subestimado e da introduo do risco de no se conseguir atender s necessidades operacionais do negcio? A computao em nuvem revolucionria porque proporciona a consumao da infraestrutura, da plataforma e do software como uma utilidade, ou um servio para as massas. Com a computao em nuvem, as empresas que so especialistas no fornecimento de infraestrutura, plataforma e software em caixa realizam macios investimentos em data centers e infraestrutura redundante para oferecer essas capacidades como servios comuns, que sua empresa pode consumir conforme a necessidade. Assim como acontece com suas utilidades domsticas, sua empresa estende um aplicativo para que ele apenas se conecte nuvem, tirando proveito da escala e da redundncia macias por uma taxa pr-definida, mensurada ou por usurio. O resultado um alinhamento muito melhor da capacidade de TI s necessidades elsticas do negcio, como mostra a figura 2.

Figura 2: alinhamento da capacidade s necessidades elsticas do negcio. Neste white paper, voc descobrir como se conectar ao Windows Azure usando o Visual Studio 2010, acompanhando o processo de estender um aplicativo existente para a nuvem. Antes de comearmos, vamos conversar sobre as trs maneiras mais comuns que os provedores de nuvem, incluindo a Microsoft, usam para empacotar seus produtos de computao em nuvem.
Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010 3

SaaS, IaaS e PaaS


A promessa da nuvem a escolha, e h vrias empresas oferecendo diversos servios em nuvem empacotados como Software como um Servio (SaaS), Infraestrutura como um Servio (IaaS) ou Plataforma como um Servio (PaaS), conforme resume a figura 3. Software como um Servio (SaaS) exatamente o que parece ser. As empresas criam pacotes comerciais de software e os disponibilizam de maneira prtica na Internet. O SaaS pode proporcionar uma economia expressiva s organizaes que querem tirar proveito de ofertas empacotadas, como pacotes de software de gerenciamento de relacionamento com o cliente (CRM), permitindo maior acesso ao software sem a preocupao com os requisitos do sistema ou outros prrequisitos. A Infraestrutura como um Servio (IaaS) um tipo de servio de nuvem que oferece o gerenciamento, a hospedagem e o provisionamento da infraestrutura de computadores. Em vez de adquirir hardware fsico, como servidores e PCs, instalar sistemas operacionais, empilhar servidores e conectar a redes, os usurios da IaaS s precisam consumir instncias de sistemas operacionais, disponibilizadas prontamente ao alcance de seus dedos. Tanto o SaaS quanto a IaaS tm seu espao na computao em nuvem, mas para muitas organizaes, apenas solues altamente personalizadas tm utilidade. A abstrao da Plataforma como um Servio (PaaS) vai alm da proporcionada pela IaaS, oferecendo uma plataforma sobre a qual possvel criar software personalizado que ir permitir s organizaes desenvolver, implantar e operar aplicativos sem a necessidade de se concentrar na infraestrutura subjacente, nos servidores ou no gerenciamento das operaes em andamento. Com a PaaS, voc no se concentra na infraestrutura. Voc cria seus aplicativos para uma plataforma qualquer, como .NET, e s precisa implantar seu software em um continer lgico. Isso d fim s confusas tarefas de implantao e disponibiliza seu aplicativo para uso em qualquer nvel de escalabilidade e redundncia necessrio. A Microsoft oferece s empresas e aos desenvolvedores a maior variedade de escolhas para seu investimento em computao em nuvem, porque a nica empresa que oferece produtos SaaS, IaaS e PaaS. A Microsoft se diferencia da Amazon, do Google e de outros concorrentes em um nvel fundamental, por oferecer aos clientes a flexibilidade de usar tecnologia local, tecnologia na nuvem ou ambas, como parte da estratgia de software mais servios (S+S) da Microsoft. Neste documento, vamos nos concentrar no Windows Azure, que em seu ncleo oferece a plataforma .NET como um servio (PaaS) sobre o qual podem ser criados aplicativos personalizados e altamente dinmicos em escala de Internet.

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

Figura 3: produtos comuns oferecidos por provedores de nuvem.

Apresentando o Windows Azure


O Windows Azure o sistema operacional da Microsoft para a nuvem, e forma a base da plataforma Windows Azure da Microsoft. Como uma oferta PaaS, o Windows Azure abstrai os detalhes da hospedagem, os componentes em tempo de execuo e o gerenciamento, ajudando voc a concentrar seu tempo e seus recursos na criao de software que gere valor corporativo. Alm de oferecer um sistema operacional para a nuvem, a plataforma Windows Azure traz produtos adicionais em nuvem, incluindo AppFabric, SQL Azure, CDN e MarketPlace. Cada uma dessas tecnologias enriquece a experincia de desenvolvimento e o alcance dos aplicativos implantados no Windows Azure, no meio corporativo, localmente, na nuvem ou em qualquer combinao destes. AppFabric um conjunto integrado de servios de hospedagem, gerenciamento, conexo e proteo de seus aplicativos e de aplicativos de terceiros implantados tanto no local quanto na nuvem. Com ele, possvel conectar e dimensionar seus aplicativos, estejam eles em execuo no local, na nuvem ou em ambos. SQL Azure um servio de banco de dados relacional (RDBMS) baseado na nuvem, criado com base em tecnologias SQL Server. Ele oferece muitas das capacidades do SQL Server, com a facilidade da hospedagem na nuvem pela Microsoft. Com o SQL Azure, basta apontar o aplicativo para o banco de dados: o SQL Azure cuida do resto. CDN uma rede de entrega de contedo que distribui geograficamente cpias de dados usados com frequncia, como arquivos, imagens e vdeos, de forma que eles estejam o mais prximo possvel dos usurios de seus aplicativos que consomem essa mdia. Isso ajuda a garantir que o contedo do qual seu aplicativo precisa possa ser acessado o mais rapidamente possvel.

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

Marketplace uma parada nica para a descoberta de feeds de dados e outros aplicativos que possam ser usados para levar seus aplicativos para o mercado de forma mais fcil e rpida. Por exemplo, o DataMarket oferece feeds de dados que podem ser integrados ao seu aplicativo, poupando o tempo e o dinheiro que voc investiria para juntar ou localizar esses arquivos.

A plataforma Windows Azure tem muitos recursos teis e empolgantes, mas este documento vai se concentrar em explicar melhor o Windows Azure e na facilidade de se criar novos aplicativos ou estender aplicativos existentes para o Windows Azure com o Visual Studio 2010. Voc vai descobrir como, juntos, eles proporcionam um ambiente de desenvolvimento, tempo de execuo e gerenciamento com suporte capacidade de desenvolver, implantar e executar seus aplicativos em escala de Internet. Para aprender mais sobre o servio de computao do Windows Azure, o armazenamento do Windows Azure e a segurana na nuvem, consulte o apndice deste documento.

Ol nuvem!
Explorando o aplicativo de amostra da Green Fee Broker
Vamos comear analisando uma empresa start-up que h pouco tempo comeou a ter problemas com o crescimento. Graas Green Fee Broker, os amantes do golfe podem jogar em seus campos favoritos pelos menores preos possveis. O golfista instala o aplicativo My Green Fee Broker em seu smartphone, escolhe uma lista de campos de golfe participantes e assina alertas que o avisam quando um campo registrado publica um horrio disponvel para jogo. O interessado em agendar um horrio pode enviar sua oferta diretamente pelo smartphone ou fazer logon no My Green Fee Broker Online, um site que tambm permite enviar solicitaes de agendamento ao Green Fee Broker Service por qualquer PC. A partir da, o Green Fee Broker Service pesquisa pelas menores taxas publicadas disponveis, agenda o campo e notifica o horrio ao golfista via alerta no smartphone e/ou via notificao por email. O bom do Green Fee Broker Service que ele est sempre disponvel. Ele expe uma API de servio Web que pode ser consumida pelo aplicativo para smartphones My Green Fee Broker ou pelo Green Fee Broker online (e tambm por propriedades de marca na Web para campos de golfe especficos). Com isso, o golfista pode usar a API do Fee Broker Service para fazer uma solicitao de agendamento sob demanda, ou em resposta a um alerta no smartphone. No entanto, a maior fora do produto rapidamente foi se tornando seu calcanhar de Aquiles. O sucesso das campanhas de marketing e o boca a boca puseram prova a capacidade da empresa de garantir que o mecanismo central, que expe a API para gerenciamento de solicitaes de clientes e cadastro de novos clientes, permanecesse disponvel. O volume de trfego atingindo a API do Green Fee
Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010 6

Broker Service excedeu a capacidade da infraestrutura disponvel, e os eventuais travamentos do aplicativo passaram a ameaar a marca que a start-up deu to duro para construir. Como adicionar servidores e lidar com a complexidade da configurao de clusters e fazendas Web no era uma opo, a empresa foi buscar a soluo na nuvem. Uma opo era mover o Green Fee Broker Service de sua instalao local para um provedor IaaS. Embora essa opo certamente fosse mais atraente do que a situao atual, instalar todos os componentes necessrios plataforma e implantar o servio em instncias com hospedagens mltiplas fugia bastante do foco do Green Fee Broker, que era simplesmente o de estar sempre disponvel. Alm disso, o tempo e os gastos com o gerenciamento independente de cada instncia seriam melhor investidos em atividades que aumentassem a produo diretamente. Aps algumas discusses internas, a equipe de gerncia de desenvolvimento decidiu que a API do Green Fee Broker Service era perfeita para implantao no Windows Azure. Sendo essencialmente um mecanismo de intermediao exposto como um servio Web via HTTP para os vrios clientes que fazem uso da API, o servio de intermediao no s precisa estar sempre disponvel como tambm tem que ser capaz de dimensionar de acordo com as crescentes demandas desta start-up bem-sucedida. Em vez de continuar caindo na armadilha da escada que mostramos na figura 1, o Windows Azure oferece Green Fee Broker ferramentas que alinham a capacidade s necessidades precisas de seus clientes, conforme discutido originalmente na figura 2. Como a equipe j cria aplicativos no .NET Framework, a curva de aprendizado mnima e possvel tirar proveito das ferramentas e habilidades que a equipe j tem, com pouca ou nenhuma alterao no cdigo. Alm disso, o Windows Azure no exige alto investimento inicial, e as despesas de capital podem ser convertidas em despesas operacionais. Como a start-up s precisa pagar pelo que usa, ela ganha a flexibilidade e a capacidade de testar novas ideias sem ter que fazer um grande investimento inicial na infraestrutura que alimenta a inovao. Todos esses benefcios do Windows Azure permitem empresa manter o foco na criao e na inovao de seu produto, na mesma plataforma e com as mesmas ferramentas que ela usava para criar qualquer outro aplicativo para .NET.

Desenvolvendo para o Windows Azure com o Visual Studio 2010


O Visual Studio um ambiente de desenvolvimento integrado (IDE) para o desenvolvimento de aplicativos no Microsoft .NET Framework. O Visual Studio 2010 traz um conjunto de ferramentas de grande importncia para desenvolvimento, teste e manuteno de aplicativos, tanto para implantao local quanto na nuvem. Vou mostrar como estender um aplicativo existente para implantao no Windows Azure com o Visual Studio, adicionando um projeto do Windows Azure e associando-o a uma funo da Web. Depois, vou demonstrar como simples usar o Visual Studio 2010 para testar um aplicativo de nuvem localmente e empacot-lo para implantao no Windows Azure.

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

Explorando o Green Fee Broker Service O Green Fee Broker Service um servio Web criado com o Windows Communication Foundation (WCF). O WCF um framework de mensagens que faz parte do .NET Framework, e permite compartilhar unidades modulares de funcionalidade (as classes) com outros aplicativos, expondo essas classes com funes especiais (os operadores). Essas operaes podem ser executadas por aplicativos na mesma mquina, por mquinas diferentes na mesma rede ou em mquinas em redes totalmente diferentes. O Green Fee Broker Service expe funcionalidade essencial via HTTP, incluindo operaes de registro de novos campos de golfe e de recuperao de lista de campos de golfe participantes, e operaes que permitem que os campos de golfe publiquem os horrios disponveis para jogo. O Visual Studio organiza as classes em contineres especiais chamados de projetos, que por sua vez so agrupados em um continer especial chamado de soluo. Uma soluo pode ter um ou mais projetos que incluam uma ou mais classes. Depois de escrever cdigo dentro das classes, voc constri uma soluo que conduz uma srie de verificaes, garantindo que seu cdigo vlido e segue as regras da linguagem. Se tudo correr bem, cada projeto vai ser empacotado em um conjunto, e esse conjunto pode ser executado diretamente ou chamado por um conjunto diferente que seja parte de um projeto (no caso de um servio Web, um cliente envia mensagens para o conjunto por meio de um canal de comunicao para execut-lo). Por dentro da soluo GreenFeeBroker est um projeto do Visual Studio 2010 chamado de BookingService. Neste caso, o projeto BookingService usa o modelo de aplicativo Web do WCF, que proporciona os arquivos bsicos para a criao de um servio Web do WCF. Em sua forma mais simples, o projeto de aplicativo Web do WCF consiste de dois arquivos, como mostra a figura 4: BrokerService.svc contm a implementao das operaes mencionadas acima. Web.config contm a configurao bsica, para hospedagem do servio Web.

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

Figura 4: o projeto Broker Service no gerenciador de solues do Visual Studio 2010. O servio Green Fee Broker expe sua funcionalidade usando SOAP sobre o protocolo HTTP. O SOAP possibilita o uso de tcnicas familiares orientadas a objetos no desenvolvimento do servio, e automatiza os meios pelos quais o servio troca e processa mensagens XML pela Internet. Seria tentador criar cdigo que implementasse as operaes do BrokerService diretamente no arquivo BrokerService.svc. No entanto, o aplicativo Green Fee Broker foi desenvolvido tendo em mente a separao dos assuntos, ento cada unidade de funcionalidade sempre independente da outra, mas elas funcionam juntas para realizar o trabalho. Sendo assim, o projeto contm classes adicionais que definem um campo de golfe (a classe Course), isolam regras de negcios para operao com campos em uma classe chamada CourseManager e agrupam todas as operaes de dados em uma classe comum chamada DataServiceAgent. A separao de assuntos um princpio de design importante no desenvolvimento para execuo local ou na nuvem, porque permite o foco em fatias de funcionalidade e gera um software mais fcil de entender e manter. E mais: ao desenvolver aplicativos que sero executados localmente e/ou na nuvem, a capacidade de gerenciar o estado e tomar decises de implantao simplificada sensivelmente pelo mapeamento de camadas lgicas a camadas fsicas, como acontece com Web Roles, Worker Roles e servios de armazenamento.

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

Estendendo o Green Fee Broker Service para a nuvem Criar novos aplicativos e servios para o Windows Azure com o Visual Studio 2010 muito simples. Acredite se quiser, mas como o servio foi criado em .NET com o Visual Studio para hospedagem local, com exceo de uma pequena configurao ele j est pronto para ser hospedado no Windows Azure. Para fazer uma demonstrao, vamos habilitar o aplicativo Green Fee Broker para o Windows Azure1. Criando um projeto do Windows Azure A primeira coisa a fazer para desenvolver ou estender um aplicativo para o Windows Azure adicionar um projeto do Windows Azure sua soluo Visual Studio 2010. Assim como o modelo WCF Service Application oferece tudo o que voc precisa para criar um servio Web do WCF, o modelo de projeto do Windows Azure oferece o continer e a configurao necessrios para empacotar uma soluo comum do Visual Studio 2010 para o Windows Azure. Para comear, basta adicionar um novo projeto do Windows Azure soluo GreenFeeBroker, dar um nome ao projeto e clicar em OK (figura 5).

Figura 5: adicionando um projeto do Windows Azure no Visual Studio 2010 O Visual Studio 2010 apresenta uma lista de funes que iro adequar o modelo ao tipo de aplicativo que voc est criando. Neste caso, j que queremos habilitar o BrokerService para o Windows Azure, vamos escolher a funo Web WCF Service, como mostra a figura 6.
1
Alm do Visual Studio 2010, voc ter que instalar as Ferramentas do Windows Azure para o Microsoft Visual Studio verso 1.3, que incluem o kit de desenvolvimento de software (SDK) e esto disponveis aqui: http://msdn.microsoft.com/en-us/windowsazure/cc974146.aspx. Se estiver usando uma verso de 32 bits do Windows 7, ou se estiver usando o Windows Vista ou o Windows Server 2008, voc vai querer instalar alguns hotfixes tambm.

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

10

Figura 6: escolhendo a funo Web WCF Service. O projeto do Windows Azure simplifica a configurao do projeto BrokerService para o Windows Azure, fornecendo uma interface de usurio para a associao de projetos a uma funo. Basta um clique com o boto direito no cone de funes (Roles) para selecionar um projeto existente ou criar um novo. Depois disso, o projeto que voc adicionou ser associado funo, conforme mostra a figura 7.

Figura 7: o resultado da associao de um projeto novo ou existente a um projeto do Windows Azure. Para que trabalhar com essas solues seja o mais fcil possvel, clique com o boto direito no projeto GreenFeeBroker.Cloud e selecione Set as Start Up Project (definir como projeto de inicializao). Isso garante que, ao testar o aplicativo localmente, o projeto ser inicializado corretamente na malha de desenvolvimento (da qual trataremos em breve).

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

11

H vrias opes de configurao para implantar seu aplicativo ou servio no Windows Azure, e essas opes podem ser definidas com um clique com o boto direito na funo associada (neste caso, BrokerService, como mostra a figura 7) e selecionando-se as propriedades. As configuraes mais comuns incluem a quantidade de instncias que voc gostaria que o Windows Azure alocasse ao implantar seu aplicativo e o tamanho da mquina virtual de destino de sua implantao. Essas escolhas esto entre as mais importantes, pois tero impacto direto no desempenho, na disponibilidade, na escalabilidade e nos custos do aplicativo. A figura 8 mostra vrias opes de configurao, incluindo o tipo de mquina virtual que voc deseja usar e a quantidade de instncias que o Windows Azure deve alocar para seu aplicativo. Neste caso, eu configurei quatro instncias pequenas. No se preocupe se no souber quais configuraes escolher a princpio. Conforme voc for aprendendo, suas necessidades podem (e iro) mudar, e o bom do Windows Azure que voc pode mudar de ideia!

Figura 8: opes de configurao da Web Role do Windows Azure. A guia Settings (configuraes) permite definir pares de cadeia de caracteres/valores de configuraes para coisas como conexes de banco de dados, caminhos para registro em log etc. O Visual Studio 2010 oferece uma tima experincia de desenvolvimento, permitindo a voc definir configuraes para testes locais e execuo na nuvem. Teste local com o emulador de malha O Visual Studio 2010 fornece capacidades completas de gerenciamento de ciclo de vida de aplicativos feitos para execuo tanto localmente quanto na nuvem. Ao desenvolver aplicativos para o Windows Azure, o ciclo de vida de desenvolvimento consistente com as prticas recomendadas para o gerenciamento de ciclo de vida de aplicativos (ALM).

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

12

Como mostra a figura 9, voc desenvolve e testa localmente com o Visual Studio 2010 e as ferramentas de tempo de execuo de desenvolvimento para emular a computao e o armazenamento. Em seguida, a implantao feita em um ambiente de testes oferecido na nuvem pelo Windows Azure, onde so feitos testes antes que voc finalmente lance seu aplicativo ou servio para produo.

Figura 9: gerenciamento de ciclo de vida de aplicativo no Windows Azure. O Visual Studio 2010, somado ao SDK do Windows Azure, inclui um pacote para desenvolvimento, teste e depurao local, o chamado emulador de malha. A malha de desenvolvimento tem dois componentes principais: o emulador de computao e o emulador de armazenamento. O emulador de computao permite compilar, implantar e testar seus aplicativos para o Windows Azure em seu ambiente de desenvolvimento local. Pense no emulador de computao como o equivalente s capacidades de hospedagem Web dentro do Visual Studio que oferecem uma experincia de hospedagem e depurao no Azure que emula o IIS. O Visual Studio proporciona uma experincia perfeita de desenvolvimento, teste e depurao, que permite a voc interagir com seu aplicativo em execuo no emulador de computao diretamente pela IDE. Para simular o servio de armazenamento, o SDK do Windows Azure inclui um emulador de servio de armazenamento para desenvolvimento e testes. Esse emulador de armazenamento oferece uma experincia de desenvolvimento idntica obtida trabalhando-se diretamente com o armazenamento do Azure em nvel de API. Ao trabalhar localmente, o Visual Studio fornecer automaticamente armazenamento local para voc, usando qualquer verso recente do Microsoft SQL Server, incluindo o SQL Server Express Edition. Isso permite a criao de cdigo que faa uso das mesmas APIs de armazenamento, esteja o cdigo sendo executado localmente ou na nuvem. Porm, saiba que o emulador de armazenamento destina-se apenas a fins de desenvolvimento, e que nunca deve ser usado em cenrios de produo. Na verdade, com o Visual Studio 2010, a interao com o emulador de malha apenas uma questo de executar seu aplicativo pela IDE! Ao iniciar sua soluo no Visual Studio 2010, voc vai notar algumas informaes no canto inferior esquerdo da IDE indicando que o Visual Studio est empacotando e implantando seu aplicativo no emulador de malha, incluindo

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

13

cdigo de aplicativo para o emulador de computao e instrues de tabela, blob ou fila para o emulador de armazenamento (consulte o apndice para maiores informaes sobre o servio de armazenamento do Windows Azure). Neste ponto, o aplicativo est hospedado e pronto para ser testado. O Visual Studio 2010 abrir automaticamente uma janela do navegador com o endereo bsico do seu aplicativo ou servio, e colocar o aplicativo em modo de depurao, permitindo a voc interagir com ele e conduzir qualquer soluo de problemas com o cdigo de forma interativa. Alm disso, quaisquer instrues para a criao de tabelas, blobs ou filas sero executadas. Essas instrues podem ser inseridas em um arquivo global que permitir que o cdigo seja executado durante os diversos estgios do ciclo de vida do aplicativo, incluindo a inicializao. Para acompanhar a implantao ativa, procure pelo cone do Windows Azure na barra de tarefas, clique nele com o boto direito e selecione Show Compute Emulator UI (mostrar interface de usurio do emulador de computao). A interface de usurio do emulador de computao do Windows Azure fornece visibilidade de status e integridade do aplicativo. possvel iniciar e interromper o aplicativo, e tambm continuar monitorando-o visualmente. Observe na figura 10 que h quatro instncias virtuais do aplicativo, conforme escolhemos ao configurar o projeto BrokerService do Windows Azure.

Figura 10: a interface de usurio do emulador de computao do Windows Azure.

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

14

Neste momento, com o BrokerService hospedado, voc pode test-lo como faria normalmente e fazer as modificaes que julgar necessrias antes da implantao no Windows Azure.

Implantao no Windows Azure


Depois de desenvolver e testar seu aplicativo localmente, hora de implant-lo no Windows Azure! Empacotando seu aplicativo com o Visual Studio 2010 A primeira etapa na implantao de seu aplicativo no Windows Azure criar um pacote de implantao. O Visual Studio 2010 simplifica esse processo, automatizando a criao do pacote quando voc clica com o boto direito no projeto do Windows Azure e seleciona Publish (publicar). Como mostra a figura 11, pode-se escolher entre duas abordagens: Create Service Package Only (criar apenas o pacote de servio). Cria um arquivo de pacote contendo o aplicativo e um arquivo de configurao, que inclui todas as configuraes que voc especificou para o provisionamento, a implantao e a execuo de seu aplicativo. Em seguida, o pacote pode ser carregado pelo portal de gerenciamento do Windows Azure. Deploy Your Windows Package to Windows Azure (implantar seu pacote do Windows para o Windows Azure). Automatiza o empacotamento e a implantao de seu aplicativo em uma nica e prtica etapa.

A segunda opo exige que um certificado X.509 seja instalado na mquina de desenvolvimento local e carregado para o portal de gerenciamento do Windows Azure para garantir que apenas pacotes autorizados sejam implantados.

Figura 11: empacotamento e implantao no Windows Azure via Visual Studio 2010.

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

15

Vou demonstrar como implantar seu aplicativo usando o primeiro mtodo para que voc adquira alguma familiaridade com o portal de gerenciamento do Windows Azure. Conforme voc for adquirindo experincia com a configurao e o gerenciamento de implantaes no Windows Azure, a experincia de implantao plenamente integrada oferecida pela segunda opo dentro do Visual Studio se tornar til, particularmente ao reimplantar aplicativos ou servios existentes. Para empacotar sua soluo, clique em OK. O Windows Explorer abrir instantaneamente no local do pacote que o Visual Studio 2010 criou. A figura 12 mostra os dois arquivos criados.

Figura 12: arquivos de configurao e pacote de servio para implantao. Implantando seu aplicativo pelo portal de gerenciamento do Windows Azure O portal de gerenciamento do Windows Azure proporciona tudo o que voc precisa para gerenciar seus servios da plataforma Windows Azure, incluindo funes de computao e servios de armazenamento, CDN, AppFabric e Marketplace. Ao efetuar login no portal (com uma conta configurada no Windows Azure), voc ter a opo de criar um novo servio hospedado e uma nova conta de armazenamento hospedado. Essas opes permitem definir uma implantao de computao e armazenamento, que deve ser realizada antes da implantao do seu aplicativo e dos requisitos de armazenamento correspondentes para o Windows Azure. O processo de implantao de um aplicativo ou servio para testes ou produo idntico, e voc ter que escolher um dos dois ao fazer a primeira implantao do aplicativo no Windows Azure. Para implantar o BrokerService, depois de clicar em New Hosted Service (novo servio hospedado), como mostra a figura 13, uma janela ser exibida, e dever ser preenchida para a preparao do ambiente de hospedagem. Depois de
Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010 16

selecionar uma conta de assinatura, fornea um nome para o servio que ser usado para identificar facilmente o aplicativo no portal de gerenciamento do Windows Azure. Tambm necessrio especificar um prefixo de URL exclusivo, que vai ser parte da URL totalmente qualificada a ser usada para acessar seu servio, ou no caso, o servio Web BrokerService do WCF.

Figura 13: provisionamento de novo servio hospedado no portal de gerenciamento do Windows Azure. Tambm possvel selecionar grupos de afinidade, o que permite fazer solicitaes explcitas quanto localizao de seus aplicativos de computao e armazenamento. Por exemplo, como os data centers do Windows Azure esto distribudos geograficamente pelo mundo, uma boa ideia para otimizar o desempenho garantir que seu aplicativo hospedado em computao esteja o mais prximo possvel dos seus dados hospedados no armazenamento. Para cuidar disso, temos os grupos de afinidade. As opes de implantao incluem implantar o aplicativo no ambiente de testes, no ambiente de produo ou no implantar. Tenha em mente que voc ter que pagar a mesma conta, seja qual for sua escolha entre teste ou produo. O maior benefcio de ter dois ambientes a capacidade de testar uma verso de um aplicativo antes que ele entre em produo, e isso particularmente til ao testar duas verses de um aplicativo, lado a lado. Escolha o nome que quiser para a implantao, mas recomendvel o uso de um padro simples de verses que possa ser usado como rtulo. Assim fica mais fcil identificar, acompanhar e reconhecer verses diferentes de seus aplicativos e servios ao mov-los dos testes para a produo.

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

17

Por fim, fornea o caminho para o pacote e os arquivos de configurao que o Visual Studio criou para voc, clicando em Browse Locally (procurar localmente). Clique em OK para comear o processo de implantao e provisionamento. A experincia de gerenciamento criada com base em suas escolhas ir mostrar que quatro instncias computacionais (neste caso, quatro VMs pequenas) esto sendo alocadas para a v1 do BrokerService. O status de cada instncia alterna entre a espera, a criao e a inicializao das instncias computacionais que hospedaro o aplicativo. Isso leva alguns minutos, mas se voc considerar o tempo que demoraria para botar quatro servidores ou mquinas virtuais tradicionais para funcionar em um ambiente de carga balanceada e com implantao total com seu aplicativo, a velocidade e a facilidade de se realizar tudo isso com poucos cliques fabulosa! Como mostra a figura 14, quando todas as instncias estiverem prontas, o servio lgico mostrar o status Ready (pronto). Clique no rtulo para obter metadados sobre a implantao, incluindo a data de criao, a quantidade de instncias adotadas e o nome de DNS para a URI disponvel publicamente que oferece um nico ponto de extremidade lgico de carga balanceada para o BrokerService.

Figura 14: BrokerService, pronto para o consumo. Testando no Windows Azure Neste ponto, o servio pode ser testado como se estivesse em um ambiente de testes local tradicional. Para navegar at o servio, basta clicar no nome de DNS mostrado na figura 14, que vai iniciar o navegador. Adicione o nome de arquivo BrokerService.svc ao fim

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

18

da URL na barra de endereos e voc ver uma pgina de hospedagem surgir, indicando que o servio est pronto para ser consumido. Eu sempre recomendo a realizao de testes de verificao ps-implantao ou smoke testing para garantir que o servio esteja hospedado corretamente e que seja capaz de realizar funes comuns, de rotina. Use o cliente de testes do WCF, que acompanha o Visual Studio 2010, para testar o servio em teste ou em produo no Windows Azure, exatamente como voc faria localmente com o emulador de armazenamento. Promovendo para produo no Windows Azure Depois de implantado para o Windows Azure, seu aplicativo pode ser implantado instantaneamente para produo por meio da opo Swap VIP (troca de IP virtual) no portal de gerenciamento do Azure. Se voc no tiver uma implantao de produo ativa, a implantao de testes ser promovida a implantao de produo. Deste ponto em diante, a URL de produo pode ser usada (neste caso, http://brokerservice.cloudapp.net). Gerenciando seu aplicativo no Windows Azure Voc no vai usar o portal de gerenciamento do Windows Azure apenas para implantao, mas tambm para gerenciar aplicativos e servios do Windows Azure. Quando estiver pronto para implantar uma nova verso do aplicativo, as mesmas etapas descritas acima podem ser seguidas, resultando em uma verso diferente implantada para ns fisicamente separados no ambiente de testes. Tambm possvel atualizar um aplicativo que j esteja em execuo, carregando uma verso mais nova do pacote ou da configurao, ou ainda optar apenas por atualizar o arquivo de configurao, deixando o cdigo do aplicativo ou pacote intacto. Podem ser provisionados servios de armazenamento, incluindo tabela, blob e fila pelo mesmo portal de gerenciamento. Embora os detalhes sobre os servios de armazenamento fujam ao escopo deste white paper, o aplicativo de amostra BrokerService faz amplo uso do armazenamento em tabela para armazenar descries de novos campos de golfe e para retornar uma lista de todos os campos de golfe da loja. Uma conta de armazenamento foi criada para o aplicativo BrokerService de nome GreenFeeBrokerTable e os pontos de extremidade REST para acessar os servios de armazenamento de tabela, fila e blob so fornecidos assim como com o emulador de armazenamento local.

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

19

Concluso
Organizaes de todos os tamanhos podem se beneficiar da computao em nuvem. O Windows Azure fornece capacidades de Plataforma como um Servio que permitem que os desenvolvedores aproveitem a facilidade e a produtividade do Microsoft .NET, e o Visual Studio 2010 fornece o mais importante ambiente de desenvolvimento de aplicativos locais e na nuvem. Juntos, o Windows Azure e o Visual Studio 2010 oferecem uma poderosa proposio de valor para a criao de novos aplicativos, alm de estender aplicativos existentes para que tirem proveito da nuvem, tornando o desenvolvimento, o teste e o gerenciamento de aplicativos hbridos praticamente perfeitos.

Sobre o autor:
Rick G. Garibay gerente geral de prtica de desenvolvimento de sistemas conectados da Neudesic. Rick um Microsoft MVP, orador e autor focado em tecnologias conectadas como SOA e solues compostas hbridas. Este documento derivado de um artigo publicado originalmente na CODE Magazine e foi usado com a permisso da editora, a EPS Software Corporation. Este white paper foi desenvolvido em parceria com a A23 Consulting. Para obter mais informaes, acesse: http://www.microsoft.com/visualstudio

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

20

Apndice
Servio de computao do Windows Azure
O servio de computao um continer lgico para qualquer quantidade de mquinas virtuais do Windows Server que hospedem seu aplicativo. O servio computacional usa balanceadores de carga que garantem que as solicitaes ao seu aplicativo sempre sejam encaminhadas a uma instncia disponvel de mquina virtual (desde que mltiplas instncias tenham sido configuradas). O servio computacional particionado em duas funes: Web Role e Worker Role. Cada funo tem afinidade a uma mquina virtual; porm, um aplicativo em cada funo nunca sabe em qual mquina fsica ou mquina virtual lgica est sendo executado. Ao desenvolver um aplicativo para o Windows Azure, ele precisa ser direcionado Web Role ou Worker Role, e tambm pode ser particionado e distribudo para tirar proveito das duas. Web Role Pense em uma Web Role como um continer para aplicativos Web que seriam implantados em um servidor Web. No Windows Azure, um aplicativo feito para a Web Role executado no servidor web principal da Microsoft, os Servios de Informaes da Internet (IIS), oferecendo o melhor ambiente de hospedagem para aplicativos e servios .NET e no .NET. Aplicativos implantados para uma Web Role podem aceitar solicitaes HTTP e HTTPS vindas de fora da rede de data centers da Microsoft (por exemplo, do seu desktop, ou do servidor do seu cliente no prprio data center dele). Sendo assim, h uma certa equivalncia com uma DMZ (ou zona desmilitarizada) local. Worker Role Uma Worker Role s pode aceitar entrada de outro aplicativo dentro do Windows Azure, e aceita solicitaes por meio do recurso de armazenamento de fila, do armazenamento do Windows Azure. Uma Worker Role equivale forma como voc pensaria em um servidor de aplicativos em um data center local tradicional, capaz de executar uma srie de servios de middleware que fazem trabalho pesado e de longa durao em segundo plano, garantindo que a experincia de usurio do seu aplicativo de front-end no seja afetada. claro que possvel criar seu aplicativo lgico com uma abordagem em camadas, incluindo as duas funes, e esse um padro excelente para quem quer oferecer escalabilidade ideal por meio de suporte a trabalho assncrono em segundo plano que no consome recursos no aplicativo de Web Role. Neste documento, no entanto, vou me concentrar no desenvolvimento de um aplicativo exposto como um servio Web implantado em uma Web Role.
Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010 21

Armazenamento do Windows Azure


Assim como acontece com aplicativos locais, para que um software seja til ele precisa ser capaz de salvar e recuperar informaes em vrios tipos de mdia, incluindo texto ou cadeias de caracteres, objetos e arquivos como imagens, documentos, msicas ou vdeos. O servio de armazenamento oferece trs opes essenciais para permitir que seus aplicativos armazenem e interajam com dados e se assemelhem a mecanismos de armazenamento tradicionais com os quais voc j deve estar acostumado ao criar software para execuo local. Table storage (armazenamento em tabela): permite aos desenvolvedores modelar seus esquemas conceituais usando entidades .NET sem considerar a tecnologia de armazenamento lgico subjacente. O servio de armazenamento em tabela exposto usando um estilo de arquitetura conhecido como REST, e que oferece a capacidade de inserir, atualizar, excluir e ler registros em tabelas implantadas no armazenamento em tabela. Embora essa abordagem seja diferente de abordagens relacionais comuns de armazenamento e manipulao de dados, ela oferece uma alternativa simples a outras opes, como o Microsoft SQL Azure. Blob storage (armazenamento em blob): permite armazenar dados em formato binrio, o que ideal para tipos de mdia como imagens, arquivos ou rvores. Encare o armazenamento em blob como um sistema de arquivos para o Windows Azure. Queue storage (armazenamento em fila): oferece troca de mensagens em fila entre aplicativos e funes. Filas so muito comuns no design de software distribudo, pois oferecem um meio de processar trabalhos na ordem em que so criados, alm de durabilidade para assegurar que os trabalhos ou mensagens no sejam perdidos antes de serem processados.

Segurana na nuvem
Segurana um tpico muito amplo, porm eminentemente importante para quem adota a computao em nuvem. A Microsoft muito cuidadosa ao garantir a segurana de seus data centers e servidores, e pe voc no controle da aplicao dos requisitos de segurana necessrios em seus aplicativos. Como o destino uma mesma plataforma (Windows e .NET) tanto localmente quanto na nuvem, as mesmas ferramentas e tcnicas so usadas na identificao dos usurios de seu aplicativo (autenticao) e para decidir quais sero seus privilgios (autorizao). Seus dados tambm podem ser criptografados e assinados digitalmente conforme a necessidade, como voc faria localmente. Alm disso, a Microsoft oferece um servio conhecido como Servio de Controle de Acesso (ACS), que permite tirar proveito da segurana baseada em reivindicaes, simplificando muito o processo de autenticao e autorizao de usurios de seus aplicativos e se valendo de uma variedade de provedores de identificao, incluindo o Windows Active Directory, o Windows Live e o FaceBook. Para obter mais informaes sobre cenrios de segurana no Windows Azure, consulte o site Patterns and Practices dedicado segurana do Windows Azure: http://azuresecurity.codeplex.com/.
Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010 22

Certifique-se de que o texto padro de copyright de white paper da seo Legal seja encaixado aqui. Esse modelo atualizado periodicamente. Portanto, em vez de inseri-lo diretamente neste modelo, onde pode ficar desatualizado, fornecemos um link para o texto. File:\\lca\pdm\TMGUIDE\Copyright\copywhitepaper.doc

Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010

23

You might also like