Editar

Compartilhar via


Automatizar implantações de API com APIOps

Gerenciamento de API do Azure
Azure DevOps
Azure Pipelines

A APIOps é uma metodologia que aplica os conceitos do GitOps e do DevOps à implantação da API. Assim como o DevOps, a APIOps ajuda os membros da equipe a fazerem alterações facilmente e implantá-las de maneira iterativa e automatizada. Essa arquitetura demonstra como é possível melhorar todo o ciclo de vida e a qualidade da API usando a APIOps.

Arquitetura

Diagrama da arquitetura para implantações de API automatizadas usando APIOps no Azure.

Baixe um Arquivo Visio dessa arquitetura.

Workflow

  1. Os operadores de API executam o pipeline do extrator para sincronizar o repositório Git com a instância de Gerenciamento de API e preencher o repositório Git com objetos de Gerenciamento de API no formato necessário.

  2. Caso uma alteração de API seja detectada na instância de Gerenciamento de API, uma PR (solicitação de pull) será criada para que os operadores revisem. Os operadores mesclam as alterações no repositório Git.

  3. Os desenvolvedores de API clonam o repositório Git, criam um branch e as definições de API usando a especificação do OpenAPI ou as ferramentas de sua escolha.

  4. Caso um desenvolvedor envie alterações por push para o repositório, uma PR será criada para revisão.

  5. A PR pode ser aprovada ou revisada automaticamente, dependendo do nível de controle necessário.

  6. Depois que as alterações são aprovadas e mescladas, o pipeline de publicação implanta as alterações mais recentes na instância de Gerenciamento de API.

  7. Os operadores de API criam e modificam políticas, diagnósticos, produtos e outros objetos relevantes do Gerenciamento de API e confirmam as alterações.

  8. As alterações são revisadas e mescladas após a aprovação.

  9. Depois de integrar as alterações, o pipeline de publicação implanta as alterações com o processo de definições de API.

Componentes

  • O Gerenciamento de API do Azure cria gateways de API consistentes e modernos para serviços de back-end. Além de rotear chamadas de API para back-ends, essa plataforma também verifica credenciais, impõe cotas de uso e registra metadados.

  • O Azure DevOps é um serviço para gerenciar o ciclo de vida de desenvolvimento de ponta a ponta, incluindo o planejamento e gerenciamento de projeto, o gerenciamento de código, bem como a compilação e o lançamento.

  • O Azure Pipelines permite a CI (integração contínua) e a CD (entrega contínua) para testar e compilar seu código e enviá-lo para qualquer destino.

  • O Azure Repos é um conjunto de ferramentas de controle de versão, incluindo o Git padrão, que você poderá usar para gerenciar seu código.

Alternativas

Essa solução usa o Azure Repos para fornecer funcionalidade do Git e o Azure Pipelines fornece os pipelines. É possível usar qualquer tecnologia similar.

Detalhes do cenário

A APIOps usa o controle de versão para gerenciar as APIs e criar uma trilha de auditoria de alterações em APIs, políticas e operações.

Os desenvolvedores de API que usam uma metodologia de APIOps revisam e auditam as APIs mais cedo e com maior frequência, capturando e resolvendo desvios de padrões de API com mais rapidez para melhorar as especificações e a qualidade da API. Quanto mais APIs você criar e implantar com uma abordagem da APIOps, maior será a consistência entre as APIs.

Essa arquitetura APIOps usa o Gerenciamento de API do Azure como a plataforma de gerenciamento de API. O Azure DevOps organiza o gerenciamento de API. O Azure Repos fornece funcionalidade do Git e o Azure Pipelines cria o pipeline de CI/CD.

Possíveis casos de uso

  • Qualquer organização que desenvolva e gerencie as APIs
  • Setores altamente regulamentados: seguros, bancos, finanças, governo

Considerações

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

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.

Essa solução oferece vários benefícios relacionados à segurança. Desenvolvedores individuais e até mesmo operadores, não acessam diretamente a instância de Gerenciamento de API para aplicar alterações ou atualizações. Em vez disso, os usuários enviam alterações por push para um repositório Git e os pipelines de extração e publicação leem e as aplicam à instância de Gerenciamento de API. Essa abordagem segue a melhor prática de segurança de privilégios mínimos, sem conceder permissões de gravação às equipes para a instância de serviço de Gerenciamento de API. Em cenários de diagnóstico ou solução de problemas, conceda permissões elevadas por um tempo limitado e caso a caso.

Para garantir que as instâncias de Gerenciamento de API estejam usando as melhores práticas de segurança, estenda essa solução para impor as melhores práticas de API, usando ferramentas de terceiros e testes de unidade. O Teams pode fornecer comentários antecipados por meio da revisão da PR, se as alterações propostas em uma API ou política violarem padrões.

Além da tarefa de configurar permissões de repositório, considere implementar as seguintes medidas de segurança em repositórios Git que sincronizam com instâncias de Gerenciamento de API:

  • Revisão da PR (solicitação de pull): usa e protege os branches que representam o estado das instâncias de Gerenciamento de API de terem alterações enviadas diretamente para eles. Exige que as PRs tenham pelo menos um revisor para impor o princípio de quatro olhos.
  • Histórico imutável: permite somente novas confirmações sobre as mudanças existentes. O histórico imutável é especialmente importante para fins de auditoria.
  • Autenticação multifator: exige que os usuários ativem a autenticação de dois fatores.
  • Confirmações assinadas: permite somente confirmações assinadas que não podem ser alteradas após o fato.

Otimização de custo

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

  • Use a Calculadora de Preços do Azure para estimar os custos.

  • O Gerenciamento de API oferece as seguintes camadas: Consumo, Desenvolvedor, Básico, Standard e Premium.

  • O GitHub oferece um serviço gratuito. No entanto, para usar recursos avançados relacionados à segurança, como proprietários de código ou revisores necessários, precisará do plano do Team. Para obter mais informações, consulte os preços do GitHub.

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.

A APIOps pode aumentar a produtividade do DevOps para desenvolvimento e implantações de API. Um dos recursos mais úteis é a possibilidade de usar operações do Git para reverter com mais rapidez as alterações que se comportam inesperadamente. O grafo de confirmação contém todas as confirmações, portanto, pode ajudar com a análise pós-mortem.

Os operadores de API geralmente gerenciam vários ambientes para o mesmo conjunto de APIs. É comum ter várias fases de uma API implantada em instâncias diferentes de Gerenciamento de API ou em uma instância de Gerenciamento de API compartilhada. O repositório Git, que é a única fonte de verdade, mostra as versões de aplicativos implantadas no momento em um cluster.

Quando alguém faz uma PR no repositório Git, o operador de API sabe que tem um novo código para examinar. Por exemplo, quando um desenvolvedor usa a especificação OpenAPI e cria a implementação da API, ele adiciona esse novo código ao repositório. Os operadores podem examinar a PR e garantir que a API que foi enviada para revisão atenda às melhores práticas e padrões.

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 saber mais, confira Visão geral do pilar de eficiência de desempenho.

A APIOps tem muitos benefícios, mas à medida que os cenários de Gerenciamento de API crescem, a complexidade de gerenciá-las também aumenta. Essa solução ajuda a enfrentar desafios como:

  • Manter uma visão geral de todos os ambientes e instâncias de Gerenciamento de API.
  • Acompanhar as alterações críticas em APIs e políticas.
  • Criar uma trilha de auditoria para todas as alterações implantadas.

Implantar este cenário

A implantação dessa solução envolve estas etapas:

  • Desenvolva a API no portal ou faça alterações na especificação do OpenAPI com uma ferramenta de sua escolha.

    • Caso faça alterações no portal, poderá executar o extrator para extrair automaticamente todas as APIs e outras políticas, operações e configurações relevantes do Gerenciamento de API. Sincronize essas informações com o repositório Git.

    • Opcionalmente, use a CLI do Azure DevOps para criar uma nova solicitação de pull.

  • O fluxo de trabalho do extrator inclui as seguintes etapas:

  • Em nosso cenário, o pipeline que baixa as alterações no portal para a instância de Gerenciamento de API tem as seguintes fases: Extrator de build, Criar artefatos do portal e Criar branch de modelo.

    • Extrator de build

      Essa fase cria o código do extrator.

    • Criar artefatos do portal

      Essa fase executa o extrator e cria artefatos semelhantes a uma estrutura de repositório Git como a demonstrada na seguinte captura de tela:

      Captura de tela de

      • Criar branch de modelo

        Depois de gerar o artefato, essa fase cria uma PR com as alterações extraídas para a equipe de plataforma examinar.

        Na primeira vez que executa o extrator, ele extrai tudo do repositório Git. A PR criada terá todas as APIs, políticas, artefatos e assim por diante.

        As extrações posteriores têm apenas alterações feitas antes da extração na PR. Às vezes, as alterações podem ser apenas para a especificação de uma API, que é o caso no exemplo de uma PR a seguir.

        Captura de tela de um exemplo de solicitação de pull após uma extração que mostra as alterações propostas em um arquivo chamado

  • Um revisor acessa as Solicitações de Pull para exibir as solicitações de pull atualizadas. Poderá também configurar aprovações automáticas para automatizar essa etapa.

    Captura de tela de um exemplo de solicitação de pull que mostra alterações no conteúdo em

  • Depois de aprovar a PR, ela dispara outro pipeline que publica do Gerenciamento de API para o portal. Em nosso exemplo, temos as seguintes fases: criador de build, terminador de build e instâncias do APIM de publicação.

    Captura de tela dos estágios em APIM-publish-to-portal, um pipeline.

    • A fase do criador de build manipula a criação de novas APIs.
    • A fase do terminador de build manipula todas as exclusões.
    • A fase de instâncias do APIM de publicação publica alterações na instância de Gerenciamento de API.

    Captura de tela que mostra os trabalhos em uma execução de exemplo de APIM-publish-to-portal, um pipeline.

    Depois que esse pipeline for executado com êxito, ele publicará as alterações na instância de Gerenciamento de API.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

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

Próximas etapas