O que é gerenciamento de API?

Olá pessoal! Amigos, em 21 de fevereiro, lançamos o curso "Backend PHP Developer" . Antecipando o lançamento do curso, queremos compartilhar com você a tradução de um material interessante. Boa leitura!

Em outubro, na conferência NGINX Conf 2018, anunciamos um novo módulo de controle de API para o controlador NGINX . Com este produto, estamos fortalecendo nossa posição como o gateway de API mais implantado do setor - milhões de sites já estão usando o NGINX Open Source e o NGINX Plus para transferir com segurança o tráfego entre aplicativos de servidor e os consumidores de API fornecidos por esses aplicativos.



Mas o tratamento eficiente de solicitações de clientes é apenas um aspecto de uma API bem-sucedida (embora extremamente importante). Você também precisa gerenciar suas APIs durante todo o ciclo de vida, incluindo defini-las e publicá-las, além de proteger e gerenciar o tráfego. Você precisa rastrear e solucionar problemas de desempenho para garantir a satisfação do cliente e analisar o tráfego para maximizar o valor comercial. O gerenciamento abrangente de API é essencial para a rápida adoção e o sucesso contínuo de suas APIs.



O gerenciamento de API cobre todo o ciclo de vida de suas APIs
(Na figura: começando de cima no sentido horário - Definição e publicação, Segurança, Gerenciamento de tráfego (gateway da API), Monitoramento e suporte contínuos, Análise da quantidade de acesso à API. Adaptação (portal de desenvolvimento);
no centro - Gerenciamento de API)

Como muitos de nossos clientes, você pode achar que os conceitos e a terminologia exagerados em torno das soluções de API são bastante assustadores. Neste blog, discutimos os principais conceitos da API e exploramos o relacionamento do gerenciamento da API com os gateways da API.

Conceitos chave

A API de gerenciamento possui seus próprios conceitos e terminologia:

  • APIs internas - APIs internas estão disponíveis apenas para outros aplicativos (e seus desenvolvedores) na empresa, mas não para usuários externos. APIs internas ajudam a abrir dados e a promover a colaboração entre unidades funcionais da empresa. Aqui está um bom exemplo: antes de prestar assistência aos clientes, a equipe de suporte técnico da empresa deve determinar se o cliente possui um contrato de suporte válido. Essas informações já estão armazenadas em um sistema corporativo de gerenciamento de relacionamento com clientes (CRM), como o Salesforce. Em vez de duplicar informações em seu próprio banco de dados, o aplicativo de suporte ao cliente chama a API CRM interna.
  • APIs externas - APIs externas estão disponíveis para usuários fora da empresa. Eles fornecem ferramentas para estabelecer parcerias com desenvolvedores de terceiros, bem como todo o ecossistema de negócios de fornecedores, distribuidores, revendedores e até clientes. APIs externas também permitem que as empresas gerem novas fontes de receita usando modelos de negócios inovadores. Os mapas do Google são um bom exemplo. Muitos sites e aplicativos de terceiros incorporam um mapa do Google para ajudar os usuários finais a identificar a localização de uma loja ou obter instruções. O acesso ao mapa para o usuário final não custa nada, mas após um certo número de cliques, o Google cobra uma taxa do site ou aplicativo por cada chamada da API.
  • Definição e publicação . As soluções de gerenciamento de API fornecem uma interface intuitiva para definir APIs significativas, incluindo o caminho base (URL), recursos e pontos de extremidade.

    • Os recursos são fundamentais para qualquer definição de API; eles são uma abstração de informações sobre as quais a API executa operações. Exemplos de recursos são documentos e IDs de clientes. A API é chamada para obter essas informações.
    • Os pontos de extremidade indicam onde os recursos estão localizados. As APIs têm um URL base ao qual os caminhos do terminal são adicionados. Todos os pontos de extremidade da API se referem ao URL base.

  • Por exemplo, no terminal da API, https://app.enterprise.com/v1/inventory/ , /v1 é o caminho base e /inventory é o recurso.
  • As soluções de gerenciamento de API permitem que os autores da API publiquem APIs em diversos ambientes, como os destinados à produção, teste ou preparação. Isso garante consistência para cada ambiente e evita configurações incorretas. As soluções também automatizam a criação de novas APIs e a modificação das existentes.
  • Gateway de API - Como mencionado anteriormente, os gateways de API protegem e fornecem tráfego entre o back-end e os consumidores das suas APIs. A funcionalidade do gateway inclui autenticação de chamadas de API, solicitações de roteamento para os back-end correspondentes, aplicação de limites de velocidade para evitar sobrecarregar seus sistemas ou atenuar ataques DDoS, descarregando o tráfego SSL / TLS para melhorar o desempenho e lidar com erros e exceções.
  • Microgateway - muitas soluções têm um plano de dados centralizado e estreitamente relacionado (gateway de API) e plano de controle (ferramenta de gerenciamento de API). Todas as chamadas de API devem passar pelo plano de controle, o que adiciona atraso. O gateway da API nesta abordagem arquitetônica é ineficiente ao processar o tráfego em ambientes distribuídos (por exemplo, tráfego entre serviços em um ambiente de microsserviço ou ao processar o tráfego da IoT para oferecer suporte à análise em tempo real). Portanto, para o gerenciamento de tráfego, quando os consumidores e os provedores de API estão próximos, os fornecedores de soluções desatualizadas introduziram um componente de software adicional - um micr gateway para processar chamadas de API.
  • Análise da API - À medida que suas APIs se tornam populares, você precisa garantir que elas agreguem valor aos usuários e atendam às suas metas de negócios. É aqui que a análise se torna crítica. As soluções de gerenciamento de API fornecem informações críticas por meio de visualizações (como painéis e relatórios) de métricas e uso da API, informando (como exemplos) quais APIs são usadas com mais ou menos frequência, como o tráfego da API muda ao longo do tempo e quais desenvolvedores são os melhores consumidores de API. A análise de API permite que um proprietário de um negócio de API, às vezes chamado de "Gerente de produto da API", obtenha informações sobre o desempenho de um programa de API.
  • O Analytics também é importante para a solução de problemas. As soluções de gerenciamento de API fornecem uma compreensão profunda do desempenho de cada API. Essas métricas permitem que as equipes de infraestrutura e operações rastreiem e resolvam problemas de desempenho e segurança. Aqui estão exemplos de perguntas que podem ser respondidas por um analista:

    • Qual é o status e o tempo de atividade de todas as minhas instâncias de gateway da API?
    • Quando vemos desacelerações para uma API?
    • Quando estão ocorrendo erros de HTTP para uma API?
    • Qual é o estado e o tempo de atividade de todas as minhas instâncias do gateway da API?
    • Quando observamos lentidão na API?
    • Quando os erros do HTTP ocorrem para uma API?

  • Segurança da API - A segurança é um aspecto crítico da infraestrutura da API. Sem proteção confiável, qualquer pessoa pode acessar seus dados e APIs e introduzir comportamento malicioso chamando uma solicitação para uma API insegura. A API de segurança inclui os seguintes elementos:

    • Autenticação - Autenticação refere-se ao processo de determinação confiável da identidade do chamador. As chaves da API são um mecanismo padrão para autenticar e identificar assinantes que desejam acessar a API. As soluções de gerenciamento de API fornecem aos provedores de API uma interface para gerar chaves de API, que podem ser repassadas a desenvolvedores de terceiros para uso em chamadas de API. OAuth é um mecanismo de autenticação amplamente usado.
    • Autorização - Autorização refere-se ao processo de determinar quais privilégios ou níveis de acesso são concedidos a um usuário. Uma maneira de autorizar os usuários é por meio do JSON Web Tokens (JWT). JWTs são tokens de acesso que reivindicam (reivindicações são terminologia JWT para privilégios individuais). Por exemplo, um JWT apresentado por um aplicativo cliente pode incluir uma asserção que permite o acesso a um recurso específico. Se o aplicativo cliente tentar acessar outros recursos, será retornado um erro HTTP 403 Proibido.
    • Controle de acesso baseado em função (RBAC) - RBAC refere-se à definição de funções de usuário com privilégios específicos. Por exemplo, os funcionários de Infraestrutura e Operações geralmente não são responsáveis ​​pela criação e publicação de uma API, mas apenas pelo monitoramento e solução de problemas. Assim, eles recebem uma função que possui apenas esses privilégios. Da mesma forma, apenas o gerente de produto da API recebe uma função que tem acesso às análises da API.
    • Limite de velocidade - limite de velocidade refere-se à imposição de um limite no número de solicitações que o agente solicitante pode fazer durante um determinado período de tempo (por exemplo, 10.000 solicitações por segundo). Os limites de velocidade evitam sobrecarregar seus sistemas de back-end e ajudam a atenuar ataques DDoS. A solução de gerenciamento de API fornece uma interface para determinar os limites de velocidade que o gateway da API aplica. Os limites de velocidade também permitem oferecer níveis de serviço em vários níveis (por exemplo, os clientes Gold podem fazer 10.000 solicitações por segundo e os clientes Silver podem fazer 5.000).

  • Portal para desenvolvedores . O portal do desenvolvedor é um site online no qual você publica recursos que ajudam a adaptar rapidamente seus consumidores de API, como um catálogo externo de API, documentação completa e exemplos de código. O portal do desenvolvedor também permite que desenvolvedores de terceiros registrem seus aplicativos e recebam chaves de API e JWTs. Algumas soluções também fornecem um mecanismo de interação entre desenvolvedores que usam sua API. Um portal de desenvolvedor bem projetado é fundamental para o sucesso do seu programa de API.

Gerenciar a API NGINX: utilizando o gateway de API líder do setor

O NGINX já é o gateway de API mais usado no setor - em nossa pesquisa recente, 40% de nossos clientes relataram usar o NGINX como um gateway de API.

O novo módulo de controle de API do controlador NGINX , que será lançado em breve, combina a potência e a eficiência do NGINX Plus como um gateway de API com a nova funcionalidade de nível de gerenciamento. O controlador NGINX permite às equipes de Infraestrutura e Operações e DevOps definir, publicar, proteger, acompanhar e analisar a API, mantendo o controle sobre o desenvolvimento da API. Monitoramento e alertas abrangentes ajudam a garantir a disponibilidade, desempenho e confiabilidade do aplicativo. O controlador NGINX fornece um entendimento profundo das principais métricas, permitindo que as equipes de Infraestrutura e Operações e DevOps evitem primeiro os problemas de desempenho e corrijam rapidamente os problemas que surgirem.

Nossa abordagem para gerenciar APIs é diferente das soluções tradicionais. Diferentemente dessas soluções, o gateway da API do NGINX Plus (plano de dados) não requer uma conexão permanente com o controlador NGINX (plano de controle); portanto, o tráfego em tempo de execução da API é isolado do tráfego de controle. O controlador NGINX elimina a necessidade de bancos de dados locais ou componentes adicionais que podem criar complexidade desnecessária, atraso e pontos de falha para os gateways da API do NGINX Plus. Isso maximiza o desempenho, reduzindo o tempo médio de resposta para atender uma chamada de API e minimiza o volume e a complexidade do gateway. Desanexar o plano de dados do plano de controle oferece a flexibilidade de implantar quantas instâncias do gateway da API forem necessárias para a arquitetura do aplicativo. O controlador NGINX oferece a liberdade de escolher a implantação correta para as necessidades internas e externas da API, com uma solução fácil, simples e de alto desempenho que tira o máximo proveito do plano de dados NGINX Plus.

A tecnologia NGINX suporta os portais de desenvolvedor da Capital One - Devexchange . Isso permitiu à Capital One escalar seus aplicativos para 12 bilhões de operações por dia, com picos de 2 milhões de operações por segundo, com atrasos de apenas 10 a 30 milissegundos. O NGINX também suporta o portal da Adobe para desenvolvedores de E / S da Adobe . O Adobe I / O permite que os desenvolvedores integrem, expandam e criem aplicativos baseados nos produtos e tecnologias da Adobe usando a API. A plataforma processa milhões de solicitações por dia com um pequeno atraso.

Aqui está uma tradução, como você gosta? Estamos aguardando seus comentários e, tradicionalmente, convidamos você para uma aula aberta , que será realizada em 11 de fevereiro pelo nosso professor Igor Sakhankov .

Source: https://habr.com/ru/post/pt439222/


All Articles