BLOG

Superando a Divisão: Arquiteturas Tradicionais e Modernas

Miniatura de Lori MacVittie
Lori MacVittie
Publicado em 17 de abril de 2019

Estamos no meio de uma mudança significativa nas arquiteturas de aplicativos. De acordo com a Cisco (Índice Global de Nuvem: 2016-2021), 85% das novas instâncias de carga de trabalho de aplicativos são baseadas em contêineres. Isso implica que eles estão sendo projetados e desenvolvidos usando arquiteturas de aplicativos modernas que dependem fortemente de princípios de microsserviços e API-first. Essa arquitetura é marcadamente diferente da arquitetura web tradicional de três camadas que domina o espaço de aplicativos desde que a Internet surgiu como um meio confiável de fazer negócios.

Mas as aplicações tradicionais também não vão desaparecer. Estudos mostram que aplicações tradicionais (legadas) têm uma vida útil maior do que muitas carreiras, chegando a 20 anos. De fato, uma pesquisa da BMC descobriu que mais de 51% dos entrevistados tinham mais da metade de seus dados residindo em um mainframe. Os entrevistados indicaram ainda aumentos nos volumes de transações (59%), volumes de dados (55%) e velocidade de mudança de aplicativos (45%).

Essas arquiteturas são divididas por muitas características, incluindo escolhas tecnológicas.

Aplicativos tradicionais dependem de servidores web, servidores de aplicativos e bancos de dados relacionais. Contêineres, mecanismos de aplicativos e bancos de dados NoSQL são as principais opções para o desenvolvimento moderno. Os aplicativos tradicionais residem principalmente no local e aproveitam os recursos compartilhados. Os aplicativos modernos estão na nuvem e esperam que os recursos sejam dedicados apenas a eles.

Também encontramos contraste nas arquiteturas usadas para fornecer os serviços dos quais todos os aplicativos dependem para reforçar a segurança, garantir a disponibilidade e melhorar o desempenho. Para deixar claro, a divisão não se baseia realmente no uso de serviços de aplicativos, mas na eficiência das plataformas que os fornecem.

Capacidade e Conexões

A eficiência é o resultado número um desejado da transformação digital, de acordo com nosso State of Application Services 2019. 70% das organizações citaram a otimização de TI (eficiência) em detrimento de benefícios mais "famosos", como vantagem competitiva (46%) e novas oportunidades de negócios (45%). Na pesquisa State of the CIO de 2019, 40% dos entrevistados disseram que aumentar a eficiência operacional será a iniciativa mais significativa para impulsionar o investimento em TI neste ano.

Eficiência é importante. O problema é que, junto com a divisão entre arquiteturas tradicionais e modernas, surge uma divisão na maneira como definimos eficiência.

Arquiteturas de entrega tradicionais medem a eficiência com base em valores transacionais, como custo por conexão. Os sistemas foram construídos com base na premissa de infraestrutura e recursos compartilhados que exigiam plataformas altamente confiáveis e escaláveis para fornecer serviços de aplicativos. Uma única plataforma de entrega de aplicativos atua como porta de entrada para uma média de mais de 130 aplicativos diferentes. Sua eficiência é baseada no custo por conexão (capacidade) e, de modo geral, quanto menor, melhor. A complexidade é aceitável desde que seja alcançada alta capacidade.

A abordagem nativa da nuvem e baseada em contêineres para aplicativos aponta para uma explosão de “aplicativos” que exigem a mesma segurança e escala de seus predecessores monolíticos. Não se espera mais que um único aplicativo seja escalável para milhões de conexões. Em vez disso, esses milhões de conexões serão distribuídas entre centenas (ou milhares) de aplicativos de menor porte. Os serviços de aplicativos não precisam ser dimensionados para milhões de conexões porque os “aplicativos” não são mais dimensionados verticalmente, eles são dimensionados horizontalmente. Cada um é responsável por apenas uma pequena fatia das conexões gerais. Os serviços de aplicação que distribuem essas conexões, portanto, também não exigem uma capacidade tão alta.

Rapidez, Simplicidade e Segurança

Em vez disso, a eficiência é medida com base na simplicidade e na velocidade. Mudanças rápidas e frequentes precisam ser feitas para satisfazer o crescente apetite da economia digital. Impressionantes 62% dos entrevistados no Relatório de Orquestração de Contêineres e Nuvem do SDxCentral de 2017 implantam contêineres para obter uma velocidade de "aumento e redução mais rápida". Quase metade (47%) implanta contêineres especificamente por causa do gerenciamento mais fácil. Os serviços de aplicativos devem ser fáceis e rápidos de obter, implantar e operar em arquiteturas modernas. É por isso que o código aberto domina a cadeia de ferramentas de CI/CD e torna o NGINX uma ferramenta tão atraente para muitas comunidades de desenvolvedores e DevOps.

Plataformas de entrega modernas não são tão eficientes em arquiteturas tradicionais, e plataformas de entrega tradicionais não são tão eficientes em arquiteturas modernas. Isso é particularmente evidente quando olhamos para a segurança dos aplicativos. A segurança de aplicativos é projetada principalmente para impedir que ataques externos (públicos) atinjam aplicativos, servidores e fontes de dados. A segurança de aplicativos eficaz — e eficiente — faz isso o mais próximo possível da origem do ataque. Quando um ataque ou carga maliciosa é detectado por um aplicativo, geralmente já é tarde demais. Recursos foram consumidos. O malware foi entregue. O código malicioso já foi implantado.

Em termos de arquitetura, isso geralmente significa que a segurança do aplicativo é implantada de forma mais eficiente em uma arquitetura tradicional (NS) para evitar que tráfego malicioso alcance aplicativos em execução em qualquer tipo de ambiente (moderno ou tradicional).

Superando a Divisão

Resumidamente, isso resume a divisão arquitetônica existente que buscaremos preencher com a aquisição da NGINX . Os clientes precisam de opções para arquiteturas de entrega tradicionais e modernas para satisfazer sua própria equação de eficiência. Vemos a necessidade de ambos para permitir que os clientes reduzam a distância entre as arquiteturas tradicionais (NS) e modernas (EW).

Hoje, ambas as arquiteturas são válidas e necessárias para que as empresas tenham sucesso na entrega de recursos digitais de forma mais rápida e frequente e, mais importante, da maneira mais eficiente possível para dar suporte ao seu ativo mais valioso: um portfólio multigeracional de aplicativos. Acreditamos que agora é o momento de eliminar essa lacuna reunindo o melhor das arquiteturas de entrega tradicionais e modernas.

Para saber mais sobre as vantagens de unir o F5 e o NGINX, confira uma postagem do CEO do F5 apresentando a série de blogs "Bridging the Divide".