Integração empresarial básica no Azure

Microsoft Entra ID
Gerenciamento de API do Azure
DNS do Azure
Aplicativos Lógicos do Azure
Azure Monitor

Essa arquitetura de referência usa os Azure Integration Services para orquestrar chamadas para sistemas de back-end empresariais. Os sistemas de back-end podem incluir sistemas SaaS (software como serviço), serviços do Azure e serviços da Web existentes em sua empresa.

Arquitetura

Diagrama de arquitetura que mostra a integração empresarial simples

Baixe um Arquivo Visio dessa arquitetura.

Workflow

  • Sistemas de back-end. No lado direito do diagrama estão os vários sistemas de back-end que a empresa implantou ou dos quais ela depende. Esses sistemas podem incluir sistemas de SaaS, outros serviços do Azure ou serviços da Web que expõem pontos de extremidade REST ou SOAP.

  • Aplicativos Lógicos do Azure. Nessa arquitetura, aplicativos lógicos são acionados por solicitações HTTP. Você também pode aninhar fluxos de trabalho para uma orquestração mais complexa. Os Aplicativos Lógicos usam conectores para integração com serviços usados normalmente. Os Aplicativos Lógicos oferecem centenas de conectores, e você também pode criar conectores personalizados.

  • Gerenciamento de API do Azure. O Gerenciamento de API é formado por dois componentes relacionados:

    • Gateway de API. O gateway de API aceita chamadas HTTP e as encaminha para o back-end.

    • Portal do desenvolvedor. Cada instância do Gerenciamento de API do Azure fornece acesso a um portal do desenvolvedor. Esse portal dá aos seus desenvolvedores acesso à documentação e a exemplos de códigos para chamar as APIs. Também é possível testar as APIs no portal do desenvolvedor.

  • DNS do Azure. O DNS do Azure fornece resolução de nomes usando a infraestrutura do Azure. Ao hospedar seus domínios no Microsoft Azure, você pode gerenciar seus registros DNS usando as mesmas credenciais, APIs, ferramentas e cobrança que seus outros serviços do Azure. Para usar um nome de domínio personalizado, como contoso.com, crie registros DNS que mapeiem o nome de domínio personalizado para o endereço IP. Para saber mais, confira Configurar um nome de domínio personalizado no Gerenciamento de API.

  • Microsoft Entra ID. Use o Microsoft Entra ID para autenticar clientes que chamam o gateway de API. O Microsoft Entra ID dá suporte ao protocolo OpenID Connect (OIDC). Os clientes obtêm um token de acesso do Microsoft Entra ID e o Gateway de API valida o token para autorizar a solicitação. Se você usar a camada Standard ou Premium do Gerenciamento de API, o Microsoft Entra ID também poderá ajudar a proteger o acesso ao portal do desenvolvedor.

Componentes

  • Os Serviços de integração é uma coleção de serviços que você pode usar para integrar aplicativos, dados e processos.
  • Os Aplicativos Lógicos são uma plataforma sem servidor para compilar fluxos de trabalho corporativos que integram aplicativos, dados e serviços.
  • O Gerenciamento de API é um serviço gerenciado para publicar catálogos de APIs HTTP. Você pode usá-lo para promover a reutilização e a descoberta de suas APIs e implantar um gateway de API para solicitações de API de proxy.
  • O DNS do Azure é um serviço de hospedagem para domínios DNS.
  • Microsoft Entra ID é um serviço de gerenciamento de identidade e acesso baseado em nuvem. Os funcionários da empresa podem usar Microsoft Entra ID para acessar recursos externos e internos.

Detalhes do cenário

Os Serviços de integração é uma coleção de serviços que você pode usar para integrar aplicativos, dados e processos para sua empresa. Essa arquitetura usa dois desses serviços: Aplicativos Lógicos para orquestrar fluxos de trabalho, e Gerenciamento de API para criar catálogos de APIs.

Nessa arquitetura, as APIs de composição são compiladas pela importação de aplicativos lógicos como APIs. Você também pode importar os serviços Web existentes importando especificações da OpenAPI (Swagger) ou importando APIs do SOAP a partir das especificações de WSDL.

O gateway de API ajuda a separar clientes front-end do back-end. Por exemplo, ele pode reescrever URLs ou transformar as solicitações antes que elas atinjam o back-end. Ele também lida com muitas questões transversais, como autenticação, suporte a CORS (compartilhamento de recurso entre origens) e armazenamento em cache da resposta.

Possíveis casos de uso

Essa arquitetura é suficiente para cenários de integração básica em que o fluxo de trabalho é disparado por chamadas síncronas para serviços de back-end. Uma arquitetura mais sofisticada que usa filas e eventos aproveita essa arquitetura básica.

Recomendações

Seus requisitos específicos podem ser diferentes da arquitetura genérica exibida aqui. Use as recomendações nesta seção como um ponto inicial.

Gerenciamento da API

Use as camadas de gerenciamento de API básica, Standard ou Premium. Essas camadas oferecem um SLA (Contrato de Nível de Serviço) de produção e são compatíveis com escala horizontal dentro da região do Azure. A capacidade de taxa de transferência para o Gerenciamento de API é medida em unidades. Cada tipo de preço tem uma expansão máxima. A camada Premium também dá suporte à expansão em várias regiões do Azure. Escolha sua camada com base no conjunto de recursos e o nível de taxa de transferência necessário. Para saber mais, confira Preços do Gerenciamento de API e Capacidade de uma instância de Gerenciamento de API do Azure.

Cada instância de Gerenciamento de API do Azure tem um nome de domínio padrão, que é um subdomínio do azure-api.net, por exemplo, contoso.azure-api.net. Considere a configuração de um domínio personalizado para a sua organização.

Aplicativos Lógicos

Os Aplicativos Lógicos funcionam melhor em cenários que não exigem baixa latência para uma resposta, por exemplo, chamadas à API de execução semi-longa ou assíncronas. Se for necessário ter baixa latência, por exemplo, em uma chamada que bloqueia uma interface do usuário, use uma tecnologia diferente. Por exemplo, use o Azure Functions ou uma API Web implantada no Serviço de Aplicativo do Azure. Use o Gerenciamento de API para administrar a API para seus consumidores de API.

Region

Para minimizar a latência de 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 usuários (ou mais próxima de seus serviços de back-end).

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework​, um conjunto de princípios orientadores que você pode usar para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, confira Microsoft Azure Well-Architected Framework.

Confiabilidade

A confiabilidade garante que seu aplicativo possa cumprir os compromissos que você deve assumir com seus clientes. Para obter mais informações, confira Visão geral do pilar de confiabilidade.

Examine o SLA para cada serviço:

Se você implantar o Gerenciamento de API em duas ou mais regiões com o tipo Premium, ele se tornará qualificado para um SLA mais alto. Confira Preços de Gerenciamento de API

Backups

Faça backups regularmente da configuração do seu Gerenciamento de API. Armazene seus arquivos de backup em um local ou região do Azure diferente da região onde o serviço está implantado. Com base em seu RTO, escolha uma estratégia de recuperação de desastres:

  • No caso de um evento de recuperação de desastre, provisione uma nova instância de Gerenciamento de API, restaure o backup para a nova instância e reordene os registros de DNS.

  • Mantenha uma instância passiva do serviço de Gerenciamento de API em outra região do Azure. Restaure regularmente backups nessa instância, para mantê-la em sincronia com o serviço ativo. Para restaurar o serviço durante um evento de recuperação de desastre, será preciso apenas reordenar os registros DNS. Essa abordagem incorre em custos adicionais, pois paga pela instância passiva, mas reduz o tempo de recuperação.

Para aplicativos lógicos, recomendamos uma abordagem de configuração como código para fazer backup e restauração. Como os aplicativos lógicos são sem servidor, você pode recriá-los rapidamente em modelos do Azure Resource Manager. Salve os modelos no controle do código-fonte, integre os modelos ao seu processo de CI/CD (integração/implantação contínua). No caso de um evento de recuperação de desastres, implante o modelo em uma nova região.

Se você implantar um aplicativo lógico em uma região diferente, atualize a configuração no Gerenciamento de API. É possível atualizar a propriedade de Back-end da API usando um script básico do PowerShell.

Segurança

A segurança fornece garantias contra ataques deliberados e o abuso de seus dados e sistemas valiosos. Para saber mais, confira Visão geral do pilar de segurança.

Embora essa lista não descreva completamente todas as práticas recomendadas de segurança, vejas essas considerações de segurança que se aplicam especificamente a esta arquitetura:

  • O serviço de Gerenciamento de API do Azure tem um endereço IP público fixo. Restrinja o acesso para chamar pontos de extremidade de Aplicativos Lógicos apenas para o endereço IP do Gerenciamento de API. Para saber mais, confira Restringir endereços IP de entrada.

  • Para garantir que os usuários tenham níveis de acesso apropriados, use o RBAC (controle de acesso baseado em função) do Azure.

  • Proteja os pontos de extremidade de API públicos no Gerenciamento de API usando OAuth ou OpenID Connect. Para proteger os pontos de extremidade de API públicos, configure um provedor de identidade e adicione uma política de validação de JWT (JSON Web Token). Para saber mais, consulte Proteger uma API usando OAuth 2.0 com o Microsoft Entra ID e o Gerenciamento de API.

  • Conectar os serviços back-end do Gerenciamento de API usando certificados mútuos

  • Impor HTTPS sobre as APIs de Gerenciamento de API.

Armazenar segredos

Nunca verifique senhas, chaves de acesso ou cadeias de conexão no controle do código-fonte. Se tais valores forem necessários, proteja e implante-os usando as técnicas apropriadas.

Se um aplicativo lógico exigir qualquer valor confidencial que não é possível ser criado dentro de um conector, armazene tais valores no Azure Key Vault e faça referência a eles em um modelo do Resource Manager. Use os parâmetros de modelo de implantação e arquivos de parâmetros para cada ambiente. Para saber mais, confira Proteger parâmetros e entradas em um fluxo de trabalho.

O Gerenciamento de API administra os segredos usando objetos chamados valores ou propriedades nomeadas. Esses objetos armazenam com segurança valores que podem ser acessados por meio das políticas de Gerenciamento de API. Para saber mais, confira Como usar valores nomeados nas políticas de Gerenciamento de API do Azure.

Excelência operacional

A excelência operacional abrange os processos de operações que implantam um aplicativo e o mantêm em execução na produção. Para obter mais informações, confira Visão geral do pilar de excelência operacional.

DevOps

Crie grupos de recursos separados para ambientes de produção, desenvolvimento e teste. Ter grupos de recursos separados facilita o gerenciamento de implantações, a exclusão de implantações de teste a atribuição de direitos de acesso.

Ao atribuir recursos a grupos de recursos, considere os seguintes fatores:

  • Ciclo de vida. Em geral, coloque recursos com o mesmo ciclo de vida no mesmo grupo de recursos.

  • Acesso. Para aplicar políticas de acesso aos recursos em um grupo, use o RBAC (controle de acesso baseado em função) do Azure.

  • Cobrança. Você pode exibir os custos acumulados para o grupo de recursos.

  • Tipo de preço para o gerenciamento de API. Use o tipo Desenvolvedor para ambientes de desenvolvimento e teste. Para minimizar os custos durante a pré-produção, implante uma réplica do seu ambiente de produção, execute os testes e desligue.

Implantação

Use modelos do Azure Resource Manager para implantar os recursos do Azure. Siga o processo de IaC (Infraestrutura como Código). Os modelos facilitam a automatização de implantações usando o Azure DevOps Services ou outras soluções de CI/CD.

Staging

Considere a preparação de cargas de trabalho. Isso significa executar uma implantação em vários estágios, depois executar validações em cada estágio antes de avançar para o próximo. Se você usar essa abordagem, é possível efetuar push de atualizações para ambientes de produção de maneira altamente controlada, além de minimizar problemas de implantação inesperados. A implantação azul-verde e as versões Canary são estratégias de implantação recomendadas para atualizar ambientes de produção dinâmicos. Considere também ter uma boa estratégia de reversão para quando uma implantação falhar. Por exemplo, você poderia reimplantar automaticamente uma implantação anterior bem-sucedida com base em seu histórico de implantações. O parâmetro do sinalizador --rollback-on-error na CLI do Azure é um bom exemplo.

Isolamento de carga de trabalho

Coloque o Gerenciamento de API e os aplicativos lógicos individuais em seus próprios modelos do Resource Manager separados. Usando modelos separados, é possível armazenar os recursos em sistemas de controle do código-fonte. Você pode implantar os modelos juntos ou individualmente como parte de um processo de CI/CD.

Versões

Sempre que você fizer uma alteração na configuração do aplicativo lógico ou implantar uma atualização por meio do modelo do Resource Manager, o Azure manterá uma cópia dessa versão, e todas as versões que tiverem uma execução de histórico serão mantidas. Você pode usar essas versões para controlar as 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 oferece suporte a dois conceitos de controle de versão distintos, mas complementares:

  • Versões permitem que os consumidores escolham uma versão de API com base nas necessidades, por exemplo, v1, v2, beta ou produção.

  • Revisões permitem que os administradores de API façam alterações sem interrupções em uma API e implantem essas alterações, juntamente com um log de alterações para informar aos consumidores da API sobre as alterações.

É possível fazer uma revisão em um ambiente de desenvolvimento e implantar essa alteração em outros ambientes usando os modelos do Resource Manager. Para saber mais, confira Publicar várias versões de sua API

Você também pode usar as revisões para testar uma API antes de tornar as alterações atuais e acessíveis aos usuários. No entanto, esse método não é recomendado para teste de carga ou teste de integração. Use ambientes de pré-produção ou teste separados.

Diagnóstico e monitoramento

Use o Azure Monitor para monitoramento operacional tanto no Gerenciamento de API quanto nos Aplicativos Lógicos. O Azure Monitor fornece informações com base nas métricas que configuradas para cada serviço e é habilitado por padrão. Para saber mais, veja:

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

  • Para análise e painéis mais aprofundados, envie os logs dos Aplicativos Lógicos para o Azure Log Analytics.

  • Para monitoramento de DevOps, configure o Azure Application Insights para Gerenciamento de API.

  • O Gerenciamento de API é compatível com o modelo de solução do Power BI para análise de APIs personalizadas. Use esse modelo de solução para criar sua própria solução de análise. Para usuários empresariais, o Power BI disponibiliza relatórios.

Eficiência de desempenho

A eficiência do desempenho é a capacidade de dimensionar sua carga de trabalho para atender às demandas colocadas por usuários de maneira eficiente. Para obter mais informações, consulte Visão geral do pilar de eficiência de desempenho.

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

Para oferecer maior capacidade, escale horizontalmente as camadas Básica, Standard e Premium do Gerenciamento de API em uma região do Azure. Para analisar o uso para seu serviço, selecione Métrica de capacidade, no menu Métricas e aumente ou reduza, conforme apropriado. O processo de atualização ou escala pode levar de 15 a 45 minutos para ser aplicado.

Recomendações para colocação em escala de um serviço de Gerenciamento de API:

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

  • Capacidade consistente acima de 66% pode indicar a necessidade de expansão.

  • Capacidade consistente abaixo de 20% pode indicar uma oportunidade para reduzir verticalmente.

  • Antes de habilitar a carga em produção, sempre realize teste de carga no seu serviço do Gerenciamento de API com uma carga representativa.

Com o tipo Premium, você pode dimensionar uma instância do Gerenciamento de API em várias regiões do Azure. Isso qualifica o Gerenciamento de API para um SLA mais alto e permite que você provisione serviços próximos aos usuários em várias regiões.

Em modelos sem servidor dos Aplicativos Lógicos, os administradores não precisam planejar a escalabilidade do serviço. O serviço é dimensionado automaticamente para atender à demanda.

Otimização de custo

Em geral, use a calculadora de preços do Azure para estimar os custos. Confira outras considerações.

Gerenciamento de API

Você será cobrado por todas as instâncias de Gerenciamento de API quando estiverem em execução. Se você tiver escalado verticalmente e não precisar desse nível de desempenho o tempo todo, reduza verticalmente de forma manual ou configure o dimensionamento automático.

Aplicativos Lógicos

Os Aplicativos lógicos usam um modelo sem servidor. A cobrança é calculada com base na ação e execução do conector. Para obter mais informações, consulte Preços de Aplicativos Lógicos.

Para obter mais informações, confira a seção de custo em Estrutura Bem Projetada do Microsoft Azure.

Próximas etapas

Para obter mais confiabilidade e escalabilidade, use filas de mensagens e eventos para separar os sistemas de back-end. Essa arquitetura é exibida no próximo artigo desta série:

Você também pode se interessar nestes artigos do Centro de Arquitetura do Azure: