Exportar (0) Imprimir
Expandir Tudo

Considerações de desenvolvimento para os Serviços de Nuvem do Azure

Atualizado: junho de 2014

Autores: Selcin Turkarslan

Revisores: Tim Wieman, Valery Mizonov, Avilay Parekh, Paolo Salvatori, Steve Howard

Antes de migrar seus aplicativos para os Serviços de Nuvem do Microsoft Azure, é recomendável primeiro revisar os detalhes do serviço. O artigo "Introdução ao Azure" fornece informações sobre:

  • Componentes do Azure.

  • Modelos de execução.

  • Gerenciamento de dados.

  • Rede.

  • Kits de desenvolvimento de software de programação suportados (SDKs), etc.

Este artigo pretende fornecer informações introdutórias sobre como implementar um aplicativo do Microsoft Azure usando os Serviços em Nuvem do Microsoft Azure. Praticamente, há um número infinito de cenários de migração. Portanto, recomendamos que os desenvolvedores escolham as técnicas e as soluções mais apropriadas para seus aplicativos e usuários.

Migrar de um aplicativo existente para o Azure inclui:

  • decidir no modelo de execução do computador qual melhor se encaixa ao seu aplicativo (por exemplo, Serviços em Nuvem, Web Sites, Máquinas Virtuais (VM), etc.). Ler "Introdução ao Azure: Modelos de Execução".

  • Adicionar uma configuração específica do Azure e um código personalizado.

  • Armazenamento e gerenciamento de dados no Azure.

  • Reempacotar seu aplicativo existente como um aplicativo do Azure.

  • Implantar seu aplicativo no Azure.

Um aplicativo implantado nos Serviços em Nuvem do Microsoft Azure inclui os códigos do aplicativo, o gerenciamento de dados e as definições de configuração. Ao desenvolver um aplicativo para a nuvem, os padrões de arquitetura gerais ainda são aplicáveis. Por exemplo, os desenvolvedores devem arquitetar seus aplicativos para lidar com disponibilidade, escalabilidade, confiabilidade e segurança em um ambiente distribuído. Além disso, os desenvolvedores devem considerar:

  • Contratos de Nível de Serviço (SLA).

  • Planejamento de capacidade.

  • Cobrança do cliente.

  • Auditoria.

  • Monitoramento de aplicativo.

  • Análise de tráfego.

  • Gerenciamento de custo.

  • Colocação em escala - quando e como escalar verticalmente, reduzir verticalmente, escalar horizontalmente e reduzir horizontalmente seus aplicativos em nuvem.

Em um ambiente de data center privado tradicional, você é responsável por comprar, configurar e fazer a manutenção do hardware para executar os serviços. Com o Azure, você pode criar e compilar aplicativos que podem dimensionar sob demanda alocando recursos virtualizados. Alguns aplicativos locais podem ser executados no Azure com nenhuma ou pequenas alterações. Entretanto, a maioria dos aplicativos pode realmente se beneficiar de criar e fazer a arquitetura para a nuvem. Para aproveitar ao máximo o Azure, recomendamos que você altere seu aplicativo usando várias funções antes de migrar para o Azure.

Por exemplo, os serviços Web e aplicativos hospedados em data center herdados, geralmente combinam várias funções em um único aplicativo. Às vezes, isso.não escala bem. Vários aplicativos da Web também armazenam o estado do aplicativo persistente em uma unidade de disco local, que não funciona no ambiente dos Serviços de Nuvem do Azure. Ao migrar de um aplicativo Web existente para o Azure, para aproveitar ao máximo a elasticidade e a escalabilidade da computação em nuvem, você tem duas opções:

Os Serviços de Nuvem do Azure implementam cada aplicativo como uma ou mais funções. Cada função contém as informações de código e de configuração necessárias para realizar alguma parte da função do seu aplicativo. O código e os serviços de front-end que interagem diretamente com os navegadores da web ou outros clientes HTTP são funções Web. As funções web são executadas nos Serviços de Informações da Internet (IIS), servidor Web da Microsoft. Uma função de trabalho executa processamento em segundo plano e tarefas de suporte. Os serviços de camada intermediária geralmente são funções de trabalho.

Cada função pode ter várias instâncias. Cada instância executa o mesmo código que foi gravado para a função. Entretanto, cada instância de função reside em uma máquina virtual separada no data center do Azure. Para cada função, você poderá indicar o tamanho desejado da máquina virtual que as instâncias daquela função devem usar. Para obter mais informações, leia "Configurar Tamanhos para os Serviços de Nuvem".

Além das diferenças funcionais entre as funções, cada função serve como uma unidade de escala para seu aplicativo. Por exemplo, você pode ter 20 instâncias em sua função Web para suportar mais tráfego. Assim, você pode ter apenas 5 instâncias em sua função de trabalho para processar solicitações da função Web de maneira assíncrona. Se quiser apenas criar um aplicativo ASP.NET, PHP, Node.js simples ou serviço Web, você pode usar apenas uma função Web. Recomendamos executar testes de desempenho e funcionais detalhados em seu serviço de nuvem. Esses testes o ajudarão a determinar o número ideal de instâncias de função e os tamanhos de VM antes de implantar seu aplicativo para produção. Para obter mais informações sobre os conceitos de serviços de nuvem, procure a Central de Desenvolvedores do Azure e o Centro de Documentação do Azure.

Aproveite as opções de armazenamento disponíveis que o Azure fornece. Isso ajuda a simplificar sua lógica de aplicativos e aprimora o desempenho do serviço de nuvem. É de suma importância que você entenda as limitações de cada opção de armazenamento de dados enquanto planeja a migração de aplicativos. Você também deve saber como identificar a opção de armazenamento de dados apropriada para seu serviço de nuvem. Para obter mais informações sobre as opções de armazenamento disponíveis no Azure, leia "Visão Geral dos Serviços de Gerenciamento de Dados no Azure”.

Você também pode desejar usar o Serviço de Cache do Azure para fornecer armazenamento de alta velocidade com base em memória para os aplicativos do Azure. Armazenar em cache aumenta o desempenho armazenando temporariamente informações de fontes de back-end. O armazenamento em cache pode reduzir os custos associados às transações de acesso ao armazenamento de banco de dados na nuvem. Para obter melhores resultados de desempenho, implante seu aplicativo nos data centers que atendam esses dois critérios:

  • Mais próximo à maioria de nossos clientes.

  • Mais próximo ao data center que hospeda sua conta de armazenamento ou instâncias do Banco de Dados SQL do Azure.

Entretanto, você pode ter algumas questões jurisdicionais ou legais sobre seus dados e no local em que residem. Nesse caso, escolha um data center próximo a sua empresa ou aos seus dados. Para obter informações, leia "Considerações de Desempenho com o Banco de Dados SQL do Azure".

Antes de começar a implementar seu Serviço de Nuvem do Azure, você deve primeiro comprar uma assinatura do Microsoft Azure. Para obter mais informações, navegue no site do Microsoft Azure. Em seguida, você deve preparar seu ambiente de desenvolvimento. A Microsoft no momento fornece SDKs específicos de linguagem para .NET, Java, PHP, Node.js, Python e Ruby. Para obter informações mais atualizadas sobre as plataformas e idiomas de programação suportados, navegue no Centro de Documentação do Microsoft Azure. Além disso, você pode usar o Centro de Download de Ferramentas e do SDK do Azure para acessar todas as bibliotecas de cliente do Azure, SDKs e ferramentas de linha de comando.

O Microsoft Azure também fornece o serviço de Sites do Azure para hospedar sites e aplicativos da Web. Os Sites do Azure são uma oferta de plataforma como serviço (PaaS) completamente gerenciada que permite a você implantar e escalar aplicativos da Web em segundos. Para obter mais informações, procure os Sites do Azure.

Para permitir que aplicativos cliente executados em plataformas diferentes se conectem às fontes de dados relacionais, a Microsoft escolhe o ODBC. É a API de conectividade cliente padrão para aplicativos cliente nativos que se conecta aos Banco de Dados SQL do Azure (Banco de Dados SQL). O Provedor OLE DB do SQL Server Native Client será enviado pela última vez no SQL Server 2012. O Banco de dados SQL não oferecerá suporte a ele.

Ao gravar aplicativos no Windows ou no Azure, use o provedor de dados .NET para SQL Server. Como alternativa, é possível usar o driver ODBC do SQL Server Native Client fornecido com o SQL Server 2008 R2 ou posterior. Recomendamos a você adotar o ODBC no desenvolvimento de novas e futuras versões do seu aplicativo. Para os aplicativos existentes que usam OLE DB, recomendamos que você migre esses aplicativos para ODBC no futuro. Para obter mais informações sobre como converter um aplicativo OLE DB para um aplicativo ODBC, leia "Conversão de Aplicativos do SQL Server de OLE DB para ODBC". Para obter informações sobre a equipe ADO.NET na substituição de OLE DB, leia o "Anúncio de Substituição do Provedor OLEDB do Microsoft SQL Server".

Como ocorre com qualquer outro aplicativo, você deverá arquitetar seu aplicativo para controlar a disponibilidade, a recuperação de desastres e a segurança em um ambiente distribuído e multilocatário na nuvem. Para obter mais informações, leia "Alta Disponibilidade e Considerações de Recuperação de Desastres com o Banco de Dados SQL do Azure" e o Guia de Segurança do Azure. Recomendamos que você resolva os requisitos de segurança no início do ciclo de vida de desenvolvimento do software antes de migrar um aplicativo no Azure.

Para obter mais informações sobre o desenvolvimento de aplicativos no Azure, leia "Desenvolvimento de Aplicativos do Azure" e "À prova de falhas: orientação para arquiteturas resilientes na nuvem".

O Azure é uma plataforma escalável, dinâmica e multilocatária na nuvem. Portanto, você deve considerar as técnicas específicas de diagnóstico e monitoramento da nuvem ao projetar seu aplicativo. Recomendamos que você monitore e faça o diagnóstico no início do ciclo de vida de desenvolvimento do software. Avalie suas técnicas de diagnóstico e monitoramento existentes para determinar se elas fornecerão um serviço adequado após você implantar o aplicativo na nuvem. Por exemplo, um aplicativo que gera grandes logs de arquivos pode exigir ajuste nas configurações de diagnóstico e log. O ajuste permitirá a produção de pequenos arquivos de log que podem ser rapidamente inspecionados ou baixados para o ambiente local para análise posterior.

A lista a seguir fornece algumas ferramentas e técnicas disponíveis para solucionar problemas para o Azure:

  • Diagnóstico do Azure (WAD): Coleta dados de diagnóstico e de operações de seu serviço do Azure. O Diagnóstico do Azure registra dados de diagnóstico de várias fontes de dados, como:

      • Logs IIS.

      • Logs de infraestrutura do Diagnóstico do Windows.

      • Logs de eventos do Windows.

      • Contadores de desempenho.

      • Despejos de memória.

      • Logs de erro personalizados.

      É possível configurar os intervalos de registro para Diagnóstico do Azure. As informações coletadas persistem na Tabela do Azure e no armazenamento do Blob para análise. Para obter mais informações, leia "Coletar Dados de Log Usando o Diagnóstico do Azure".

  • Pacote de Gerenciamento do System Center Azure (MP): O Pacote de Gerenciamento de Monitoramento do Azure permite a você monitorar a disponibilidade e o desempenho dos aplicativos que estão em execução no Azure. Para obter mais informações, leia o "Guia para o Pacote de Monitoramento para Aplicativos do Azure". Recomendamos usar o Diagnóstico do Azure e o Pacote de Gerenciamento do System Center Azure. Para obter mais informações, assista o vídeo na página da Web do System Center 2012: Gerenciar Aplicativos em Nuvens Privadas e Públicas.

  • Análise de armazenamento do Azure: executa logs e fornece dados de métrica para uma conta de armazenamento do Azure. Você pode usar esses dados para rastrear solicitações, analisar tendências de uso e diagnosticar problemas com sua conta de armazenamento. Para obter mais informações, leia "Análise de Armazenamento".

  • Gerenciamento de Conexão do Banco de dados SQL: lida com códigos de erro implementando lógica de repetição em seu aplicativo. Para obter mais informações, leia "Gerenciamento de Recursos do Banco de Dados SQL do Azure".

  • Cmdlets do Azure PowerShell: Permite a você navegar, configurar e gerenciar os serviços de gerenciamento de dados e nuvem do Azure diretamente do PowerShell. Essas ferramentas podem ser úteis durante o desenvolvimento e o teste de aplicativos que usam serviços do Azure. Para obter mais informações, leia "Referência de Cmdlet do Azure".

  • Solução de referência Conceitos fundamentais do Serviço de Nuvem: Esse aplicativo demonstra como construir os serviços da Azure de backup de banco de dados. Essa demonstração é baseada em lições que a Equipe de Consultoria ao Cliente do Microsoft Azure (CAT) aprendeu enquanto trabalhava com clientes do mundo real. Saiba os blocos de construção fundamentais para expandir os aplicativos do Azure, inclusive coletar e usar os dados telemétricos em seu aplicativo. A solução de referência está na página da Web Conceitos fundamentais do Serviço de Nuvem no Microsoft Azure. A orientação inclui uma TechNet Wiki (Wiki de Conceitos Fundamentais do Serviço de Nuvem) com artigos detalhados.

Como em qualquer outro aplicativo, seu Serviço de Nuvem do Azure também precisa de testes detalhados antes de carregar a produção. Você deve testar a funcionalidade, a execução de ponta a ponta, desempenho, escalabilidade, segurança e assim por diante.

Para obter uma orientação prescritiva detalhada, leia "Práticas recomendadas de solução de problemas para desenvolver aplicativos do Azure". Para obter informações complementares, leia "Coletar Dados de Log Usando o Diagnóstico do Azure e "Testar, Gerenciar, Monitorar e Otimizar os Aplicativos do Azure".

O Azure oferece um intervalo de recursos de rede para ajudá-lo a integrar os aplicativos existentes com a nuvem e gerenciar o tráfego de rede. Os principais componentes de rede e de conectividade no Azure são:

  • Filas de armazenamento do Azure: As Filas de Armazenamento do Azure podem ser usadas para armazenar mensagens que possam ser acessadas pelos clientes e podem fornecer mensagens confiáveis entre instâncias de função. Para obter mais informações, leia "Como usar o Armazenamento em Fila do .NET" e "Armazenamento".

  • Azure Service Bus: Recomendamos usar o Azure Service Bus para qualquer comunicação serviço a serviço no Azure. Além disso, use o Azure Service Bus para manter a integração entre os servidores locais e o Azure. O Service Bus fornece recursos seguros de mensagem e retransmissão na camada de aplicativo. O Azure Service Bus oferece uma infraestrutura de comunicação baseada em nuvem que dá suporte a um serviço comum de mensagens seguras em uma rede pública. Fornece um namespace unificado e simples, como https://myhostname.servicebus.windows.net. O Service Bus suporta os seguintes modelos de programação: .NET API, REST API e WCF. Para obter mais informações, leia a página da Web Documentação do Service Bus e "Filas do Azure e Filas do Service Bus - semelhanças e diferenças".

  • Active Directory do Azure: Recomendamos o uso do Active Directory do Azure (AD) para fornecer controle de acesso baseado em declarações e expandido para serviços da Web hospedados na nuvem e aplicativos de usuário final. O Active Directory do Azure é uma solução de nuvem de gerenciamento de acesso e identidade abrangente. Ele combina serviços de diretório principal, controle de identidade avançado, segurança e gerenciamento de acesso do aplicativo. O Azure AD também oferece aos desenvolvedores uma plataforma de gerenciamento de identidade para fornecer controle de acesso aos aplicativos baseados em regras e política centralizada. O serviço também fornece uma integração com o Windows Identity Foundation (WIF). Para obter mais informações, leia a página da Web "Como Autenticar os Usuários da Web com o Controle de Acesso do Active Directory do Azure" e a Documentação do Active Directory do Azure.

  • Gerenciador de Tráfego do Azure: O Gerenciador de Tráfego permite balancear a carga do tráfego de entrada em vários serviços hospedados do Azure. É possível balancear a carga de tráfego para os serviços em execução no mesmo data center ou em data centers diferentes no mundo todo. Gerenciando efetivamente o tráfego, você pode assegurar o alto desempenho, a disponibilidade e a resiliência para seus aplicativos. Para obter mais informações, leia a página da Web Documentação do Gerenciador de Tráfego.

  • Rede de Fornecimento de Conteúdo do Azure: A Rede de Fornecimento de Conteúdo do Azure (CDN) oferece aos desenvolvedores uma solução global para armazenar o conteúdo em cache. É possível armazenar o conteúdo em cache em locais próximos aos seus clientes para fornecer a melhor experiência para o aplicativo. O CDN armazena em cache os Blobs do Azure e a saída de conteúdo estático de instâncias de computação em locais estrategicamente colocados. Fazendo isso, o CDN fornece a máxima largura de banda para fornecer o conteúdo aos usuários. Você pode ativar a entrega do CDN para seus provedores de conteúdo usando o Portal de Gerenciamento da Plataforma Azure. Para obter mais informações, leia a página da Web Documentação CDN do Azure.

  • Rede Virtual do Azure: A Rede Virtual do Azure permite a você criar uma seção logicamente isolada no Azure. Assim, é possível conectá-la em segurança aos data centers locais ou a uma única máquina cliente que usa a conexão IPSec. A Rede Virtual facilita o aproveitamento da infraestrutura escalável sob demanda do Azure. E também fornece conectividade aos aplicativos e dados locais, que incluem sistemas em execução no Windows Server, mainframes e UNIX. Para obter mais informações, leia a página da Web Documentação da Rede Virtual.

  • Azure ExpressRoute: O Azure ExpressRoute permite criar conexões privadas entre datacenters do Azure e a infraestrutura que está em suas instalações ou em um ambiente de colocalização. As conexões do ExpressRoute não percorrem a Internet pública. Oferecem mais confiabilidade, velocidades mais rápidas, latências menores e maior segurança que as conexões típicas através da Internet. Com o ExpressRoute, é possível estabelecer conexões para o Azure em um local ExpressRoute (instalação do Provedor do Exchange). Como alternativa, é possível conectar diretamente ao Azure de uma rede WAN existente (como uma MPLS VPN). Para obter mais informações, leia as páginas da Web Visão Geral do ExpressRoute e Documentação do ExpressRoute.

Para obter mais informações, leia a página da Web Serviços de Rede

Depois de concluir o desenvolvimento de seu aplicativo ou serviço de nuvem, você está pronto para compilar, carregar e implantar o aplicativo no Azure. Há quatro diferentes cenários de implantação:

  • Nova implantação

  • Alteração de configuração

  • Atualização incremental de código

  • Atualização principal

Para obter mais informações, leia "Como Gerenciar Serviços de Nuvem", "Gerenciar Implantações no Azure" e "Gerenciar seus Serviços".

É possível configurar várias implantações usando uma assinatura do Azure para suportar o desenvolvimento, teste, QA, preparo, etc., o Azure também permite que você configure uma conta do Azure para acessar várias assinaturas. Você pode, ainda, criar ambientes separados de desenvolvimento e teste, com assinaturas próprias de cada um, para seu aplicativo do Azure. Nesse caso, implante seu serviço primeiro em uma assinatura de teste e, em seguida, em uma assinatura de produção. Quando você estiver pronto para seu serviço ficar ativo, pode ir para o ambiente de produção. Depois de implantar o serviço de nuvem em uma assinatura de produção, você poderá usar o ambiente de preparo para testes contínuos.

O Azure permite configurar seu aplicativo para escalar verticalmente ou reduzir verticalmente para corresponder às demandas atuais e minimizar os custos. Para ativar esse recurso, use as regras e programações de "dimensionamento automático". Para obter mais informações, leia "Como Dimensionar um Aplicativo".

Consulte também

Mostrar:
© 2015 Microsoft