Visão Geral da Governança de APIs na Algar Telecom
A Algar Telecom gerencia APIs e servidores para integração de sistemas, funcionando com um modelo de consumidor e provedor, onde as APIs e o barramento de serviço atuam como intermediários.
Consumidores e Provedores:
- Consumidores: Aplicativos, portais, parceiros e sistemas legados (ex: Algar CRM, Anatel).
- Provedores: Sistemas legados da Algar.
API Gateway vs. Barramento de Serviço (SOA):
- SOA (Service-Oriented Architecture): Foi o primeiro mecanismo de segregação de integrações, separando provedor e consumidor. No entanto, sua camada de segurança é menos eficiente que a do API Gateway.
- API Gateway: Oferece maior segurança e rastreabilidade. É mais ativo e simples para gerenciar segurança, além de possuir funcionalidades mais claras e definidas.
Gateways de Segurança de Serviço na Algar:
A Algar utiliza dois gateways principais:
- WSO2 API (iniciativa de 2017):
- Open source, sem custo por requisição.
- Depende do time interno para estudo e desenvolvimento, com suporte da comunidade ou interno.
- Não possui muitas opções nativas (ex: interceptores para mascarar logs), exigindo implementação customizada.
- Sensedia (principal gateway a partir de 2017):
- Solução SaaS, com custo por requisição.
- Principal gateway da Algar, com a maioria das APIs entrando por ele.
- Possui evolução constante da ferramenta por parte do fornecedor.
- Mais fácil de implementar, com opções nativas como interceptores para segurança (ex: mascaramento de logs).
- Suporte do desenvolvedor da ferramenta.
Desafios na Integração de APIs:
- Concepção e Nascimentodas APIs (API First):
- O ideal é que as APIs nasçam do sistema provedor, já com padrões definidos de nomenclatura, segurança e resiliência.
- Evita a criação de múltiplas APIs que fazem a mesma coisa, mas com formatos diferentes, facilitando a reutilização.
- Compatibilidade de Formatos e Sistemas Legados:
- Sistemas legados podem utilizar modelos proprietários (XML, SOFS XML, proc de banco), dificultando a integração.
- Necessidade de construir camadas intermediárias (Service Bus) quando o sistema legado expõe apenas dados de banco.
- Latência e Desempenho:
- APIs com alto tempo de resposta podem sobrecarregar o gateway, causando quedas do sistema.
- O desempenho ideal é abaixo de 2 segundos, com limite máximo de 15 segundos. É crucial verificar o desempenho dos backends ao desenvolver APIs.
- Segurança e Consistência de Dados:
- Garantir a integridade e criticidade dos dados nas integrações.
Padrões e Processos:
- Padrão Restful:
- Utiliza métodos HTTP (GET, POST, PUT, DELETE).
- Aplicações stateless (não guardam estado do servidor).
- Prioriza processos síncronos, mas processos assíncronos (onde o backend leva tempo para processar e devolve a informação posteriormente) são possíveis, desde que planejados do início ao fim.
Processo de Criação e Integração de APIs:
- Identificação dos Donos da Informação:
- Verificar com os responsáveis (ex: Marra e Ericson) onde os dados estão e qual a plataforma.
- Exposição dos Dados:
- Se os dados estão em tabelas, pode-se criar um web service na infraestrutura do dono da informação, seguindo padrões Restful.
- Caso contrário, será necessário construir uma camada (EBS) em cima do SELECT das tabelas.
- Ação de Integração:
- A Sensedia atua como provedora de gateway, chamando os backends (aplicações ou APIs de parceiros).
- É possível construir padrões Open Gateway internamente (métodos POST, DELETE, GET, HTTP, JSON Rest).
Segurança (Three Legged Token):
- Autenticação OAuth 2.0: Geração de tokens rotacionados (expiram de hora em hora) para usar APIs específicas.
Portal de APIs da Algar:
- Interface para organizar e documentar APIs (Anatel, corporativas, sistêmicas, Open Gateway).
- Inclui documentação (Swagger) com informações sobre acesso, parâmetros e respostas.
Conceitos Importantes:
- API First: A API nasce a partir do sistema que irá prover as informações, garantindo que seja bem estruturada e documentada desde o início.
- Padrões de Integração Restful: Essenciais para a organização e padronização das APIs.