API Lifecycle Management – As diversas fases do ciclo de vida de uma API

A abordagem do API lifecycle management fornece uma visão holística sobre como gerenciar os diferentes estágios de desenvolvimento de uma API, ao longo de todo o ciclo de vida.

Conforme mostrado na Figura 1 abaixo, a API tem um ciclo de vida duplo. O ciclo da esquerda abrange as atividades do produtor, enquanto o da direita envolve as atividades do consumidor.

As fases de Gerenciamento

1. Fase de Estratégia

Nesta fase, você terá que definir as metas que deseja alcançar com suas APIs. Ela também especifica quais mercados que você precisa abordar, quais recursos você tem à sua disposição, o prazo que você tem para atingir os seus objetivos, e assim por diante. Essa é uma etapa crucial, que poderá ajudá-lo a concentrar os seus esforços onde é mais importante.

2. Fase de Design

Esta fase garante que a sua organização usará uma abordagem de primeiro contrato. Esse procedimento envolve a coleta de feedback antecipado, quebrando as dependências entre os projetos e reduzindo os riscos. Além disso, uma abordagem de primeiro contrato é conhecida por reduzir o tempo de lançamento no mercado.

Na fase de design, você projeta o contrato de sua API e o compartilha com os seus futuros consumidores. O resultado é um contrato de API que descreve as mensagens que podem ser trocadas com as suas APIs.

3. Fase de Simulação

Na simulação, você deverá criar exemplos significativos da carga útil de suas APIs e tentar alinhar as suas especificações com as expectativas de negócios. Esses exemplos são depois transformados em uma simulação ao vivo que pode ser exposta aos seus primeiros consumidores.

As expectativas de negócios dizem respeito a tudo o que não pode ser especificado usando um esquema formal. Por exemplo, ao consultar itens por status, todos os itens devolvidos devem ter o status desejado.

4. Fase de Teste

Na fase de testes de aceitação, você terá que definir os seus casos de teste, com base em exemplos, antes de implementar as suas APIs. Isso ajudará a refinar as suas expectativas de negócios, compartilhá-las entre os desenvolvedores, testadores e clientes e depois certificar-se de que as suas APIs atendem às expectativas.

5. Fase de Implementação

Na Implementação, a API real é desenvolvida usando uma estrutura de integração. Uma estrutura de integração é uma parte fundamental do ciclo de vida de suas APIs para promover a reutilização, iterações rápidas e acréscimos de valor por meio da orquestração. Ela também ajuda a modernizar as partes existentes do seu sistema de informação. As práticas atuais de desenvolvimento ágil também se aplicam aqui.

6. Fase de Implantação

Na Implantação, você deve se certificar de ter um pipeline de integração contínua / implantação contínua (CI/CD) que automatize a entrega de suas APIs ao ambiente de produção. O pipeline CI/CD reutiliza os testes que você definiu anteriormente para garantir que as APIs a serem implantadas não violem as suas especificações.

7. Fase de Segurança

A segurança é uma etapa importante no ciclo de vida da API. O teste de segurança automatizado, como análise estática ou teste de vulnerabilidade, deve fazer parte do seu pipeline. Práticas de desenvolvimento seguro, como revisões de código, também devem fazer parte de seu ciclo de vida de desenvolvimento.

8. Fase de Gerenciamento

A esta altura, as APIs precisam ser gerenciadas. O gerenciamento abrange o controle de versão, a descontinuação e a retirada. Como prática recomendada, o controle de versão deve seguir o esquema de controle de versão semântico. Isso significa que qualquer nova versão secundária de uma API substitui a versão anterior. Todos os consumidores que usavam a versão anterior poderão assim migrar para a atual, adaptando o seu código à nova versão.

Entenda como funciona o ciclo do consumidor

Após revisarmos todas as fases do gerenciamento do ciclo de vida da API feito pelo produtor, agora podemos falar sobre o ciclo do consumidor.

9. Fase de Descoberta

Quando suas APIs são implantadas na produção e estão “ativas”, você entra na fase de descoberta. Nela, você precisa ajudar os seus parceiros e terceiros a descobrir as suas APIs. O seu portal de desenvolvedor de API é o showroom para as suas APIs. Portanto, ele deverá ser usado para impressionar os seus parceiros e clientes e gerar receitas a partir de suas APIs.

10. Fase de Desenvolvimento

Os clientes começarão a descobrir as suas APIs e desenvolver aplicativos baseados nelas. A experiência do usuário dependerá da qualidade de suas APIs, mas também dos aplicativos dos clientes. Portanto, certifique-se de fornecer recursos suficientes para que os desenvolvedores aproveitem ao máximo as suas APIs. Esses recursos podem ser as melhores práticas, informações sobre como lidar com a segurança, novas tentativas em caso de erros, e assim por diante.

11. Fase de Consumo

A essa altura, os aplicativos dos clientes começarão a utilizar as suas APIs e você pode querer ter planos para corresponder ao seu consumo crescente. Para garantir uma experiência de usuário de alta qualidade, você também pode querer configurar um processo de validação de aplicativos para atingir as suas APIs de produção.

12. Fase de Monitoramento

Depois que sua primeira versão for lançada, você precisará preparar a próxima versão e a seguinte. Isso requer que você estabeleça uma espécie de ciclo de feedback para saber o que melhorar a seguir. Essa fase é chamada de Monitor.

Para obter dados precisos em seu ciclo de feedback, você terá que monitorar vários aspectos de suas APIs, passando pela integridade da API, o uso da API, e assim por diante. Testar a reação das pessoas é uma métrica útil para saber se as suas APIs são fáceis o bastante para que possam ser assimiladas rapidamente por outros desenvolvedores.

13. Fase de Monetização

Conforme as suas APIs amadurecem, o seu modelo de negócios também amadurece. Em algum ponto, você pode estar interessado monetizar com o uso de suas APIs. Esse desejo é especialmente provável se você está visando uma miríade de pequenos terceiros para se beneficiar de um efeito de cascata.

A partir dessa fase, tanto o ciclo do produtor quanto do consumidor se repete. Portanto, você deve saber quais objetivos quer alcançar para que possa se concentrar naquilo que é mais importante.

 

Como a Service Mesh pode elevar o padrão dos Microsserviços

Os microsserviços são arquiteturas para a criação de aplicações que podem ser implantadas e executadas de modo independente dos outros serviços. Nesse caso, a comunicação é feita serviço a serviço.

Porém, em arquiteturas de microsserviços com um grande número de aplicações, essa comunicação se torna bastante complexa. Por isso, o gerenciamento da comunicação nessas aplicações é fundamental para garantir o desempenho e a confiabilidade ponto-a-ponto.

A Service Mesh foi projetada para tornar o desenvolvimento de microsserviços mais fácil e eficaz, pois ela oferece um nível granular de controle sobre como os serviços se comunicam uns com os outros e compartilham dados entre si. Desse modo, ela garante que um alto volume de comunicação entre os serviços de infraestrutura de aplicativos seja mais rápido, seguro e confiável.

O que é e como funciona a Service Mesh

Uma Service Mesh (em tradução literal, malha de serviço) é uma camada de infraestrutura visível e configurável, incorporada diretamente em uma aplicação. Ela foi projetada para lidar com um alto volume de comunicação entre processos e documentar o desempenho das interações entre os diversos componentes de uma aplicação. Desse modo, ela otimiza a comunicação e evita o tempo de inatividade, conforme a aplicação evolui.

Um dos objetivos da Service Mesh é trazer a comunicação para um patamar visível, onde essa comunicação possa ser gerenciada, monitorada e controlada. Ela privilegia a governança de microsserviços ao adicionar a visibilidade necessária e controles seguros quando são utilizados dezenas de recursos. Desse modo, fica mais fácil descobrir, autorizar e rastrear as diferentes instâncias de serviço.

O Linkerd, o primeiro projeto de service mesh, foi criado em 2017,  e hoje é utilizado por empresas como Microsoft, HP, Walmart e eBay. Logo outros frameworks de Service Mesh, como o Istio e o Conduit, foram disponibilizados no mercado. Eles foram desenvolvidos para ser executados em ambientes variados: on-premises, hospedado em nuvem, em containers do Kubernetes, serviços executados em máquinas virtuais, entre outros;

A Service Mesh implementa a maior parte das funções de rede. Ela oferece as seguintes funcionalidades:

  • Roteamento dinâmico;
  • Autenticação e autorização;
  • Observabilidade;
  • Rastreabilidade;
  • suporte para o padrão de disjuntor;
  • Criptografia;
  • Mitigação de falhas e implementação de Circuit, rare limit e timeout;
  • Balanceamento de carga;
  • Descoberta de serviços.

Uma vez que essas funcionalidades são fornecidas pela Service Mesh no nível da plataforma, elas são disponibilizadas uniformemente para todos os serviços.

Como as sidecars facilitam a comunicação

Uma service mesh geralmente é implementada fornecendo uma instância de proxy secundário chamada sidecar para cada instância de serviço. Situados em uma camada de infraestrutura própria, esses proxies são executados paralelamente a cada serviço, e não dentro deles – daí o nome sidecar.

Sidecars são, portanto, proxies em containers que vivem lado a lado com os serviços que estão suportando. Elas são capazes de interceptar as comunicações entre os s