Blog Agility

Application-driven: definindo seus recursos de acordo com as necessidades da aplicação

Application-driven: definindo seus recursos de acordo com as necessidades da aplicação

Entenda como uma nova visão de desenvolvimento e alocação de recursos computacionais pode proporcionar uma melhor experiência ao usuário final ao mesmo tempo em que poupa investimentos em infraestruturas na nuvem.

Houve uma época na qual desenvolver um software era uma tarefa não apenas desafiadora, mas também burocrática. Antes mesmo que uma linha sequer de código fosse escrita, era necessário levantar todas as necessidades operacionais para que aquela aplicação fosse entregue ao usuário final com o melhor desempenho possível, garantindo os maiores níveis de Acordo de Nível de Serviço (Service Level Agreement ou SLA). Isso se traduzia, basicamente, em investimentos gigantescos em data centers poderosos (visando otimizações futuras) e em uma infraestrutura de rede capaz de “aguentar o tranco”.

Claro, nem sempre os desenvolvedores eram capazes de alcançar tudo aquilo que queriam. Visto que a infraestrutura era conduzida pela aplicação, nem sempre o budget para a aquisição dos equipamentos necessários para a construção do data center estava à altura dos planos. Felizmente, a computação na nuvem e sua flexibilidade alterou radicalmente esse cenário — com poucos cliques no mouse, é possível poder computacional e armazenamento no formato de serviço, com recorrência mensal, a custos bem menores em comparação com tecnologias legadas.

Armados com arquiteturas de microsserviços, os desenvolvedores agora têm a capacidade de entregar suas aplicações com maior agilidade seguindo o modelo de integração e implementação contínuas (continuous integration e continuous deployment ou simplesmente CI/CD). Ainda assim, isso não impede que surjam contratempos em relação às necessidades técnicas de infraestrutura e nem desperdício de budget com a contratação de mais poder computacional do que é necessário no momento. Isso também está prestes a mudar com as infraestruturas e redes application-driven.

A era da Otimização Contínua

A abordagem application-drive, como seu nome sugere, posiciona tanto as redes quanto as infraestruturas computacionais em segundo plano, sendo ambas conduzidas pelas necessidades da aplicação. Afinal, diante de todas as inovações tecnológicas que estamos presenciando, por que a própria infraestrutura já não poderia ser capaz de determinar como otimizar seu próprio desempenho, disponibilidade e custo de acordo com as evoluções do projeto e mudanças de demanda?

Hoje, o mercado já começa a oferecer esse tipo de solução para adicionar à esteira de desenvolvimento a otimização contínua (continuous optimization ou CO), criando assim a tríade CI/CD/CO. Uma plataforma de Infraestrutura Baseada em Aplicação (Application Driven Infrastructure ou ADI) é capaz de “traduzir” os padrões das cargas de trabalho das aplicações e automaticamente realizar o ajuste fino em seu provedor de serviços na nuvem, por exemplo, garantindo uma entrega eficiente e reduzindo custos. Tudo através do uso de APIs integradas que podem ser operadas pela própria equipe de desenvolvimento.

Redes abertas e flexíveis

Claro, com tanta complexidade em múltiplos ambientes na nuvem, as redes também precisam se adaptar para seguir a abordagem application-driven. Tipos de redes legadas não foram projetadas para atender aos requisitos técnicos e distribuir recursos para os componentes de aplicações na nuvem. Dessa forma, o mercado também está reagindo para substituir a antiga esquemática de orquestração de Redes Definidas por Software (Software Defined Network) para as Redes Baseadas em Aplicação (Application Driven Network).

A ideia aqui é que cada aplicativo se conecte a um segmento da rede com sua própria arquitetura de rede e segurança para satisfazer os seus exatos requisitos. Temos três pontos-chave nesse tipo de arquitetura e o primeiro deles é que elas devem ser centradas na aplicação (apps sem servidores e até microsserviços devem ser capazes de residir em qualquer lugar da rede, que, por sua vez, pode ser gerenciada como código dentro dos processos de DevOps existentes).

Em segundo lugar, a arquitetura deve ser flexível (com funcionalidades agnósticas funcionando a partir de qualquer tecnologia, como ethernet, 4G/5G, circuitos privados, redes em nuvem etc., além da agilidade em sua implementação a partir de qualquer lugar) e, em terceiro, aberta (possibilitando sua configuração, gerenciamento e monitoramento via APIs e fácil integração com outros componentes em seu ecossistema de parceiros).

Uma abordagem para o novo normal

Em resumo, estamos partindo de um antigo cenário no qual as aplicações precisavam se adaptar a uma rede e infraestrutura para um panorama inverso — tudo é feito e adaptado para comportar as necessidades de uma aplicação.

Trata-se de uma tendência esperada, uma vez que a transformação digital acelerada nos mostrou a criticidade de ter uma presença online consistente e robusta. Essa nova abordagem também traz mais segurança, garantindo que todos os requisitos para um projeto que seja seguro por desenho sejam sempre cumpridos, independentemente do aumento ou redução na demanda de uso.

Conheça as soluções Agility de Serviços Gerenciados: https://somosagility.com.br/sobre-servicos-gerenciados/