Exportar (0) Imprimir
Expandir Tudo

O seu aplicativo é ideal para o Azure?

Atualizado: abril de 2014

Autor: Jason Roth
Revisores: Paulette McKay, Ralph Squillace, Sidney Higa, Brian Swan, Larry Franks

Se você estiver pensando em usar para hospedar um aplicativo, talvez esteja se perguntando se a plataforma atende da melhor maneira aos requisitos do seu aplicativo ou negócio. Você pode hospedar a maioria dos aplicativos e computadores no . No entanto, alguns cenários tiraram o máximo proveito dos benefícios de execução na Nuvem. Nas seções seguintes, este artigo resumirá esses benefícios e cenários para informar suas decisões sobre migração do :

A intenção é oferecer uma estrutura que o ajude a refletir sobre seu aplicativo e como ele se relaciona com os recursos do . Em muitos casos, fornecemos links para recursos adicionais. Esses recursos permitem aprimorar as suas habilidades para analisar seu aplicativo e tomar uma decisão sobre como passar a usar a Nuvem.

Antes de determinar se o aplicativo é apropriado para o , você deve compreender alguns dos principais benefícios da plataforma. Você pode encontrar uma lista completa de benefícios na Documentação do Azure e em muitos artigos e vídeos sobre o . Um documento excelente para pensar sobre os benefícios da Nuvem é Otimização de nuvem – expandindo recursos e alinhando necessidades de computação e de negócios.

Também é importante entender as três principais opções para executar aplicativos no : Sites, Serviços de nuvem e Máquinas Virtuais. Os Sites e Serviços de nuvem são ofertas de Plataformas como Serviço (PaaS). Isto significa que o fornece todo o hardware e imagens do sistema operacional. Você fornece o código do aplicativo que é executado na plataforma. As Máquinas Virtuais fornecem uma oferta de infraestrutura como serviço (IaaS). Isto significa que você gerencia imagens de máquina que são executadas nos datacenters do . Essas três opções fornecem várias vantagens e sua escolha dependerá de uma série de fatores. No entanto, com diversas opções e recursos, quase todos os aplicativos são adequados para o .

Há alguns benefícios chave ao executar aplicativos na Nuvem. Vamos analisar alguns desses benefícios em um nível alto antes de discutir os cenários que aproveitam esses recursos.

Quando você implanta aplicativos e serviços na Nuvem, o fornece as máquinas virtuais necessárias, a largura de banda de rede e outros recursos de infraestrutura. Se os computadores ficarem inativos para atualizações de hardware ou devido a falhas inesperadas, o localizará novas máquinas virtuais para o seu aplicativo automaticamente.

Porque você paga apenas pelo que usa, é possível começar com um investimento pequeno. Isso evita ter custos iniciais típicos necessários para a implantação no local. Isso pode ser especialmente útil para empresas pequenas. Em um cenário local, pequenas empresas podem não ter espaço no datacenter, habilidades de TI ou habilidades de hardware necessárias para implantar com êxito seus aplicativos. Os serviços de infraestrutura automáticos que o fornece oferecem uma pequena barreira de entrada para a implantação e o gerenciamento de aplicativos.

O dimensionamento dinâmico refere-se à capacidade de expansão e redimensionamento do seu aplicativo de acordo com os requisitos do recurso. Isso também é referenciado como escala elástica. Antes de descrever como funciona, vamos olhar a arquitetura comum de um aplicativo do que usa Serviços de nuvem. Com os Serviços de nuvem, você cria funções que trabalham juntas para implementar a lógica do aplicativo. Por exemplo, uma função da web poderia hospedar o front-end ASP.NET de seu aplicativo. Uma ou mais funções de trabalho poderiam realizar tarefas secundárias necessárias. Uma ou mais máquinas virtuais hospedam cada função. Elas são chamadas de instâncias de função no datacenter do . As solicitações são com balanceamento de carga nessas instâncias. Para obter mais informações sobre funções, consulte o documento O modelo de programação do Azure.

Nesse cenário, conforme as demandas de recursos aumentam, você pode provisionar novas instâncias de função para controlar a carga. Quando a demanda diminui, você pode remover essas instâncias de modo que não precise pagar por capacidade de computação desnecessária. Também há opções para ampliar e reduzir automaticamente com base em regras e políticas predefinidas. Isso difere muito de uma implantação no local, na qual o hardware deve ter um provisionamento adicional preventivo para eventuais picos de demanda. Se você quer mais controle sobre a escala automática do que a plataforma fornece, é possível usar o Bloco de aplicativos de dimensionamento automático criado pela equipe de Padrões e práticas da Microsoft.

Embora o cenário anterior descreva a escala dinâmica no contexto de Serviços de nuvem, você também pode expandir Sites e Maquinas Virtuais. Se seu aplicativo exige demandas flutuantes ou imprevisíveis para recursos de computação, o permite que você ajuste facilmente a utilização de recursos para corresponder à carga.

O oferece uma plataforma para aplicativos de alta disponibilidade que pode armazenar e acessar dados do servidor de forma confiável através dos serviços de armazenamento ou do Banco de dados SQL do Microsoft Azure.

Primeiro, o garante alta disponibilidade aos recursos de computação. Para Sites, você pode atender aos requisitos do SLA (contrato de nível de serviço) com uma única instância. Para Serviços de nuvem e Máquinas Virtuais, você pode atender aos requisitos do SLA tendo pelo menos duas instâncias por função ou tipo de máquina. Para Máquinas Virtuais, as instâncias devem ser intercambiáveis, cargas equilibradas e parte do mesmo grupo de disponibilidade. Em cada caso, o monitora o hardware atual que hospeda essas máquinas e instâncias virtuais. O é capaz de responder rapidamente a reinicializações de hardware ou a falhas, implantando automaticamente novas instâncias ou movendo o código do aplicativo e processando outro hardware operacional.

Segundo, o garante a alta disponibilidade e durabilidade de dados armazenados por um dos serviços de armazenamento. Os serviços de armazenamento do replicam todos os dados para pelo menos três servidores diferentes. Por padrão, esse armazenamento também se replica a uma região secundária do . Da mesma forma, o Banco de dados SQL do Azure replica todos os dados para garantir a disponibilidade e a durabilidade.

Outros serviços do fornecem garantias semelhantes de alta disponibilidade. Para obter mais informações, consulte Orientação técnica de continuidade de negócios do Azure.

Ao compreender os pontos fortes da plataforma , você pode começar a verificar os cenários mais adequados para a Nuvem. As seções a seguir discutem vários desses padrões e como o é idealmente adequado a determinadas cargas de trabalho e metas. O vídeo Padrões de design do Azure explica vários dos cenários a seguir e fornece uma boa visão geral da plataforma .

TipDica
Embora haja foco em cenários de aplicativos aqui, você pode optar por usar serviços individuais do . Por exemplo, se o uso do armazenamento blob solucionar um problema do aplicativo, o restante do aplicativo pode continuar fora da Nuvem. Isso é chamado de um aplicativo híbrido e discutido posteriormente neste tópico.

O é apropriado para a hospedagem de serviços altamente disponíveis. Considere um repositório online implantado no . Como um repositório online é um gerador de receita, é essencial que ele permaneça em execução. Para conseguir isso, o datacenter do realiza monitoramento de serviço e gerenciamento de instância automático. O repositório online também deve manter a capacidade de resposta à demanda de clientes. A capacidade elástica de dimensionamento do consegue isso. Durante os horários de pico de compra, novas instâncias podem ficar online para tratar o aumento do uso. Além disso, o repositório online não deve perder pedidos ou falhar em processar totalmente os pedidos feitos. O armazenamento do e o Banco de dados SQL do Azure oferecem opções altamente disponíveis e duráveis de armazenamento para manter os detalhes e o estado do pedido ao longo do ciclo de vida do pedido. Para obter níveis de disponibilidade mais altos, você pode implantar o mesmo aplicativo em múltiplas regiões do . É possível criar um serviço que permanece disponível mesmo se uma região inteira do apresentar uma falha temporária. Fazer isso requer a arquitetura de sincronização apropriada e procedimentos para rotear os usuários.

Outra boa opção para o é algum tipo de carga de trabalho que alterne entre "ativa e inativa". Alguns aplicativos não precisam estar continuamente em execução. Um exemplo simples disso é um aplicativo de demonstração ou utilitário que você deseja disponibilizar somente por vários dias ou semanas. O permite facilmente criar, implantar e compartilhar esse aplicativo com o mundo. Quando essa finalidade for cumprida, você poderá remover o aplicativo e será cobrado apenas pelo tempo de implantação.

noteObservação
Observação: Você deve remover a implantação, não apenas suspender o aplicativo, para evitar cobranças pelo tempo de computação.

Considere também uma empresa de grande porte que executa a análise de dados complexos de números de vendas no final de cada mês. Embora o processamento seja intensivo, o tempo total exigido para concluir a análise é de no máximo dois dias. Em um cenário local, os servidores necessários para este trabalho seriam subutilizados na maior parte do mês. No , o negócio pagaria somente pelo tempo de execução do aplicativo de análise na Nuvem. Vamos supor que a arquitetura do aplicativo foi projetada para processamento paralelo. Os recursos de expansão do permitiriam que a empresa criasse muitas instâncias de função de trabalho ou máquinas virtuais. Trabalhando juntos, eles podem completar trabalhos mais complexos em menos tempo. Neste exemplo, você deve usar o código ou script para implantar automaticamente o aplicativo no momento apropriado a cada mês.

Todos os negócios têm uma meta de crescimento rápido e sustentável. Mas é muito difícil tratar o crescimento no modelo tradicional no local. Se o crescimento previsto não se materializar, significa que você investiu na manutenção de hardware e infraestrutura subutilizados. Mas se o crescimento ocorrer mais rápido do que o esperado, talvez você não consiga tratar a carga, resultando na perda de negócios e na pouca experiência do cliente. Para empresas de pequeno porte, talvez não exista nem capital inicial suficiente para preparar-se ou acompanhar o rápido crescimento.

O é ideal para tratar essa situação. Considere um site com notícias esportivas que lucra com a propaganda. A receita é diretamente proporcional à quantidade de tráfego gerada pelo site. Nesse exemplo, o capital inicial investido é limitado. Adicionalmente, a empresa não tem a verba necessária para configurar e executar seu próprio datacenter. Ao projetar o site para ser executado no , a empresa pode facilmente implantar essa solução como um aplicativo ASP.NET. O aplicativo utilizará um Banco de dados SQL do Azure para dados relacionais e armazenamento blob para imagens e vídeos. Se a popularidade do site aumentar muito, a empresa poderá aumentar o número de instâncias de função web para este front-end. A empresa também pode aumentar o tamanho do Banco de dados SQL do Azure. O armazenamento de blob tem recursos internos de escalabilidade no . Se o negócio diminuir, a empresa poderá remover todas as instâncias desnecessárias. Como sua receita é proporcional ao tráfego no site, o ajuda a empresa a começar pequena, crescer rapidamente e reduzir riscos.

Com o , você tem controle total para determinar como gerenciar de maneira agressiva os custos de computação. Você pode decidir implementar o escalonamento automático, por meio do uso do recurso de Autoescala ou do Bloco de aplicativos de dimensionamento automático. Isso pode adicionar e remover instâncias com base em regras personalizadas. Você pode escolher variar o número de instâncias com base em uma quantidade predeterminada. Por exemplo, você pode ter quatro instâncias durante o horário comercial e duas instâncias durante o horário não comercial. Ou você pode manter o número de instâncias constante e somente aumentá-las manualmente por meio de um portal da Web conforme aumente a demanda com o passar do tempo. O oferece a flexibilidade para tomar decisões que são certas para seu negócio.

Este é outro padrão de carga de trabalho que requer a escala elástica. Considere o exemplo anterior de um site de notícias esportivas. Até mesmo quando seu negócio apresenta um crescimento constante, ainda existe a possibilidade de picos temporários ou de intermitências de atividade. Por exemplo, vamos dizer que outro veículo notícias conhecido faz referência ao site. O número de visitantes do site pode aumentar dramaticamente em um só dia. Em um cenário mais previsível, os principais eventos esportivos e os campeonatos esportivos resultarão em maior atividade no site.

Um exemplo alternativo é um serviço que processa relatórios diários no fim do dia. Quando o dia útil acaba, cada escritório envia um relatório que a sede da empresa processa. Como o processo precisa estar ativo apenas algumas horas por dia, ele também é candidato à escala elástica e à implantação.

O é adequado à expansão temporária de um aplicativo para controlar picos de carga e, depois, reduzir novamente após a aprovação do evento.

Conforme demonstrado nos exemplos anteriores, muitos dos cenários em Nuvem mais comuns aproveitam a escala elástica do . Entretanto, mesmo os aplicativos com padrões constantes de carga de trabalho podem fazer economia no . É caro gerenciar seu próprio datacenter, especialmente quando você considera o custo de energia, de habilidades pessoais, de hardware, de licenciamento de software e de recursos. Também é difícil compreender como os custos estão vinculados a aplicativos individuais. No , a meta é reduzir o custo total e tornar esses custos mais transparentes. Sugerimos que leia o documento Otimização de nuvem – expandindo recursos e alinhando necessidades de computação e de negócios. O documento faz um ótimo trabalho explicando os custos típicos de hospedagem no local e como o pode reduzi-los.

As Máquinas e Redes virtuais do fornecem a maneira mais simples para migrar servidores no local e redes para a Nuvem. A transição de aplicativos locais para Serviços de nuvem ou Sites também alivia a pressão nos datacenters locais. Em vez de datacenters locais, o é agora responsável de fornecer os recursos de computação e armazenamento necessários para esses aplicativos.

O fornece uma calculadora de preços para o entendimento de custos específicos. Também fornece uma calculadora de TCO (custo total de propriedade) para a estimativa de redução de custos gerais que possam acontecer com a adoção do . Para obter links dessas ferramentas de cálculo e outras informações sobre preços, consulte o site do Azure.

O tem serviços e opções que se adaptam a quase todos os aplicativos. Essas opções de períodos PaaS, tais como os Serviços de nuvem e Sites, e IaaS com Máquinas Virtuais e Redes Virtuais. Contudo, há cenários que garantem uma migração mais lenta ou nenhuma migração para a Nuvem.

Um cenário é um aplicativo ou serviço de baixo volume sem projeções de crescimento. É possível que você execute esse aplicativo no hardware de mercadoria local de forma mais barata do que na nuvem. Há duas exceções para isto. Há benefícios para passar a usar o que vão além de custos de hospedagem simples. Por exemplo, você pode querer gerenciar o servidor, sua disponibilidade e a durabilidade dos seus dados de forma gratuita. Segundo, com os Sites do , há uma opção de hospedagem gratuita para sites de baixo volume. Por exemplo, você pode usar isso para hospedar um blog WordPress pessoal.

Outro cenário envolve dados que você não pode mover para o . Os negócios e governos, por vezes, regulam o tipo de dados que podem permanecer na Nuvem. Nesses casos, você pode considerar uma solução híbrida. Nessa instância, o hospeda somente determinados dados ou partes específicas do seu aplicativo que não são tão sensíveis e precisam ser altamente disponíveis.

Ao compreender os pontos fortes do , você pode reconhecer aplicativos ou partes de um aplicativo que não aproveitarão esses pontos fortes. Você pode então desenvolver com mais êxito a solução geral que utiliza com mais eficácia recursos do .

Naturalmente, avaliar a movimentação para o envolve mais do que apenas saber que seu aplicativo ou suas metas de negócios são apropriados para a Nuvem. Também é importante avaliar características arquitetônicas e de desenvolvimento do aplicativo existente ou do novo aplicativo. Um modo rápido de começar essa análise é usar a Ferramenta de avaliação da Microsoft (MAP) para o . Essa ferramenta faz perguntas para determinar os tipos de problemas que você pode encontrar ao mover para o . Ao lado de cada pergunta, existe um link chamado “Veja a consideração inteira”, que fornece informações adicionais sobre essa área específica no . Essas perguntas e as informações adicionais podem ajudar você a identificar alterações em potencial no design do aplicativo existente ou novo na Nuvem.

Além da ferramenta de MAP, você deve ter uma compreensão sólida dos fundamentos da plataforma do . Isso inclui uma compreensão de padrões comuns de design para a plataforma. Você também deve considerar revisar os cartazes técnicos do . Eles têm informações importantes sobre os recursos da plataforma, bem como links para obter mais informações. Examine os diferentes serviços disponíveis no e considere como eles podem influenciar sua solução. Para obter uma visão geral dos serviços do , consulte O que é o Azure? Quando estiver planejando sua arquitetura, consulte Assinatura do Azure e limites, cotas e restrições do serviço.

Está além do escopo deste documento abranger todas as considerações e atenuantes possíveis para soluções do . No entanto, a tabela a seguir lista quatro considerações comuns de design junto com links para recursos adicionais.

 

Área Descrição

IaaS ou PaaS?

A Infraestrutura como um Serviço (IaaS) permite que você coloque suas próprias imagens nas Máquinas Virtuais do . Isso geralmente é uma maneira mais simples de migrar para a Nuvem, pois envolve menos alterações na arquitetura do aplicativo.

Sites e Serviços de nuvem fornecem uma Plataforma como um Serviço (PaaS). Os aplicativos que você cria para um ambiente PaaS são frequentemente mais flexíveis, escalonáveis e gerenciáveis que as soluções semelhantes em IaaS. No entanto, normalmente leva mais tempo para concluir uma migração para os Serviços de nuvem. Os Sites fornecem um bom equilíbrio entre as vantagens da PaaS e a facilidade de migração da IaaS.

Para um melhor entendimento dessas opções desde uma perspectiva Web, consulte Sites do Azure, Serviços de nuvem e comparação de Máquinas Virtuais.

Soluções híbridas

Pode ser difícil mover aplicativos herdados complexos para o . Às vezes, também há preocupações com regulamentação no armazenamento de certos tipos de dados na Nuvem. Algumas respostas sobre segurança e conformidade regulatória são abordadas na Central de Confiabilidade do Azure.

Para enfrentar esses desafios, uma solução é criar um aplicativo híbrido que conecte os serviços que o hospeda com aplicativos e dados no local. Há várias tecnologias do que fornecem suporte a esse recurso, inclusive o Service Bus e a Rede Virtual. Para obter mais informações, consulte Construindo aplicativos híbridos na Nuvem do Azure.

Gerenciamento de estado

Se você está mudando um aplicativo existente para as Máquinas Virtuais do , você pode controlar o estado dos dados da mesma forma que fazia no local. No entanto, se você quer aproveitar a arquitetura PaaS dos Serviços de nuvem do , você deve avaliar como controlar o estado. Muitos aplicativos locais armazenam o estado localmente no disco rígido. Outros recursos, como o estado de sessão padrão ASP.NET, usam a memória do computador local para o gerenciamento de estado. Embora as funções de serviço na nuvem tenham acesso ao espaço e à memória locais da unidade da máquina virtual, o faz o balanceamento de carga em todas as solicitações em todas as instâncias de função. Adicionalmente, a instância de função pode ser desativada e movida a qualquer momento (por exemplo, quando o computador que executa a instância de função requer uma atualização).

Este gerenciamento dinâmico de instâncias de função de trabalho é importante para os recursos de escalabilidade e a disponibilidade dos Serviços de nuvem do . Consequentemente, você deve criar o código do aplicativo na Nuvem para armazenar os dados e o estado remotamente usando serviços como o armazenamento do ou do Banco de dados SQL do Azure. Para obter mais informações sobre as opções de armazenamento, consulte os recursos na seção Armazenar e acessar dados no site do .

Requisitos de armazenamento

O Banco de dados SQL do Azure é a solução de banco de dados relacional no . Se você está usando o SQL Server no momento, a transição para o Banco de dados SQL do Azure deve ser mais fácil. Você também pode escolher executar o SQL Server em uma Máquina Virtual. Se você estiver usando um sistema de banco de dados diferente, uma opção é migrar para o Banco de dados SQL do Azure ou para o SQL Server em uma Máquina Virtual. Há Assistentes de migração do SQL Server que podem ajudar com esse processo. Para obter mais informações sobre a migração de dados para o Banco de dados SQL do Azure, consulte Migração de dados para o Banco de Dados SQL do Azure: ferramentas e técnicas. Outra opção é migrar o seu banco de dados terceirizado diretamente para o . Uma técnica é instalar o seu sistema de banco de dados em uma Máquina Virtual. No entanto, há também ofertas de terceiros na Azure Store para sistemas como MySQL e MongoDB.

Considere também o armazenamento do para o armazenamento de dados duráveis, altamente disponíveis e escalonáveis. Um bom padrão de design é combinar efetivamente o uso do Banco de dados SQL do Azure e de tabelas de armazenamento, filas e blobs do . Um exemplo comum é usar o Banco de dados SQL do Azure para armazenar um indicador em um blob no armazenamento do . Você faz isto em vez de armazenar o objeto binário grande em seu próprio banco de dados. Isso é eficiente e econômico.

Interoperabilidade

O SDK do e as ferramentas do Visual Studio simplificam muito o processo de criação ou migração de aplicativos .NET para o .

Mas e se você estiver usando software livre ou idiomas de desenvolvimento e ferramentas de terceiros? Os Sites e Serviços de nuvem do oferecem suporte aos aplicativos escritos em Node.js, PHP, Python e Java (somente para Serviços de nuvem). Se o seu aplicativo utiliza uma outra linguagem, considere uma Máquina Virtual. Enquanto estiver trabalhando com serviços do , todas as operações serão baseadas em uma API REST. Você pode codificar diretamente por ela. No entanto, o fornece SDKs oficiais para Java, Node.js, PHP, Python e Ruby que fornecem wrappers amigáveis em torno da API REST. Há também SDKs criados pela comunidade que interagem com o .

Naturalmente, há alguns desafios a resolver dependendo de sua tecnologia. Para Máquinas Virtuais, você deve instalar os tempos de execução e dependências necessários na sua imagem de máquina. Para Serviços de nuvem, você pode precisar adicionar uma ação de inicialização personalizada para instalar dependências de terceiros para sua função. Para Sites, você pode precisar fazer modificações menores para permitir que o aplicativo funcione em um ambiente de hospedagem PaaS. Um ótimo recurso nessa área é Pontes de interoperabilidade e centros de laboratório.

O ponto importante é que o é acessível de diversos idiomas. Portanto, você deve analisar as opções para sua opção de idioma específico antes de decidir se o aplicativo é um bom candidato para o .

Além desses problemas, você pode saber mais sobre desafios e soluções desenvolvimento em potencial, examinando o conteúdo ao migrar aplicativos para o . Os grupos de padrões e práticas da Microsoft publicaram a seguinte orientação sobre migração: Movendo aplicativos para a Nuvem na plataforma Microsoft Azure.

O oferece uma plataforma para criar e gerenciar serviços altamente escalonáveis e disponíveis. Há duas ofertas PaaS, Sites e Serviços de nuvem, e uma oferta IaaS com Máquinas Virtuais. Além dessas ofertas, há vários serviços e recursos de suporte que oferecem suporte a vários cenários diferentes de aplicativos. Você paga somente pelos recursos de que precisa e, depois, aumenta e reduz a escala a qualquer momento. E você não precisa ser proprietário do hardware ou da infraestrutura de suporte para fazer isso. Se seu negócio pode aproveitar a plataforma para aumentar a agilidade, reduzir custos ou diminuir riscos, então o é uma boa opção para seu aplicativo. Após tomar essa decisão, você pode analisar opções específicas de arquitetura e desenvolvimento para usar a plataforma. Isso inclui decisões sobre os novos cenários de desenvolvimento, migração ou híbridos. Depois dessa análise, você terá as informações necessárias para tomar uma decisão consciente sobre como usar com mais eficiência o para atingir suas metas de negócios.

Mostrar:
© 2014 Microsoft