Visão geral
O gateway de API é uma ferramenta de gerenciamento de APIs que fica entre um cliente e um conjunto de serviços de back-end. Nesse caso, o cliente é a aplicação no dispositivo de um usuário, e os serviços de back-end são aqueles que ficam nos servidores de uma empresa. API significa interface de programação de aplicações, que é um conjunto de definições e protocolos para criar e integrar software.
Um gateway de API é um componente da entrega de aplicações (a combinação de serviços que disponibilizam uma aplicação aos usuários) e atua como um proxy reverso para aceitar todas as chamadas de interface de programação de aplicações (API), agregar os diversos serviços necessários para atendê-las e retornar o resultado apropriado Para simplificar, o gateway de API é um software que intercepta as chamadas de API feitas por um usuário e as encaminha ao serviço de back-end apropriado.
Open Technology Sessions
Conheça a série de webinars da Red Hat em português feita para você descobrir como inovar. Aprenda sobre Automação, Infraestrutura, Plataforma de Aplicações, Cloud Services, Inteligência Artificial e muito mais!
Por que usar um gateway de API?
A maioria das APIs corporativas é implantada por meio de gateways de API. Os gateways costumam gerenciar tarefas comuns utilizadas em sistemas de serviços de API, como autenticação de usuários, limitação de taxa e estatísticas.
Em seu uso mais básico, um serviço de API aceita uma solicitação remota e retorna uma resposta. Mas na vida real nada é tão simples. Pense nas várias preocupações que você tem ao hospedar APIs em grande escala.
- Você quer proteger suas APIs da utilização excessiva e de abusos, e por isso usa um serviço de autenticação e limitação de taxa.
- Você quer entender como as pessoas usam suas APIs, então inclui ferramentas de monitoramento e analytics.
- Se você tem APIs monetizadas, será preciso conectá-las a um sistema de faturamento.
- Se você adota uma arquitetura de microsserviços, uma única solicitação poderá exigir chamadas para várias aplicações diferentes.
- Com o tempo, você incluirá novos serviços de API e descontinuará outros, mas seus clientes ainda vão querer encontrar todos os seus serviços no mesmo lugar.
Seu desafio é oferecer aos clientes uma experiência simples e confiável apesar de toda essa complexidade. Um gateway de API é uma forma de separar a interface do cliente da implementação do back-end. Quando um cliente faz uma solicitação, o gateway de API a divide em várias solicitações, as direciona para os locais adequados, produz uma resposta e faz o monitoramento.
A função do gateway no gerenciamento da API
Um gateway de API faz parte do sistema de gerenciamento da API. Ele intercepta todas as solicitações de entrada e as envia por meio desse sistema, que processa diversas funções.
A função exata do gateway varia de uma implementação para outra. Algumas funções comuns incluem autenticação, roteamento, limitação de taxa, faturamento, monitoramento, analytics, políticas, alertas e segurança. Os gateways de API oferecem os seguintes benefícios:
Baixa latência
Os gateways de API otimizam o roteamento de tráfego e o balanceamento de carga nos serviços de back-end para aprimorar o desempenho e a utilização de recursos. Isso é feito por meio da distribuição das solicitações de entrada e da descarga de tarefas comuns, como a encerramento de SSL e o armazenamento em cache. Assim, os gateways de API diminuem a carga do servidor e o uso da largura de banda, o que reduz a necessidade de aumentá-las, além de melhorar a experiência do usuário.
Gerenciamento de tráfego
Os gateways de API limitam e gerenciam o tráfego por meio de diversos mecanismos criados para controlar a taxa e o volume de solicitações de entrada e assegurar melhor desempenho e utilização de recursos.
- Com políticas de limitação de taxa, você especifica a quantidade máxima de solicitações permitidas em um determinado período (por segundo, minuto ou hora) em cada cliente ou chave de API. Isso evita a sobrecarga dos serviços de back-end.
- As políticas de limitação de solicitações definem regras e limites para regular o tráfego de solicitações, como taxas máximas de solicitação, permissões de operações de picos e cotas
- Com políticas de controle de simultaneidade, você especifica a quantidade máxima de conexões ou solicitações que os servidores de back-end podem administrar ao mesmo tempo.
- Com políticas de disjuntor, você monitora a integridade e a responsividade dos servidores de back-end, além de bloquear temporariamente ou redirecionar o tráfego de serviços lentos ou com problemas. Isso evita a propagação das falhas e preserva a estabilidade geral do sistema.
- Com o balanceamento de carga dinâmico pelos gateways de API, você monitora de maneira contínua a integridade do servidor e ajusta o roteamento de tráfego em tempo real para administrar os picos na demanda, diminuir o tempo de resposta e maximizar o rendimento.
Utilização da infraestrutura global de rede
Os gateways de API podem escalar os recursos de infraestrutura dinamicamente para responder às mudanças nos padrões de tráfego e nas demandas da carga de trabalho. É assim que os gateways de API ajudam as empresas a otimizarem a utilização de recursos e diminuírem os custos de infraestrutura, assegurando que elas paguem apenas pelo que realmente utilizam.
Relação custo-benefício
Os gateways de API desempenham um importante papel no controle do custo-benefício da entrega de aplicações e da integração de APIs. Para isso, eles oferecem uma plataforma centralizada para você administrar o tráfego da API, aplicar políticas de segurança, implementar regras de gerenciamento de tráfego e viabilizar a integração com os serviços de back-end. Os gateways de API também possibilitam o consumo escalonado dos serviços para manter a relação custo-benefício. Diferentes tipos de APIs podem impactar a relação custo-benefício de uma aplicação de diversas maneiras.
- Flexibilidade. As APIs HTTP, que são mais gerais e podem usar qualquer método HTTP, oferecem simplicidade e flexibilidade no desenvolvimento, o que pode reduzir os custos desse processo. Já as APIs REST, que seguem princípios e convenções de arquitetura específicas, podem exigir esforço e conhecimento adicionais para serem projetadas e implementadas corretamente, o que pode aumentar os custos de desenvolvimento.
- Infraestrutura. Por conta da sua flexibilidade, as APIs HTTP podem gerar custos de infraestrutura menores. Já as APIs REST exigem mais serviços e componentes de infraestrutura para viabilizar essas funcionalidades, o que pode aumentar os custos.
- Escalabilidade. Como podem ser escaladas horizontalmente com a adição de mais servidores e instâncias, as APIs HTTP oferecem opções mais econômicas, principalmente em ambientes de nuvem com recursos de escala automático. As APIs REST podem ter requisitos de escalabilidade mais complexos devido à sua natureza sem estado, armazenamento em cache e arquitetura distribuída. Por isso, elas exigem mais serviços e recursos de infraestrutura para possibilitar a escala horizontal, o que pode aumentar os custos.
Como os gateways de API funcionam com o Kubernetes
Uma solução baseada em Kubernetes como o Red Hat OpenShift é a maneira mais eficiente de colocar em containers e orquestrar aplicações. Portanto, o gateway de API é um componente essencial para gerenciar e direcionar o tráfego para serviços em um cluster Kubernetes. Para isso, ele:
- Atua como um controlador de entrada, interceptando o tráfego HTTP que chega ao cluster e encaminhá-lo para os serviços apropriados com base em regras e configurações definidas.
- Utiliza a descoberta de serviços baseada no DNS do Kubernetes para identificar e direcionar o tráfego para os serviços de back-end, sem exigir configuração manual. Isso viabiliza uma integração fluida com os serviços do Kubernetes e facilita a escala dinâmica, a descoberta de serviços e a realização de failover no cluster.
- Implementa políticas avançadas de gerenciamento de tráfego para controlar o fluxo nos serviços implantados no Kubernetes.
- Aplica políticas de segurança para proteger contra acessos não autorizados e ciberameaças. os serviços implantados no Kubernetes, como autenticação, controles de acesso, autorização e criptografia.
- Disponibiliza observabilidade e monitoramento ao incorporar visibilidade aos padrões de tráfego, métricas de desempenho e taxas de erro nos serviços implantados no Kubernetes, como geração de logs de solicitações, coleta de métricas e rastreamento distribuído.
- Integra service meshes como o Istio e Linkerd para ampliar seus recursos e oferecer mais funcionalidades, como acesso externo, segurança na edge e gerenciamento de tráfego global, otimizando a interoperabilidade entre os serviços do Kubernetes e os clientes externos.
Como um gateway de API oferece suporte ao DevOps e a ambientes serverless
Em organizações que adotam uma abordagem de DevOps, os desenvolvedores usam microsserviços para criar e implantar aplicações de maneira rápida e iterativa. As APIs são um dos meios mais usados na comunicação entre microsserviços.
Além disso, o desenvolvimento de nuvem moderno, incluindo o modelo serverless, depende das APIs para o provisionamento de infraestrutura. Com um gateway de API, você pode implantar e gerenciar funções serverless.
À medida que a integração e a interconectividade se tornam mais relevantes, as APIs ganham maior importância. De forma semelhante, à medida que a complexidade das APIs e o uso delas aumenta, o mesmo acontece com o gateway de API.
Como a Red Hat pode ajudar no gerenciamento de APIs
As soluções de gerenciamento de APIs da Red Hat são modulares, lightweight, abrangentes e exclusivamente open source. Elas utilizam padrões abertos e estão disponíveis on-premises, na nuvem e em ambientes híbridos. A Red Hat tem um compromisso com a tecnologia open source. Por causa do nosso modelo de desenvolvimento exclusivo, nosso portfólio passa por testes abrangentes realizados por uma comunidade diversificada formada por engenheiros, clientes, fornecedores independentes de software e de hardware e parceiros. Temos duas soluções de gerenciamento de APIs:
- O Red Hat OpenShift API Management é um serviço hospedado e gerenciado, oferecido como uma solução complementar ao Red Hat OpenShift Dedicated, um serviço totalmente gerenciado da plataforma de aplicações empresariais Kubernetes, o Red Hat OpenShift.
- O Red Hat® 3scale API Management é uma plataforma que facilita o compartilhamento, a proteção, a distribuição, o controle e a monetização de APIs. O 3scale API Management foi desenvolvido para escalar e ser compatível com arquiteturas híbridas (on-premises, na nuvem ou em qualquer combinação de ambos).