BLOG | ESCRITÓRIO DO DIRETOR DE TECNOLOGIA

Servidores de aplicações como pontos de inserção

Miniatura de Lori MacVittie
Lori MacVittie
Publicado em 13 de abril de 2020

Em uma postagem anterior, exploramos a noção de adicionar serviços de aplicativos para mudar a arquitetura de aplicativos usando um conceito que chamamos de "pontos de inserção". Para quem não acompanhou, um ponto de inserção é um local arquitetonicamente distinto no caminho do código para os dados do cliente, no qual faz sentido adicionar funcionalidades que geralmente estão fora do escopo do desenvolvimento ou são operacionalmente mais eficientes. 

Um conjunto robusto de recursos adiciona ou aprimora os aplicativos que representam as atividades comerciais atuais.

Os pontos de inserção incluem o cliente, a infraestrutura e o próprio aplicativo. Cada ponto tem seus prós e contras quando se trata de equilibrar eficiências operacionais e de custos. Por exemplo, provavelmente não é operacionalmente ou economicamente eficiente inserir um serviço de aplicativo DDoS centrado em rede no cliente ou no aplicativo. Isso ocorre porque nenhum ponto de inserção tem acesso aos recursos acelerados por hardware disponíveis com uma opção de infraestrutura nem tem a visibilidade necessária para fazer uma determinação precisa. 

Então, o que estamos procurando são serviços de aplicativos que sejam eficientes operacionalmente e economicamente no ponto de inserção; neste caso, estamos focados no servidor de aplicativos (plataforma) em si.

A plataforma de aplicativos como ponto de inserção

A princípio, esse ponto de inserção pode parecer uma escolha estranha. Servidores de aplicativos hospedam e entregam aplicativos, não serviços de aplicativos. Mas se você considerar o papel que o NGINX e outros servidores de aplicativos desempenham hoje, você verá que eles frequentemente desempenham o papel de infraestrutura e servidor ao mesmo tempo. Por exemplo, alguns servidores de aplicativos podem atuar como um ponto de terminação SSL. A terminação SSL é um serviço de aplicativo, geralmente associado ao descarregamento SSL (aceleração de hardware). Os serviços de firewall de aplicativos da Web também costumam ser acoplados a servidores de aplicativos por meio de plug-ins.

O uso do servidor de aplicativos como ponto de inserção não é novo nem estranho. Em nossa pesquisa State of Application Services de 2020, perguntamos sobre essa opção para implantar serviços de aplicativos. Descobrimos que há interesse neste ponto de inserção. Cerca de 6% dos entrevistados gostariam de usar um "plug-in" para serviços de aplicativos. Outros 9% prefeririam "como um serviço", que requer um pedaço de código complementar (injetado ou incluído) para ser invocado. Um pequeno número, 4%, gostaria de usar uma biblioteca para incluir serviços de aplicativos. Esta última opção é algo que vemos frequentemente usada para inserir funcionalidade em aplicativos sem servidor (função como serviço).

Em muitos casos, implantar um serviço de aplicativo em um servidor de aplicativo faz sentido operacional. Como esses serviços geralmente são configurados para atender a um único aplicativo, eles podem ser empacotados e implantados pela mesma equipe. A experiência com o servidor de aplicativos garante maior confiança e facilidade de integração em ecossistemas e pipelines de implantação.

Em alguns casos, fará sentido implantar o aplicativo e o serviço de aplicativo juntos, na mesma instância de um único servidor de aplicativo. Por exemplo, a proteção de aplicativos por meio de uma política específica de aplicativo pode ser conectada e executada como uma etapa no processamento de solicitações e respostas. Faz sentido que a funcionalidade seja invocada de dentro do servidor e, se a inspeção for executada localmente, pode melhorar o desempenho eliminando saltos extras e processamento por serviços hospedados fora do ambiente. Isso pode torná-lo mais eficiente tanto operacional quanto financeiramente, especialmente se você estiver pagando por hora ou invocação pelo serviço.  

Seja que o servidor de aplicativos seja usado para hospedar um serviço de aplicativo independente ou como um host para o aplicativo e o serviço de aplicativo, o servidor de aplicativos certamente é um bom ponto de inserção para os serviços de aplicativo corretos.