InícioBlogA API representa uma forma de arte desaparecida?

A API representa uma forma de arte desaparecida?

Date:

Estamos enfrentando problemas de lentidão em APIs e serviços em nuvem que não foram bem planejados, desenvolvidos ou implementados. É preciso dedicar mais atenção aos testes e monitoramento.

artist ocean binary daydreamer canvas paint brush visualization
Imagem: wal_172619/Burst

É manhã de sexta-feira e você está entusiasmado. Hoje, sua nova inteligência artificial generativa, hospedada em um renomado provedor de nuvem, começará a colaborar com os sistemas de comércio eletrônico já em funcionamento, responsáveis por 80% da receita da empresa.

A organização aguarda ansiosamente a nova capacidade de aumentar as vendas, entendendo melhor os clientes por meio do site. Além disso, o sistema será capaz de gerar ofertas personalizadas instantaneamente. A equipe de marketing prevê que isso resultará em um aumento de 30% na média de vendas por transação.

As equipes de desenvolvimento de nuvem e site foram pressionadas a implementar rapidamente, o que resultou na falta de realização da maioria dos testes de estresse, pois acreditaram na capacidade dos sistemas baseados em nuvem de se adaptarem e escalarem conforme necessário.

Os sistemas de comércio eletrônico se conectam com a inteligência artificial generativa por meio de diferentes interfaces de programação de aplicativos (APIs). Essas permitem que os aplicativos no site de comércio eletrônico ativem a inteligência artificial generativa, enviando informações. A inteligência artificial generativa responde com as informações desejadas.

Porém, surgem problemas quando o sistema de e-commerce ultrapassa 5.000 usuários, sobrecarregando as APIs responsáveis por sua operação. Isso resulta em uma queda significativa no desempenho, levando a um aumento expressivo de usuários que abandonam o site. Diante disso, a equipe de e-commerce decide voltar à versão anterior do site e desfazer a integração com o novo sistema de API generativa.

Observo com frequência essa situação. Os sistemas são desenvolvidos de forma adequada, porém as APIs não recebem a devida importância, o que acarreta em questões de desempenho, escalabilidade e latência. Muitos tentam contornar esses problemas alocando mais recursos, como instâncias adicionais de servidor, o que é uma solução fácil de implementar em um ambiente de nuvem pública. No entanto, é importante lembrar que esses recursos não são ilimitados e, em algum momento, será necessário corrigir as APIs.

VEJA TAMBEM:  Analisando o verdadeiro custo do tempo de inatividade: por que a hospedagem é essencial

Os princípios básicos do planejamento de uma API.

Resumindo, é fundamental ter um design que leve em conta diversos aspectos de um plano de API eficiente para evitar falhas no funcionamento da mesma. Apesar de ser um conhecimento antigo, nem sempre tem sido priorizado, o que pode surpreender algumas pessoas, especialmente equipes de desenvolvimento de API.

Quais são os fundamentos essenciais do design de API de qualidade? Vamos repassar os principais princípios:

A capacidade de expansão é significativa, o que implica a necessidade de planejar as interfaces de programação de aplicativos para lidar com um aumento de solicitações sem comprometer o desempenho. Alguns métodos incluem a utilização de cache e balanceadores de carga, assim como assegurar que a infraestrutura subjacente possa alocar recursos de forma dinâmica à medida que a demanda cresce.

Paráfrase: Modularidade envolve a criação de APIs como um conjunto de serviços independentes que podem ser desenvolvidos, implantados e escalados separadamente. Essa separação reduz a complexidade, facilita a manutenção e promove a reutilização do código.

O estado está de acordo com os princípios RESTful, o que significa que as APIs não devem manter informações entre as solicitações. Essa abordagem de design é benéfica, pois a falta de estado melhora a escalabilidade e a confiabilidade, permitindo que os servidores dentro do cluster lidem com cada solicitação de forma independente.

A eficiência no tratamento de dados envolve a otimização do tamanho dos pacotes de dados enviados de volta ao solicitante. As respostas da API devem ser concisas, eliminando informações desnecessárias para reduzir a latência e o consumo de largura de banda.

Observação e avaliação

Muitas pessoas que desenvolvem e implementam APIs não conseguem prever quando a API atingirá seu limite de capacidade, levando-a a não responder rapidamente. Elas possuem pouca compreensão sobre o desempenho da API em situações de estresse variadas. A única forma de descobrir isso é por meio do monitoramento, testes e análise de métricas para determinar se a API está verdadeiramente otimizada, conforme os princípios abordados anteriormente.

VEJA TAMBEM:  O Manifesto Ágil era visionário em relação à sua época.

Eu sugiro as métricas de performance a seguir:

  • Mantenha um acompanhamento contínuo da Latência da API, que representa o intervalo de tempo necessário para que uma solicitação percorra do cliente até o servidor e para que a resposta retorne ao cliente.
  • Avaliar a taxa de transferência significa contar o total de mensagens entregues com sucesso em um intervalo de tempo específico, o que possibilita a análise da eficiência da API.
  • Analise as taxas de erro da API para antecipar possíveis problemas de confiabilidade. Um grande número de erros indica a existência de falhas que precisam ser identificadas e corrigidas.

Com base na grande quantidade de sistemas de nuvem que tenho encontrado, parece que estamos com dificuldades no que diz respeito ao planejamento, criação e funcionamento das APIs. Possivelmente, o design de APIs não recebe a devida atenção em muitos cursos de capacitação em desenvolvimento de sistemas em nuvem, ou é abordado de forma superficial.

Como podemos desenvolver sistemas em nuvem mais eficientes, que consomem menos recursos e ainda oferecem um desempenho superior ou equivalente, é necessário aprimorar todos os componentes de um aplicativo ou conjunto de aplicativos. Atualmente, a API desempenha um papel fundamental e deve receber maior prioridade durante o desenvolvimento. Será que isso é pedir muito?

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui