Partilhar via


Perspetiva do Framework do Azure Well-Architected sobre o Azure Functions

O Azure Functions é um serviço de computação sem servidor que permite executar código controlado por eventos sem ter que gerenciar a infraestrutura explicitamente. Como uma oferta de Functions as a Service" (FaaS), o Azure Functions abstrai a infraestrutura subjacente, permitindo que você se concentre em seu código. Esse serviço é dimensionado automaticamente com base na demanda e cobra apenas pelos recursos consumidos durante a execução.

Este documento pressupõe que, como arquiteto, tenhas revisto a árvore decisória de computação e escolhido o Azure Functions como a solução de computação para a tua carga de trabalho. As orientações fornecidas aqui estão alinhadas com os princípios dos pilares do Azure Well-Architected Framework.

Importante

Como usar este guia

Cada seção contém uma lista de verificação de design que destaca áreas arquitetônicas de interesse com estratégias de design específicas relacionadas às Funções do Azure.

As recomendações oferecem recursos tecnológicos para ajudar a implementar estas estratégias. Esta lista não é exaustiva, mas inclui recomendações importantes para ajudá-lo a criar ou otimizar suas cargas de trabalho com o Azure Functions.

Arquitetura básica apresentando as principais recomendações: projeto de arquitetura de funções sem servidor

Âmbito da tecnologia

Esta análise concentra-se nas decisões inter-relacionadas para os seguintes recursos do Azure:

  • Aplicativos de função

Observação

Este guia de serviço amplia as orientações encontradas no guia de serviço do Serviço de Aplicação (Web Apps). O Azure Functions é um serviço de computação sem servidor. As funções são implantadas em Planos do Serviço de Aplicativo, que fornecem a infraestrutura de computação subjacente para sua carga de trabalho. Você pode escolher entre vários planos de hospedagem. O plano de Consumo é totalmente gerenciado e não oferece suporte ao acesso à instância do Serviço de Aplicativo associada, enquanto o Dedicado e o Premium oferecem a capacidade de configurar e gerenciar a instância do Serviço de Aplicativo. Consulte o guia de serviço do Serviço de Aplicativo para obter recomendações e considerações ao escolher um plano de hospedagem Dedicado ou Premium.

Fiabilidade

O pilar Confiabilidade garante funcionalidade contínua, construindo resiliência e permitindo a recuperação rápida de falhas.

Os princípios de projeto Confiabilidade fornecem estratégias de projeto de alto nível que se aplicam a componentes individuais, fluxos do sistema e ao sistema em geral.

Lista de verificação de design

Inicie a sua estratégia de design com base nos princípios de Confiabilidade . Avalie sua relevância para seus requisitos de negócios considerando os recursos e configurações específicos do Azure Functions.

  • Entenda os gatilhos: Certifique-se de entender completamente como o Azure Functions é acionado. Os gatilhos incluem solicitações HTTP, temporizadores, filas e muito mais. Escolha gatilhos que correspondam aos requisitos de confiabilidade do seu aplicativo.

    Por exemplo, se sua função processar mensagens de uma fila, verifique se a fila em si é resiliente e se as mensagens podem ser reprocessadas se ocorrer uma falha.

  • Implementar novas tentativas e padrões duráveis: Use políticas internas de repetição para falhas transitórias. Para fluxos de trabalho mais complexos, considere o uso de funções duráveis, que oferecem gerenciamento de estado e coordenação em várias execuções de funções.

    As funções duráveis são particularmente úteis para cenários que exigem confiabilidade em fluxos de trabalho de longa execução. Eles suportam repetições automáticas e gerenciamento de tarefas duráveis.

  • Garantir o tratamento adequado de exceções: Implemente um tratamento robusto de exceções para garantir que as funções falhem normalmente. Registre erros e considere a implementação de mecanismos de alerta para falhas críticas.

  • Planejar a escalabilidade: o Azure Functions é dimensionado automaticamente com base na demanda. Certifique-se de que seu aplicativo foi projetado para lidar com picos testando seu desempenho sob carga.

    Considere o uso do Application Insights para monitorar o desempenho e acompanhar como suas funções são dimensionadas em tempo real.

  • Design parade idempotência : Certifique-se de que suas funções podem ser repetidas com segurança sem causar efeitos colaterais indesejados. A idempotência é crucial para funções que interagem com sistemas externos ou modificam dados.

  • Usar funções duráveis para operações de longa duração: Para operações que exigem orquestração ou processos de longa execução, use funções duráveis para manter o estado e garantir a confiabilidade em várias etapas.

  • Monitorar a integridade da sua solução: Integre a sua solução de Funções do Azure ao seu sistema geral de monitorização e alerta da integridade da carga de trabalho.

Recomendações
Recomendação Benefício
Configure de novas tentativas automáticas para erros transitórios. Saiba mais sobre tratamento de erros e novas tentativas do Azure Functions Melhora a confiabilidade ao repetir automaticamente execuções com falha, reduzindo a probabilidade de perda ou interrupção de dados.
Use Durable Functions para orquestrar fluxos de trabalho complexos e processos que durem muito tempo. Saiba mais sobre Funções duráveis. Fornece execução confiável de fluxos de trabalho de longa execução, com gerenciamento de estado integrado e repetições automáticas.
Implemente de monitoramento de e de registro centralizado usando o Application Insights. Configurar o Application Insights. Melhora o monitoramento e a solução de problemas, fornecendo informações detalhadas sobre execuções de funções e dependências.
Dimensione automaticamente com base no Plano de Hospedagem de Função, tipo de gatilho e demanda. Saiba mais sobre dimensionamento. Garante que seu aplicativo possa lidar com aumentos no tráfego sem intervenção manual, melhorando a confiabilidade e o desempenho.

Segurança

O pilar Segurança está centrado em garantir a confidencialidade, integridade e disponibilidade dos seus dados e serviços.

Os princípios de design de Segurança oferecer uma estratégia de alto nível para proteger suas Funções do Azure, incluindo práticas recomendadas para autenticação, autorização e proteção de dados.

Lista de verificação de design

Inicie a sua estratégia de design com a lista de verificação de revisão de design para segurança e identifique possíveis vulnerabilidades. Amplie sua estratégia incorporando medidas de segurança adicionais, conforme necessário.

  • Usar identidades gerenciadas: habilite identidades gerenciadas para que seus aplicativos de função acessem com segurança outros serviços do Azure sem precisar gerenciar credenciais. Saiba mais sobre identidades gerenciadas.

  • Proteja seu aplicativo de função com o Microsoft Entra ID: restrinja o acesso às suas funções configurando o Azure Functions para exigir a autenticação do Microsoft Entra ID. Configurar a autenticação do Microsoft Entra.

  • Aplicar controles de segurança de rede: Entenda as opções disponíveis para seu modelo de hospedagem para proteger a configuração de rede do Functions. Proteja a rede para atender às suas necessidades.

Recomendações
Recomendação Benefício
Habilite identidades gerenciadas para acesso seguro aos recursos do Azure. Habilitar identidades gerenciadas Simplifica a gestão de credenciais, eliminando a necessidade de armazenar e rodar segredos, aumentando a segurança.
Use o Cofre de Chaves do Azure para gestão de segredos e rotação regular. Integrar o Key Vault com o Azure Functions. Protege informações confidenciais, como chaves de API e cadeias de conexão, armazenando-as com segurança e automatizando a rotação secreta quando o uso de uma identidade gerenciada não é viável.
Integre-se a uma rede virtual e utilize pontos finais privados. Protege aplicações funcionais restringindo o acesso à sua rede interna e evitando a exposição à Internet pública.

A integração de rede virtual e os pontos finais privados não estão disponíveis no plano de hospedagem de consumo.

Otimização de Custos

O pilar de Otimização de Custos foca-se na identificação de formas de reduzir custos, mantendo os níveis de desempenho necessários.

Os princípios de design de Otimização de Custos fornecem estratégias para equilibrar custo e desempenho, garantindo que sua implantação do Azure Functions seja eficiente e econômica.

Lista de verificação de design

Comece sua estratégia de otimização de custos com a lista de verificação de revisão de projeto para Otimização de custose ajuste seu projeto para alinhá-lo com os requisitos orçamentários.

  • Escolha o plano de preços certo: o Azure Functions oferece vários planos de preços, incluindo o plano de consumo, o plano Premium e o plano dedicado (Serviço de Aplicativo). Escolha um plano que esteja alinhado com sua carga de trabalho e considerações de custo. Compare planos de preços.

    O plano de consumo é ideal para cargas de trabalho imprevisíveis com execuções pouco frequentes, pois você paga apenas pelo tempo de execução e recursos consumidos. Quando seu aplicativo está ocioso, você não é cobrado.

  • Otimizar o tempo de execução: Reduza o tempo de execução otimizando o código da função. Minimize o uso de dependências externas e otimize a lógica de código para diminuir a duração de cada execução.

  • Monitore e analise custos: monitore regularmente o uso e os custos do aplicativo de função usando o Gerenciamento de Custos do Azure e configure alertas para detetar anomalias de custo. Saiba mais sobre gestão de custos e otimização.

Recomendações
Recomendação Benefício
Use o plano de Consumo para cargas de trabalho com tráfego imprevisível. Entenda o plano de consumo. Reduz os custos cobrando apenas pelos recursos utilizados durante a execução da função, evitando custos associados a recursos ociosos.
Reserve capacidade para planos Elastic Premium ou Planos de Serviço Aplicacional Dedicado se a sua carga de trabalho for previsível. Reduz os custos através de preços com desconto para cargas de trabalho previsíveis com padrões de execução estáveis.
Monitore regularmente os custos e configure alertas para anomalias. Configure alertas de custo. Ajuda a identificar picos de custos com antecedência, permitindo gerenciamento e otimização proativos.

Excelência Operacional

A Excelência Operacional concentra-se em processos e procedimentos para implantação, observabilidade e gerenciamento de seus aplicativos do Azure Functions.

Os princípios de design do Operational Excellence fornecem estratégias para garantir que os apps funcionais sejam implantados, geridos e monitorizados de forma eficiente.

Lista de verificação de design

Inicie sua estratégia de design com base nos princípios de design para Excelência Operacional ofereça estratégias para manter a qualidade operacional do Azure Functions.

  • Automatize implantações: use pipelines de CI/CD para automatizar a implantação de seus aplicativos funcionais. Integre com o Azure DevOps ou GitHub Actions para fluxos de trabalho de implantação contínuos.

  • Implementarde monitoramento de integridade: use o Azure Monitor e o Application Insights para acompanhar a integridade e o desempenho de suas funções. Configure alertas para métricas críticas e use painéis personalizados para obter informações em tempo real. Monitor Azure Function.

  • Implante sua solução com segurança: entenda os modelos de implantação disponíveis para o Azure Functions e adote o modelo que melhor atenda às suas práticas de implantação seguras.

  • Plano de recuperação de desastres: implemente estratégias de recuperação de desastres utilizando a recuperação entre regiões e zonas de disponibilidade para funções críticas. Plano de DR.

Recomendações
Recomendação Benefício
Automatize implantações com pipelines de CI/CD usando o Azure DevOps ou as Ações do GitHub. Configurar CI/CD Melhora a consistência da implantação, reduz erros manuais e acelera o tempo de comercialização de novos recursos.
Use slots de implantação para preparar alterações antes do lançamento de produção. Implementar usando slots. Reduz o risco de introdução de erros na produção e permite reversões seguras se forem detetados problemas.
Implemente monitorização centralizada utilizando o Application Insights e o Azure Monitor, usando as métricas disponíveis. Melhora a visibilidade do desempenho da função, ajudando a identificar e resolver problemas rapidamente.

Eficiência de desempenho

A eficiência de desempenho garante uma experiência do utilizador ideal, mesmo sob carga aumentada, gerindo a capacidade de forma eficaz.

Os princípios de design de Eficiência de Desempenho fornecem estratégias para ajudar a projetar aplicações funcionais que atendam aos requisitos de desempenho, mesmo quando a procura aumenta.

Lista de verificação de design

Inicie sua estratégia de desempenho com os princípios Design da Performance Efficiencye projete seus aplicativos de função para dimensionar e executar de forma otimizada.

  • Otimizar o arranque a frio: Minimize o impacto dos arranques a frio utilizando planos Premium Flex com instâncias pré-aquecidas ou garantindo que as suas funções permaneçam ativas com estratégias como o gatilho de arranque do Azure Functions.

  • Otimizar código de função: Escreva código eficiente para reduzir o tempo de execução e o consumo de recursos. Evite operações de longa duração e otimize chamadas de serviço externas.

  • Habilitar dimensionamento automático: aproveite as capacidades de dimensionamento automático do Azure Functions para aumentar automaticamente de acordo com a demanda. Certifique-se de que suas regras de dimensionamento estejam bem definidas e testadas.

  • Monitorar métricas de desempenho: Use o Application Insights para monitorar as principais métricas de desempenho, como tempo de execução, CPU e uso de memória. Configure alertas para degradação do desempenho. Monitore o desempenho.

Recomendações
Recomendação Benefício
Use o plano Elastic Premium com uma instância pré-aquecida para minimizar a latência de inicialização a frio. Compreenda o arranque a frio. Reduz a latência associada a arranques a frio, melhorando os tempos de resposta para aplicações sensíveis ao tempo.
Otimizar o código da função para reduzir o tempo de execução. Práticas recomendadas para Azure Functions. Melhora o desempenho reduzindo o tempo e os recursos necessários para a execução de cada função.
Habilite o dimensionamento automático para ajustar automaticamente a capacidade com base na demanda. Configurar o dimensionamento automático. Garante que seus aplicativos funcionais possam lidar com cargas variadas sem intervenção manual, mantendo o desempenho sob pressão.

Políticas do Azure

O Azure fornece um conjunto abrangente de políticas internas para auditar e impor configurações para o Azure Functions e suas dependências. Você pode usar a Política do Azure para garantir que seus aplicativos de função sigam os padrões organizacionais de segurança, otimização de custos e desempenho.

Por exemplo, você pode impor políticas que exigem:

  • Identidades gerenciadas a serem habilitadas para todos os aplicativos de função.
  • Devem usar apenas endpoints privados para segurança da rede nas aplicações de função.
  • Log de diagnóstico a ser habilitado para todos os aplicativos de função.

Analise as definições incorporadas da Política do Azure para encontrar políticas que se alinham com os seus requisitos organizacionais.

Recomendações do Azure Advisor

O Azure Advisor é um consultor de nuvem personalizado que ajuda você a seguir as práticas recomendadas para otimizar suas implantações do Azure. As recomendações dos conselheiros estão alinhadas com os pilares da Estrutura Well-Architected.

Para obter mais informações, consulte as recomendações em Azure Advisor.

Próximos passos

Considere os seguintes recursos para explorar melhor as recomendações destacadas neste documento: