Como consequência dos sistemas distribuídos, nos anos 70, os APIs tiveram um primeiro boom que continuou a ser relevante nas últimas décadas.
Já no nosso século, Roy Fielding e a sua dissertação 'Architectural Styles and the Design of Network-based Software Architectures', significaram o que para muitos é o ponto de partida do modelo de APIs que é tão popular hoje em dia.
Neste momento estaríamos a falar do conceito WebAPI, para simplificar o artigo continuaremos a utilizar o conceito API, que como o seu nome indica é uma API no modelo web acessível através do protocolo HTTP e que permite o acesso programático para ler, escrever, modificar ou apagar dados.
Este modelo API, juntamente com o manifesto da metodologia ágil (ágil manifesto 2001) e outros elementos de evolução no sector, facilitaram o acesso aos dados e tornaram-nos partilhados tanto dentro como fora da organização.
Para que toda esta descentralização de dados funcione, é necessária segurança específica, bem como meios para rentabilizar o consumo de dados nos casos em que a empresa deseja investigar novos nichos de mercado com base na informação.
Nesta secção, o Gestor de API é apresentado como uma peça chave numa arquitetura de serviço com APIs que precisam de ser expostas ao exterior de uma organização, ou onde é necessário um controlo detalhado das mesmas.
Alguns dos benefícios que um API Manager pode trazer são:
- Segurança:
- Proteção dos APIs da empresa, permitindo apenas aos clientes autorizados a sua utilização.
- Encapsulação dos clientes e a possibilidade de tomar medidas individualizadas em caso de possíveis ataques, tais como recusa de serviço, injeção de código, etc. Obtendo assim uma melhor disponibilidade do próprio negócio.
- Aplicação de políticas e otimização do consumo de API.
- Desacoplamento de clientes API:
- Manter a lógica empresarial numa camada interna desenvolvida por APIs e oferecer produtos através de clientes finos que consomem estas APIs.
- Facilitar a integração com clientes, colaboradores ou parceiros para que os processos possam ser otimizados, a segurança possa ser melhorada e a colaboração possa ser construída através da tecnologia.
- Economia de custos e otimização de recursos num mercado pay-per-use.
- Encontrar novos nichos de negócio com base em dados.
- Reutilização segura de APIs.
Mas é evidente que um Api Manager também tem custos:
- Seleção de um fornecedor API Manager quando existem tantos fornecedores de qualidade no mercado. Esta tarefa requer esforço e tempo, concentrando-se no apoio completo e de ponta a ponta do ciclo de vida do API.
- A necessidade de um papel especializado para a correta administração do API Manager
Devido à grande escolha de fornecedores de API Manager e à complexidade de adaptar o API Manager correto ao contexto empresarial específico, a seleção do API Manager é uma tarefa difícil de realizar.
Qual o API Manager a escolher?
Este artigo irá propor algumas ideias relevantes, divididas em blocos, para tentar ajudar nesta difícil tarefa:
Segurança
É necessário prestar especial atenção à forma como se resolvem elementos como a autenticação. Um exemplo é como implementa o OAuth2, se utiliza um fornecedor externo e se permite a integração de vários destes, bem como analisar a capacidade de integração do API Manager com a arquitetura interna de tal forma que permita que os elementos considerados necessários para avaliar a segurança da nossa arquitetura passem livremente. Um exemplo seria um possível JWT utilizado para a identificação de clientes API.
Estimativa de tráfego e dimensionamento
Existem diferentes modelos de marketing e é muito interessante ter uma estimativa prévia da quantidade de tráfego que se espera receber. Para tal, é aconselhável ter em conta:
- Número total de chamadas anuais esperadas para as APIs expostas no API Manager.
- Número de chamadas simultâneas. Para o fazer, é interessante saber:
- Clientes Apis que se estima necessitarem de informação síncrona.
- Tempos de resposta dos API expostos e analisar a possibilidade de refactoring para responder a novas necessidades com base na latência.
- Os API Manager são realmente rápidos e não devem acrescentar muito mais latência aos pedidos. O dimensionamento do API Manager selecionado e os recursos atribuídos devem ser previstos.
Análise e depuração
Um elemento muito importante que um API Manager deve fornecer é um painel de controlo onde é possível analisar:
- Comportamento síncrono dos clientes, o que, entre outras coisas, permitirá um conhecimento preditivo dos mesmos.
- Detetar ataques tais como ataques de negação de serviço, a fim de tomar as medidas de proteção apropriadas.
- Detalhe da utilização de todas as APIs publicadas para que possamos detetar o interesse que possa ser gerado no mercado.
Por outro lado, se a empresa procura diversificar o seu negócio com base em dados, a informação aqui reportada será certamente verdadeiramente útil para este fim.
Um elemento fundamental nesta secção é atualizar esta informação o mais próximo possível do tempo real e ter um bom número de gráficos para analisar a informação de diferentes pontos de vista.
Manutenção do API Manager
Este ponto será fundamental para se poder oferecer disponibilidade de serviços. Para este fim, é importante considerar:
- Facilidade da interface gráfica e design de fácil utilização para poder gerir elementos tais como credenciais, estabelecimento de políticas, publicação de novas APIs, revogação de permissões, etc.
- Escalabilidade a quente, especialmente importante nos modelos pay-per-use.
- Modelo de alertas com a possibilidade de configuração variada.
- Diretrizes de integração do desenho do lado do cliente. Esta colaboração com o cliente, além de oferecer um melhor serviço, tornará muito mais fácil a migração para outro API Manager.
Otimização do API Manager
O gestor do API tem obviamente um custo, mas com uma otimização da sua utilização, será possível reportar alguns benefícios muito interessantes.
Por exemplo, com um controlo de tráfego adaptado à utilização lógica de uma API através do Gestor de API, o Servidor de API que aloja esta API poderia ver a sua utilização reduzida e será possível ser dimensionado para a necessidade real.
No entanto, este artigo centrar-se-á no Api Manager, pelo que se propõe que se tenha isto em consideração:
- Encontrar a localização apropriada para o API Manager dentro da arquitetura da organização.
- Estabelecer uma política de utilização para clientes API com um modelo de integração definido, auditabilidade e a possibilidade de penalidades em caso de utilização indevida. É uma boa prática estabelecer isto por contrato entre as partes.
- Conceber um API eficiente em termos de conceção e funcionamento. Além disso, uma boa definição do domínio permitirá uma escalada mais fácil tanto dos recursos técnicos como dos recursos humanos.
Este artigo propõe algumas ideias baseadas na experiência e espera-se que elas possam ajudar na seleção do Gestor API correto para a empresa específica.
Se, para além do descrito neste artigo, necessitar de mais ajuda ou propostas, a Techedge terá todo o prazer em participar na análise para a seleção do API Manager e em conceber um modelo de arquitetura API cujo objetivo é expor o modelo de negócio ao mundo exterior.
É também interessante considerar o quadrante Gartner, porque efetua uma análise baseada nas seguintes áreas funcionais:
- Portal de Desenvolvimento: local onde o catálogo de APIs é exibido e onde podem ser ativadas, comercializadas e geridas.
- Api gateways: Gestão de tempo de execução, segurança e monitorização de API.
- Gestão e análise de políticas: configuração, mediação e análise de segurança.
- Conceção e desenvolvimento de API: ferramentas para conceção e criação de APIs e sua ativação.
- API testing: possibilidade de realizar testes funcionais, de desempenho e de segurança avançada de APIs.