Professional Documents
Culture Documents
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.
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
Desenvolvendo e estendendo aplicativos para o Windows Azure com o Visual Studio 2010
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 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.
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.
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
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