Integração empresarial básica no Azure

Microsoft Entra ID
API Management do Azure
Azure DNS
Azure Logic Apps
Azure Monitor

Esta arquitetura de referência utiliza os Serviços de Integração do Azure para orquestrar chamadas para sistemas empresariais de back-end. Os sistemas de back-end podem incluir sistemas de software como serviço (SaaS), serviços Azure ou serviços web existentes na sua empresa. O Integration Services abrange vários componentes, incluindo Azure Logic Apps, Azure API Management, Azure Service Bus, Azure Event Grid, Azure Functions, e Azure Data Factory. Esta arquitetura básica utiliza apenas Logic Apps e Gestão de APIs.

Arquitetura

Diagrama de arquitetura que mostra uma integração empresarial simples.

Descarregue um ficheiro Visio desta arquitetura.

Fluxo de dados

O seguinte fluxo de dados corresponde ao diagrama anterior:

  1. A aplicação é um cliente que chama o gateway da API depois de este se autenticar com o Microsoft Entra ID. A aplicação pode ser uma aplicação web, uma aplicação móvel ou qualquer outro cliente que faça pedidos HTTP.

  2. O Microsoft Entra ID autentica a aplicação cliente. A aplicação cliente obtém um token de acesso do Microsoft Entra ID e inclui-o no pedido para o gateway da API.

  3. O Gerenciamento de API consiste em dois componentes relacionados:

    • O gateway API aceita chamadas HTTP da aplicação cliente, valida o token da Microsoft Entra ID e encaminha o pedido para o serviço de back-end. O gateway de API também pode transformar pedidos e respostas, e fazer cache de respostas.

    • Os programadores usam o portal para programadores para descobrir e interagir com as APIs. Pode personalizar o portal do programador para corresponder à imagem da sua organização.

  4. As aplicações de lógica orquestram as chamadas para os serviços de back-end. Vários eventos podem ativar aplicações lógicas, e aplicações lógicas podem chamar vários serviços. Nesta arquitetura, o Logic Apps chama os serviços de back-end e fornece conectividade através de conectores, o que reduz a necessidade de código personalizado.

  5. Os serviços de back-end podem ser qualquer serviço ou aplicação de linha de negócio (LOB), como uma base de dados, serviço web ou aplicação SaaS. Podem ser alojadas no Azure ou nas instalações.

Componentes

  • O Integration Services é uma coleção de serviços que você pode usar para integrar aplicativos, dados e processos. Esta solução utiliza dois destes serviços:

    • O Logic Apps é uma plataforma sem servidor para criar fluxos de trabalho corporativos que integram aplicativos, dados e serviços. Nesta arquitetura, as Aplicações Lógicas facilitam a integração baseada em mensagens entre sistemas, orquestram as chamadas para os serviços de back-end e fornecem conectividade através de conectores. Esta abordagem reduz a necessidade de código personalizado.

    • O Gerenciamento de API é um serviço gerenciado para publicação de catálogos de APIs HTTP. Pode usá-lo para promover a reutilização e a descoberta das suas APIs e implementar um gateway de API para proxy pedidos de API. A Gestão de APIs também oferece um portal para programadores onde os clientes descobrem e interajam com as APIs. Nesta arquitetura, a Gestão de APIs fornece uma fachada para os serviços de back-end que proporciona aos clientes uma interface consistente. Também oferece capacidades como limitação de taxa, autenticação e cache para os serviços de back-end.

  • Azure DNS é um serviço de alojamento para domínios do Sistema de Nomes de Domínio (DNS). Nesta arquitetura, o Azure DNS hospeda os registos DNS públicos do serviço de Gestão de APIs. Com o alojamento DNS, os clientes resolvem o nome DNS para o endereço IP do serviço de Gestão de APIs.

  • Microsoft Entra ID é um serviço de gestão de identidades e acessos baseado na cloud. Os colaboradores empresariais podem usar o Microsoft Entra ID para aceder a recursos externos e internos. Nesta arquitetura, Microsoft Entra ID protege o serviço de Gestão de APIs usando OAuth 2.0 e o portal de programadores usando Microsoft Entra External ID.

  • Azure Key Vault é um serviço cloud para armazenar e gerir segredos de forma segura, chaves de encriptação e certificados. Nesta arquitetura, o Key Vault fornece armazenamento secreto centralizado para Aplicações Lógicas e Gestão de APIs.

Detalhes do cenário

O Integration Services é uma coleção de serviços que você pode usar para integrar aplicativos, dados e processos para sua empresa. Esta arquitetura utiliza Logic Apps para orquestrar fluxos de trabalho e Gestão de APIs para criar catálogos de APIs.

Nesta arquitetura, constróis APIs compostas importando aplicações lógicas como APIs. Também pode importar serviços web existentes importando especificações OpenAPI (Swagger) ou importando APIs SOAP a partir de especificações Web Services Description Language (WSDL).

O gateway API ajuda a desacoplar os clientes front-end do back-end. Por exemplo, pode reescrever URLs ou transformar pedidos antes de chegarem ao backend. Também trata de questões transversais como autenticação, suporte a partilha de recursos de origem cruzada (CORS) e cache de respostas.

Potenciais casos de utilização

Esta arquitetura é suficiente para cenários básicos de integração em que chamadas síncronas para serviços de back-end desencadeiam o fluxo de trabalho. Uma arquitetura mais avançada, que utiliza filas e eventos , baseia-se nesta arquitetura básica. Para maior fiabilidade e escalabilidade, utilize filas de mensagens e eventos para desacoplar sistemas back-end.

Recomendações

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

API Management

A Gestão de APIs tem oito níveis. Estes níveis fornecem um acordo de nível de serviço de produção (SLA) e suportam escalonamento dentro da região do Azure.

Não recomendamos o nível de Gestão de Consumo de API para esta solução. Não suporta o portal de programadores nem a integração com Microsoft Entra, que esta arquitetura exige.

O nível de Desenvolvedor é especificamente para ambientes não de produção e não é recomendado para cargas de trabalho em produção.

A Gestão de APIs mede a capacidade de rendimento em unidades. Cada escalão de preços tem uma escala máxima. O nível Premium suporta escalabilidade em múltiplas regiões do Azure. Escolha sua camada com base no conjunto de recursos e no nível de taxa de transferência necessária. Para obter mais informações, consulte os seguintes artigos:

Cada instância de Gestão de API tem um nome de domínio predefinido, que é um subdomínio de azure-api.net, tal como contoso.azure-api.net. Considere configurar um domínio personalizado para sua organização.

Logic Apps

O Logic Apps funciona melhor em cenários que não exigem baixa latência para uma resposta, como chamadas assíncronas ou de API com tempos de execução moderados. Se for necessária baixa latência, como numa chamada que bloqueia uma interface, use uma tecnologia diferente. Por exemplo, use Functions ou uma API web implementada no Azure App Service. Use o Gerenciamento de API para direcionar a API para seus consumidores de API.

Região

Para minimizar a latência da rede, coloque o Gerenciamento de API e os Aplicativos Lógicos na mesma região. Em geral, escolha a região mais próxima dos seus utilizadores ou dos seus serviços de back-end.

Considerações

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

Fiabilidade

A confiabilidade ajuda a garantir que seu aplicativo possa cumprir os compromissos que você assume com seus clientes. Para obter mais informações, consulte Lista de verificação de revisão de design para Confiabilidade.

Revise os SLAs de cada serviço.

Se implementar o nível Premium da Gestão de APIs em duas ou mais regiões, a Gestão de APIs é elegível para um SLA mais elevado. Para obter mais informações, consulte Preços do Gerenciamento de API.

Cópias de Segurança

Faça backup regular da sua configuração de Gestão de APIs. A funcionalidade de backup e restauro incorporada está disponível apenas nos níveis clássico Developer, Basic, Standard e Premium. Os níveis Consumo e v2 não suportam isso. Para implementações v2, adote uma abordagem de infraestrutura como código (IaC) para garantir a recuperabilidade. Guarde os seus ficheiros de backup numa localização ou região do Azure que seja diferente da região onde implementa o serviço. Com base no seu objetivo de tempo de recuperação (RTO), escolha uma estratégia de recuperação de desastres (DR):

  • Num evento de DR, provisione uma nova instância de Gestão de API, restaure o backup para a nova instância e reaponte os registos DNS.

  • Mantém uma instância passiva do serviço de Gestão de API noutra região do Azure. Restaura regularmente backups nessa instância para a manter sincronizada com o serviço ativo. Para restaurar o serviço durante um evento DR, só precisa de reapontar os registos DNS. Esta abordagem implica custos adicionais porque se paga pela instância passiva, mas reduz o tempo de recuperação.

Para Logic Apps, recomendamos uma abordagem de configuração como código (CAC) para backup e restauro. As aplicações Logic são serverless, por isso podes criá-las rapidamente a partir de templates IaC. Guarde os modelos no controlo de versões e integre-os com o seu processo de integração contínua e implementação contínua (CI/CD). Num evento DR, implemente o template para uma nova região.

Se você implantar um aplicativo lógico em uma região diferente, atualize a configuração no Gerenciamento de API. Pode atualizar a propriedade da Backend API usando um script PowerShell.

Segurança

A segurança fornece garantias contra ataques deliberados e o uso indevido de seus valiosos dados e sistemas. Para obter mais informações, consulte Lista de verificação para revisão de design de segurança.

Esta lista não cobre todas as melhores práticas de segurança. As seguintes considerações de segurança aplicam-se a esta arquitetura:

  • Restringa o acesso aos endpoints do Logic Apps apenas ao endereço IP da API Management. Nos níveis clássicos (não v2), a API Management tem um endereço IP público fixo. Se usares um nível v2, não é fornecido um endereço IP estático. Nesse caso, considere abordagens alternativas como um domínio personalizado com Azure DNS para restrições de acesso baseadas em endereços IP. Para obter mais informações, consulte Restringir endereços IP de entrada.

  • Use o controlo de acesso baseado em funções do Azure (Azure RBAC) para garantir que os utilizadores têm níveis de acesso adequados.

  • Proteja os endpoints públicos de API na Gestão de APIs utilizando OAuth ou OpenID Connect (OIDC). Para proteger os endpoints públicos da API, configure um fornecedor de identidade e adicione uma política de validação JSON Web Token (JWT). Para mais informações, consulte Proteja uma API usando OAuth 2.0 com Microsoft Entra ID e API Management.

  • Conecte-se a serviços de back-end do Gerenciamento de API usando certificados mútuos.

  • Imponha HTTPS nas APIs de gerenciamento de API.

Segredos da loja

Nunca selecione palavras-passe, chaves de acesso ou cadeias de ligação no controlo de origem. Se esses valores forem necessários, proteja-os e implante-os usando as técnicas apropriadas.

Se uma aplicação lógica funciona com dados sensíveis, consulte Acesso seguro e dados para fluxos de trabalho nas aplicações lógicas.

O Gerenciamento de API gerencia segredos usando objetos chamados valores nomeados ou propriedades. Esses objetos armazenam com segurança valores que você pode acessar por meio de políticas de Gerenciamento de API. Para mais informações, consulte Usar valores nomeados nas políticas de Gestão da API.

Use o Key Vault para armazenar e gerir centralmente palavras-passe, chaves API, strings de ligação e certificados. O Key Vault oferece um armazenamento de segredos reforçado e encriptado com controlo de acesso e registo de auditoria detalhados. As Logic Apps podem recuperar segredos do Key Vault usando identidades geridas ou o conector Key Vault incorporado, e os valores nomeados na API Management suportam referências diretas aos segredos do Key Vault. Esta abordagem mantém configurações sensíveis fora do código da aplicação e dos modelos de implementação. Para mais informações, consulte a orientação do Well-Architected Framework para proteger segredos de aplicações.

Otimização de Custos

A Otimização de Custos concentra-se em formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Lista de verificação de revisão de projeto para Otimização de custos.

Use a calculadora de preços Azure para estimar custos.

API Management

O Azure cobra por todas as instâncias de Gestão de API enquanto estão em execução. Se aumentares a escala e não precisares desse nível de desempenho o tempo todo, reduz manualmente ou configura o autoescalonamento.

Logic Apps

O plano Logic Apps Consumption utiliza um modelo de faturação sem servidor para calcular o custo com base nas execuções de ações e conectores. Se usar o Logic Apps Standard (inquilino único), o plano de alojamento determina os custos. Para obter mais informações, veja os preços do Logic Apps.

Excelência Operacional

A Excelência Operacional abrange os processos operacionais que implantam um aplicativo e o mantêm em execução na produção. Para obter mais informações, consulte Lista de verificação de revisão de projeto para o Operational Excellence.

DevOps

Crie grupos de recursos separados para ambientes de produção e desenvolvimento/teste. A utilização de grupos de recursos separados torna mais fácil gerir as implementações, eliminar as implementações de teste e atribuir direitos de acesso.

Ao atribuir recursos a grupos de recursos, considere estes fatores:

  • Ciclo de vida: Em geral, coloca recursos que têm o mesmo ciclo de vida no mesmo grupo de recursos.

  • Access: Para aplicar políticas de acesso aos recursos de um grupo, pode usar Azure RBAC.

  • Faturamento: Pode ver os custos acumulados do grupo de recursos.

  • Escalão de preços para a Gestão de APIs: Usa o nível de Desenvolvedor para ambientes de desenvolvimento/teste. Para minimizar custos durante a pré-produção, implemente uma réplica do seu ambiente de produção, execute os seus testes e desligue a réplica.

Implementação

Use os modelos ARM para implementar os recursos Azure e seguir o processo IaC. Os templates facilitam a automatização de implementações utilizando serviços Azure DevOps ou outras soluções CI/CD.

Processo de teste

Considere organizar as suas cargas de trabalho, o que significa que implementa os diferentes estágios e executa validações em cada estágio antes de continuar para o próximo. Se usar esta abordagem, pode enviar atualizações para os seus ambientes de produção de forma altamente controlada e minimizar problemas de implementação inesperados. Utilize blue-green deployments ou canary releases para atualizar ambientes de produção em tempo real. Considere uma boa estratégia de rollback para quando uma implementação falhar. Por exemplo, você pode reimplantar automaticamente uma implantação anterior bem-sucedida a partir do seu histórico de implantação. O parâmetro de flag --rollback-on-error no comando az deployment group create Azure CLI pode automaticamente redistribuir uma implementação anterior bem-sucedida do seu histórico de implementação se a implementação atual falhar.

Isolamento de cargas de trabalho

Coloque a Gestão de APIs e quaisquer aplicações lógicas individuais nos seus próprios modelos IaC. Com modelos separados, podes armazenar os recursos em sistemas de controlo de versão. Você pode implantar os modelos juntos ou individualmente como parte de um processo de CI/CD.

Versões

Cada vez que alteras a configuração de uma app lógica ou implementas uma atualização através de um template ARM, o Azure mantém uma cópia dessa versão e de todas as versões que têm histórico de execução. Você pode usar essas versões para controlar alterações históricas ou promover uma versão como a configuração atual do aplicativo lógico. Por exemplo, você pode reverter um aplicativo lógico para uma versão anterior.

O Gerenciamento de API suporta dois conceitos de controle de versão distintos, mas complementares:

  • Com as versões, os consumidores da API podem escolher uma versão da API com base nas suas necessidades, como v1, v2, pré-visualização ou produção.

  • Com as revisões, os administradores da API podem fazer alterações ininterruptas numa API e implementar essas alterações, juntamente com um changelog para informar os consumidores da API.

Pode fazer uma revisão num ambiente de desenvolvimento e implementar essa alteração noutros ambientes usando templates ARM. Para obter mais informações, consulte Publicar várias versões da API.

Também pode usar revisões para testar uma API antes de tornar as alterações atuais e disponíveis para os utilizadores. Não recomendamos este método para testes de carga ou de integração. Em vez disso, use ambientes de teste ou pré-produção separados.

Diagnóstico e monitorização

Use Azure Monitor para monitorizar operações na Gestão de APIs e nas Aplicações Lógicas. O Azure Monitor fornece informações baseadas nas métricas que configura para cada serviço e está ativado por defeito. Para obter mais informações, consulte os seguintes artigos:

Cada serviço também tem estas opções:

  • Para análises e dashboards mais profundas, envie os logs do Logic Apps para Log Analytics.

  • Para monitorização DevOps, configure o Azure Application Insights para a gestão de APIs.

  • A Gestão de APIs suporta o modelo de solução Power BI para análises personalizadas de API. Pode usar este modelo de solução para criar a sua própria solução analítica. O Power BI disponibiliza relatórios para utilizadores empresariais.

Eficiência de desempenho

A Eficiência de Desempenho refere-se à capacidade da sua carga de trabalho de escalar para atender às demandas dos usuários de forma eficiente. Para obter mais informações, consulte Lista de verificação de revisão de design para Eficiência de desempenho.

Para aumentar a escalabilidade do Gerenciamento de API, adicione políticas de cache quando apropriado. O cache também ajuda a reduzir a carga nos serviços back-end.

Para proporcionar maior capacidade, pode escalar as camadas API Management Basic, Standard e Premium numa região Azure. Para analisar o uso do seu serviço, selecione Métrica de capacidade no menu Métricas e, em seguida, aumente ou diminua a escala conforme apropriado. O processo de atualização ou escala pode demorar entre 15 a 45 minutos a ser aplicado.

Recomendações para dimensionar um serviço de Gerenciamento de API:

  • Considere os padrões de tráfego quando escalar. Os clientes com padrões de tráfego mais voláteis precisam de mais capacidade.

  • Uma capacidade consistente superior a 66% pode indicar a necessidade de aumentar a escala.

  • Capacidade consistente inferior a 20% pode indicar uma oportunidade para reduzir.

  • Antes de ativar a carga em produção, teste sempre o seu serviço de Gestão de API com uma carga representativa.

Com o nível Premium, pode escalar uma instância de Gestão de API em várias regiões do Azure. Esta configuração torna a Gestão de API elegível para um SLA superior. Também pode disponibilizar serviços perto de utilizadores em várias regiões.

O modelo serverless das Logic Apps elimina a necessidade de os administradores planearem a escalabilidade do serviço. O serviço escala automaticamente para responder à procura.

Contribuidores

A Microsoft mantém este artigo. Os seguintes colaboradores escreveram este artigo.

Autor principal:

  • Karl Rissland | Engenheiro de Soluções, Azure AI e Aplicações

Outros contribuidores:

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

Próximos passos