API significa Interface de Programação de Aplicativos. Ao longo dos anos, ele evoluiu de uma especificação imperativa fortemente acoplada para um modelo declarativo fracamente acoplado. As APIs mais comuns hoje são RESTful e usadas para permitir integração. Independentemente da implementação e do modo de invocação, as APIs tendem a ser associadas ao desenvolvimento de aplicativos.
Mas outra economia de API vem se expandindo constantemente. Está dentro das operações. E nesse domínio, o "A" em API significa automação.
O que as APIs no domínio operacional representam é a capacidade de automatizar a integração, a configuração e a operação de serviços de infraestrutura e aplicativos. Assim, as interfaces — as APIs — necessárias para dar suporte às operações precisam se concentrar na simplificação da automação.
Esse foco é importante à medida que as organizações entram totalmente na segunda fase da transformação digital e começam a expandir a automação nos pipelines de entrega e implantação. Para dimensionar a automação, é preciso ter a capacidade de desenvolver processos consistentes, repetíveis e previsíveis que incorporem o pipeline de implantação de um aplicativo.
Um relatório da Kentik sobre o estado da automação em 2019 indicou que mais da metade das organizações (53%) já estavam usando automação para configuração de rede e outros 40% automatizavam o gerenciamento de políticas. Nossa própria pesquisa mostra que essa porcentagem é muito maior — uma supermaioria de 86% automatizando a rede. A mesma pesquisa, State of Application Services 2020, também encontrou consistência crescente no estado da automação em todo o pipeline de implantação.
As ferramentas que as organizações estão usando também estão mudando. Embora o Python ainda seja uma das opções mais populares, estamos vendo a influência do DevOps e dos aplicativos nativos da nuvem na TI. O pipeline de implantação é cada vez mais conduzido por ferramentas como Jenkins e Ansible e acionado por repositórios como GitHub e GitLab Enterprise. Olhando para o futuro, a infraestrutura e os serviços de aplicativos serão orientados por insights acionáveis produzidos por análises avançadas.
São os sistemas, não as pessoas, que invocarão as APIs no pipeline de implantação. Portanto, é fundamental projetar APIs operacionais especificamente com a automação em mente. Isso significa várias considerações.
Primeiro, pode ser necessário considerar o sistema do qual uma API operacional pode ser invocada. Os dados disponíveis no Jenkins ou em um repositório sem dúvida serão muito diferentes daqueles provenientes de ferramentas e serviços tradicionais de automação de rede. Isso pode significar obter dados de outro lugar ou adotar valores padronizados sempre que possível.
Em segundo lugar, é fundamental que abordemos a necessidade de invocação de APIs por “máquina credenciada” separadamente da invocação por “usuário credenciado”. A maioria dos nossos sistemas de autenticação hoje assume um “usuário” que é humano. Chaves de API podem ser uma boa opção, mas exigirão algum aprendizado no lado operacional de TI para implantar, operar e gerenciar um sistema projetado para manter credenciais somente de máquina. Ainda assim, isso é essencial à medida que avançamos em direção à terceira e última fase da transformação digital, onde os serviços e operações de aplicativos assistidos por IA arcarão com uma parcela maior dos encargos operacionais.
É ótimo que possamos usar ferramentas para criar scripts a partir dos quais as operações podem ser automatizadas hoje. Mas é importante reconhecer que, no futuro, o A em API se referirá quase exclusivamente à automação — pelo menos no contexto de operações — devido ao modo como impactará as interações e invocações entre máquinas em vez de pessoas.