As arquiteturas de aplicativos evoluíram diversas vezes desde os primórdios da computação. Para algumas empresas de longa vida, elas estão em sua quinta arquitetura de aplicativo distinta. Muitos estão operando e mantendo aplicativos em cada um deles hoje. A saber, as descobertas do nosso próximo State of Application Services em 2020 indicam que esta é a realidade em que a maioria das organizações opera:
Cada arquitetura de aplicativo tem um impacto drástico em tudo o que ocorre "upstream": arquiteturas de rede, tecnologias, segurança e serviços de aplicativos (entrega). No centro da mais recente mudança arquitetônica — os microsserviços — está um conceito que podemos chamar de "atomização" ou "componentização". Ambos se referem essencialmente ao processo de dividir um aplicativo em componentes menores e gerenciáveis com o objetivo de melhorar o tempo de colocação no mercado, a qualidade do código e a agilidade.
Nas gerações anteriores de arquiteturas de aplicativos, a rede continuou sendo o ponto mais eficiente para inserir certos tipos de serviços de aplicativos. Até recentemente, o proxy era o principal meio pelo qual esses serviços eram inseridos no caminho de dados que vai do aplicativo ao cliente.
Mas esse caminho de dados está se decompondo junto com as arquiteturas de aplicativos modernos. Agora, ele abrange a Internet, as propriedades da nuvem e o data center. Inclui cada vez mais o cliente como um componente crítico da funcionalidade do aplicativo.
Portanto, não é mais ideal depender apenas de um único caminho de dados conhecido para inserir serviços de aplicativos. Além disso, como muitos dos caminhos de dados emergentes não são adequados para uma plataforma baseada em proxy, precisamos analisar outros pontos potenciais de inserção possíveis para dimensionar e proteger aplicativos modernos.
A noção de 'inserir' serviços de aplicativos em um caminho de dados nos dá uma maneira simples de descrever essa visão moderna de implantação de serviços de aplicativos: pontos de inserção.
Neste modelo, distinguimos entre um ponto de inserção tradicional (o proxy) e outros locais, como o servidor de aplicativo/web e o dispositivo cliente. Cada local possui diversos formulários adequados para inserção de serviços de aplicação.
No ponto de inserção de rede tradicional, você encontrará serviços de aplicativos baseados em proxy, bem como seu equivalente moderno: o proxy sidecar que forma a base de algumas soluções de malha de serviço. Ambos são implantados "na rede" e, portanto, exigem acesso a esse local, independentemente do formato (contêiner, software, hardware).
Os proxies continuam sendo um meio eficiente de inserir serviços de aplicativos. O maior impacto das arquiteturas de aplicativos modernos nos proxies hoje é seu foco. Enquanto os proxies tradicionalmente hospedam serviços de aplicativos para muitos aplicativos, as arquiteturas atuais exigem uma abordagem mais por aplicativo. Dessa forma, os proxies estão sendo arquitetados em aplicativos e suas infraestruturas e tendem a ter um foco muito mais granular do que as soluções de proxy anteriores.
Como nem todos os aplicativos e ambientes oferecem esse acesso (pense em SaaS), buscamos pontos de inserção alternativos onde os serviços de aplicativos podem ser implantados. Nós chamamos esses pontos alternativos de "sem proxy" porque eles não exigem nem dependem de um proxy para implantação e execução. Esses serviços podem assumir a forma de agentes tradicionais (software implantado como parte do servidor ou aplicativo) ou podem assumir uma forma mais amigável ao desenvolvedor de opções baseadas em código. Código injetado, como bibliotecas JavaScript ou plug-ins de servidor web e navegador, são bons exemplos de pontos de inserção nesses locais alternativos.
Muitos dos serviços de aplicativos podem ser entregues "como um serviço", ou seja, hospedados como uma oferta baseada na nuvem. A inserção ainda requer acesso para invocar esses serviços; portanto, é raro que tais serviços sejam incluídos em um aplicativo sem alguma forma de inserção por meio de código ou artefato de configuração.
Dado esse novo cenário moldado por arquiteturas de aplicativos modernas, a resposta para onde os serviços de aplicativos se encaixam é, cada vez mais, em todos os lugares onde um aplicativo — ou parte de um aplicativo — pode residir. À medida que as arquiteturas de aplicativos se decompõem, o mesmo ocorre com os serviços de aplicativos usados para dimensionar, proteger e acelerar a entrega de componentes de aplicativos.
A expansão dos pontos de inserção é apenas uma das etapas evolutivas necessárias para dar suporte às necessidades futuras de telemetria e automação mais inteligente. À medida que as organizações continuam a trilhar o caminho da transformação digital , os serviços de aplicativos também continuarão a se expandir e evoluir.