Frequentemente usamos a analogia de "pensar fora da caixa" como uma forma de incentivar o pensamento criativo. É um clichê neste ponto, mas pode ser eficaz, especialmente quando você o leva tanto no sentido literal quanto no figurado.
Literalmente falando, uma caixa é uma caixa. Sua composição material não altera sua forma ou função. Uma caixa de papelão ainda é uma caixa. É mais flexível que uma caixa de madeira, mas ainda é uma caixa.
Aplicar isso à entrega de aplicativos nos dá a percepção de que uma caixa de software ainda é uma caixa. Mais flexível, sim. Mais frágil também. Mas no final das contas, ainda é uma caixa. E o futuro da entrega de aplicativos pertence àqueles que pensam fora da caixa literal e figurativa.
Por quase quinze anos, o controlador de entrega de aplicativos — uma caixa — tem sido o centro das tentativas das organizações de dimensionar e proteger aplicativos. Mesmo quando entramos na era das estratégias "software-first", as soluções oferecidas no espaço de entrega de aplicativos ainda são baseadas em uma caixa de software na rede.
E para uma porcentagem significativa de organizações e aplicativos, essa abordagem é — e continuará sendo — a correta. Porque a maioria das organizações é multigeracional. Eles estão dando suporte a quatro e cinco gerações de arquiteturas de aplicativos, algumas das quais continuarão a depender dessas caixas. Mas para outras aplicações, especialmente as modernas e nativas da nuvem, é hora de pensar fora da caixa.
Os aplicativos modernos não estão mais restritos a um único servidor e à entrega em uma única rede. Os aplicativos não são softwares monolíticos hoje em dia, eles são sistemas fracamente acoplados e altamente distribuídos — dos quais 70% são componentes reutilizáveis (e frequentemente de código aberto) (Fonte: Chapéu Branco ). Considere o consumo de componentes entregues como um serviço para funcionalidade especializada, como mapas e imagens. A ascensão da computação em nuvem — em particular seu modelo de custo baseado em utilidade — criou uma nova economia de mercado na qual a especialização em nível de componente pode ocorrer. O design de aplicativos modernos aproveita o poder da especialização e permite que os desenvolvedores se concentrem em recursos que agregam valor ou oferecem vantagem competitiva com pouco ou nenhum investimento.
O consumo de componentes altamente distribuídos e as economias de escala da nuvem garantiram que "a rede" agora seja "as redes". Hoje, as organizações dependem da nuvem pública, com 60% empregando de dois a seis provedores diferentes. Quase metade (44%) dessas organizações implantou mais de um quarto (25%) de seu portfólio de aplicativos nesses ambientes (Fonte: F5 | Estado dos Serviços de Aplicação 2019).
Então, é hora de pensar fora da caixa também na entrega de aplicativos.
Os princípios que orientaram o design do ADC foram baseados em arquiteturas tradicionais de rede e aplicação da época. Ambos eram limitados por limitações de rede e computação, exigindo uma abordagem agregada que limitava o acesso à rede externa. A latência associada à atividade de rede era muito alta para fornecer a velocidade e a confiabilidade necessárias para gerar confiança na rede — e, por extensão, na Internet — como um meio viável para os negócios. A rede se tornou rápida o suficiente para suportar comunicação baseada em API e alta disponibilidade. A Internet evoluiu para suportar velocidades nas quais o controle operacional pode ser realizado em vários ambientes.
A estabilidade e a velocidade da rede hoje permitem que a entrega de aplicativos entre em uma nova era na qual a rede nos permite atuar como um sistema distribuído e escalável. Em vez de um sistema implantado em uma caixa, a entrega de aplicativos pode evoluir para adotar um design moderno baseado em pilha. Agora ele pode ser distribuído para aproveitar melhor os avanços em tecnologia e design de software dos últimos quinze anos.
Ao aproveitar a capacidade dos contêineres e da orquestração de contêineres para fornecer mecanismos semelhantes aos do gerenciamento de processos e tratar a rede como se fosse mais como pipes nomeados entre processos, podemos projetar uma arquitetura perfeitamente escalável e infinitamente extensível para entrega de aplicativos. Podemos aproveitar os melhores componentes de software da categoria que atendem à demanda não apenas por observabilidade e orquestração, mas também pela facilidade de integração com análises operacionais e cadeias de ferramentas de implantação automatizadas. Podemos compor caminhos de dados dinamicamente em vez de ficarmos presos a cabos e configurações.
Podemos reimaginar a entrega de aplicativos como uma pilha de entrega distribuída — uma pilha que não está vinculada a um software ou a uma caixa de hardware.
Para proporcionar uma mudança tão monumental na entrega de aplicativos, adotamos metodologias modernas como o Agile e adotamos abordagens e princípios de DevOps que automatizam e orquestram a integração, a construção e os testes. Esse esforço é guiado por um conjunto de princípios de design que exigem atenção não apenas à funcionalidade e aos recursos, mas também às necessidades operacionais e às realidades multinuvem. Nosso objetivo é oferecer uma "experiência inovadora" que exceda as expectativas do cliente, mantendo nosso foco em cinco características principais:
O ADC, nos bastidores, serviu para levar dezenas de milhares de clientes ao sucesso nos últimos quinze anos. Mas não foi a caixa que fez isso. Foram os serviços de aplicação e o software auxiliado pelo hardware que fizeram isso. E agora que é hora de reinventar a entrega de aplicativos, essas raízes relevantes são o motivo pelo qual estamos confiantes de que podemos fazer isso de novo, fora da caixa.
E se você está se perguntando o que queremos dizer, aqui estão alguns ótimos exemplos de como pensar fora da caixa na entrega de aplicativos: