Editar

Funções do Azure num ambiente híbrido

Azure Functions
Azure Monitor
Azure Pipelines
Azure Storage
Azure Virtual Network

Essa arquitetura de referência ilustra várias ramificações locais de uma organização que estão espalhadas geograficamente. Cada local está usando um Aplicativo de Função do Microsoft Azure configurado com o plano Premium em uma região de nuvem próxima. Os desenvolvedores nessa arquitetura estão monitorando todos os Aplicativos de Função do Azure usando o Azure Monitor como um único painel de vidro.

Arquitetura

O diagrama ilustra várias máquinas virtuais (VMs) locais que estão conectadas ao Azure Functions em regiões diferentes. Os desenvolvedores estão monitorando seus aplicativos de função usando o Azure Monitor.

Transfira um ficheiro do Visio desta arquitetura.

Componentes

A arquitetura é composta pelos seguintes componentes:

  • Funções do Azure. O Azure Functions é uma plataforma como serviço (PaaS) sem servidor no Azure que executa código pequeno e de tarefa única sem exigir que uma nova infraestrutura seja girada. O plano Azure Functions Premium adiciona a capacidade de comunicar com o Azure Functions de forma privada através de uma rede virtual.
  • Rede virtual do Azure. As redes virtuais do Azure são redes privadas criadas na plataforma de nuvem do Azure para que os recursos do Azure possam comunicar entre si de forma segura. Os pontos de extremidade de serviço de redes virtuais do Azure garantem que os recursos do Azure só possam se comunicar pelo backbone de rede virtual seguro.
  • Rede no local. Nesta arquitetura, a organização criou uma rede privada segura que conecta as várias filiais. Essa rede privada está conectada às suas redes virtuais do Azure usando uma conexão site a site .
  • Estações de trabalho para desenvolvedores. Nessa arquitetura, os desenvolvedores individuais podem trabalhar no código do Azure Functions inteiramente na rede privada segura ou em qualquer local remoto. Em ambos os cenários, os desenvolvedores têm acesso ao Azure Monitor para consultar ou observar métricas e logs para os aplicativos de função.

Detalhes do cenário

Utilizações típicas desta arquitetura:

  • Organizações com muitos locais físicos que estão conectados a uma rede virtual no Azure para se comunicar com o Azure Functions.
  • Cargas de trabalho de alto crescimento que estão usando o Azure Functions localmente e mantendo a opção de usar o Azure para quaisquer picos inesperados no trabalho.

Recomendações

As recomendações seguintes aplicam-se à maioria dos cenários. Siga-as, a não ser que tenha requisitos específicos que as anulem.

Projetando para uma arquitetura sem servidor

As aplicações empresariais tradicionais tendem para uma arquitetura de aplicação monolítica na qual uma "solução" de código executa a lógica de negócios de toda a organização. Com o Azure Functions, a prática recomendada é projetar para uma arquitetura sem servidor na qual funções individuais executam tarefas únicas. Essas tarefas únicas são projetadas para serem executadas rapidamente e integradas a fluxos de trabalho maiores.

A arquitetura sem servidor no Azure Functions tem muitos benefícios, incluindo:

  • Os aplicativos podem ser dimensionados automaticamente por funções de negócios individuais, em vez de dimensionar toda a solução. Isso pode ajudar a manter os custos baixos, dimensionando apenas o que é necessário para cada tarefa para atender às cargas de trabalho existentes.
  • O Azure Functions fornece associações declarativas para muitos serviços do Azure, reduzindo a quantidade de código que sua equipe precisa escrever, testar e manter.
  • Funções individuais podem ser reutilizadas, reduzindo a quantidade de código repetido que é necessário para soluções de grandes empresas.

Executando o Azure Functions local

Você pode optar por fazer com que o Azure Functions seja executado localmente em vez de no Azure; Por exemplo:

  • Sua equipe pode querer executar o Azure Functions em uma instalação Kubernetes local existente.
  • No desenvolvimento, sua equipe pode achar mais fácil desenvolver localmente usando a interface de linha de comando em vez do editor no portal.
  • Suas funções serão executadas localmente com o conjunto de ferramentas instalado em VMs locais.

Você pode executar o Azure Functions local de três maneiras:

Conectividade de rede

A criação de aplicativos de função usando o plano Premium abre a possibilidade de conectividade entre redes altamente segura entre redes entre redes virtuais do Azure, redes do Azure e locais e as redes de cada filial local.

Você deve usar uma conexão site a site ou uma conexão de Rota Expressa do Azure entre a Rede Virtual do Azure e redes locais. Isso permite que as filiais locais se comuniquem com os aplicativos de função no Azure usando seus pontos de extremidade de serviço.

Além disso, cada rede virtual no Azure também deve usar o emparelhamento de rede virtual para habilitar a comunicação entre aplicativos de função individuais entre regiões.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que podem ser usados para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework.

Escalabilidade

  • O código do Azure Functions deve ser projetado para que possa ser expandido infinitamente. Considere condições de corrida, arquivos alugados e outras cargas de trabalho que podem fazer com que uma função seja executada para bloquear outra. Considere também escrever todo o código do Azure Functions para ser sem estado e defensivo em seu design.
  • Para aplicativos de função que usam contas de Armazenamento do Azure em gatilhos ou associações, não reutilize a mesma conta usada para armazenar metadados sobre os aplicativos de função e suas execuções.

Disponibilidade

  • Normalmente, o Azure Functions no plano de consumo pode reduzir para zero instâncias. Quando um novo evento aciona um aplicativo de função, uma nova instância deve ser criada com seu código em execução nele. A latência associada a esse processo é chamada de arranque a frio. O plano Premium do Azure Functions oferece a opção de configurar instâncias pré-aquecidas que estão prontas para quaisquer novas solicitações. Você pode configurar o número de instâncias pré-aquecidas até o número mínimo de instâncias em sua configuração de expansão.
  • Considere ter vários planos Premium em várias regiões e usar o Gerenciador de Tráfego do Azure para rotear solicitações adequadamente.

Capacidade de gestão

  • O Azure Functions deve estar em uma sub-rede vazia que seja uma sub-rede diferente de seus outros recursos do Azure. Isso pode exigir mais planejamento ao projetar sub-redes para sua rede virtual.
  • Considere a criação de proxies para cada recurso local que o Azure Functions possa precisar acessar. Isso pode proteger a integridade do seu aplicativo contra quaisquer alterações imprevistas na rede local.
  • Use o Azure Monitor para observar análises e logs para o Azure Functions em toda a sua solução.

DevOps

  • Idealmente, as operações de implantação devem vir de uma única equipe (Dev ou DevOps), não de cada ramificação individual. Considere usar um sistema de fluxo de trabalho moderno, como o Azure Pipelines ou o GitHub Actions, para implantar aplicativos de função de maneira repetível em todas as regiões do Azure e, potencialmente, no local.
  • Use seu sistema de fluxo de trabalho para automatizar a reimplantação de código no Azure Functions à medida que o código é atualizado e marcado para lançamento.
  • Use slots de implantação para testar o Azure Functions antes de seu push final para a produção.

Otimização de custos

A otimização de custos consiste em procurar formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Visão geral do pilar de otimização de custos.

  • Utilize a calculadora de preços do Azure para prever os custos.
  • O plano Premium do Azure Functions é necessário para conectividade da Rede Virtual do Azure, acesso a sites privados, pontos de extremidade de serviço e instâncias pré-aquecidas.
  • O plano Premium do Azure Functions fatura em instâncias em vez de consumo. O mínimo de uma única instância garante que haverá pelo menos alguma fatura mensal, mesmo sem execuções. Você pode definir uma contagem máxima de instâncias para controlar os custos de cargas de trabalho que podem aumentar de tamanho.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Autor principal:

Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.

Próximos passos

Consulte as seguintes diretrizes de arquitetura para o Azure Functions:

Consulte as seguintes orientações de arquitetura para as Redes Virtuais do Azure: