BLOG

Por que a entrega de aplicações deve se parecer mais com uma fábrica (e menos com uma loja de artesãos)

Miniatura F5
F5
Publicado em 11 de dezembro de 2019

Antigamente…

Na era pré-nuvem, a entrega de aplicativos era muito diferente do que é hoje. Isso porque nada se movia mais rápido do que a velocidade com que a TI conseguia adquirir e provisionar os servidores nos quais os aplicativos eram executados. O planejamento de novos aplicativos ou grandes atualizações de aplicativos levava muitos meses ou anos. Ao mesmo tempo, os aplicativos corporativos se tornaram cada vez mais complexos, com listas crescentes de interdependências que eram difíceis de rastrear e gerenciar. Surgiram ameaças de segurança que podiam paralisar sistemas inteiros por dias ou levar a vazamentos de dados que poderiam acabar com uma carreira. Mesmo sem agentes externos mal-intencionados, o risco de implementar uma mudança que colocasse a rede (e os aplicativos que ela suportava) de joelhos continuou a aumentar junto com o índice de complexidade.

Para gerenciar esses riscos e garantir a segurança e a confiabilidade de cada aplicativo sob seus cuidados, as equipes de rede e segurança desenvolveram processos e políticas que exigiam muita revisão manual e geralmente envolviam políticas elaboradas à mão, projetadas para atender às necessidades exclusivas de cada aplicativo. Embora complicados, esses procedimentos não eram necessariamente gargalos. Eles frequentemente controlavam o ritmo do processo de aquisição.

Do nada…

Então a Nuvem aconteceu. De repente, os processos de implantação começaram a parecer um empecilho para um sistema que, de outra forma, seria rápido. Na mesma época, o GitHub e outras plataformas de codificação social facilitaram a colaboração dos desenvolvedores no código, fosse dentro da mesma equipe ou em projetos de código aberto. Novas arquiteturas de aplicativos aumentaram drasticamente a eficiência do desenvolvedor ao reduzir as oportunidades de conflito entre o trabalho feito em uma parte do aplicativo e outras partes, uma grande fonte de trabalho árduo, retrabalho e atraso. As arquiteturas de microsserviços e Service Mesh reduzem as dependências entre partes do próprio aplicativo, enquanto os contêineres e o Serverless reduzem as dependências da infraestrutura subjacente, liberando desenvolvedores individuais e equipes de aplicativos para se moverem em seu próprio ritmo. Os desenvolvedores agora podem implantar aplicativos em minutos, em vez de meses. Inicialmente, essas implantações eram restritas a projetos de desenvolvimento e teste, mas a demanda por acesso mais rápido aos sistemas de produção cresceu rapidamente.

Transformação Digital: Um trabalho em andamento

Administradores de rede e engenheiros de segurança tiveram dificuldades para acompanhar, em parte porque, diferentemente dos desenvolvedores, sua experiência profissional se concentrava em manter a empresa segura, em vez de otimizar os fluxos de trabalho. Para os desenvolvedores, muitos dos principais conceitos por trás do que veio a ser conhecido como movimento DevOps já eram naturais: automatizar processos, otimizar sistemas, reduzir dependências entre sistemas e aproveitar processos e códigos reutilizáveis sempre que possível. Administradores de rede e engenheiros de segurança, por outro lado, foram treinados como artesãos. A natureza crítica do trabalho deles exigia que cada aplicação fosse tratada com revisões manuais, mantida com comitês de revisão de mudanças e gerenciada por meio de políticas elaboradas manualmente, que pudessem ser atualizadas (manualmente) em resposta a mudanças nas condições.

A boa notícia é que, apesar de começar a corrida bem atrás dos desenvolvedores em termos de compreensão dos processos de implantação automatizados, as equipes de rede e segurança estão se atualizando .

A Fábrica de Aplicações: Aplicando uma mentalidade de sistemas à entrega de aplicativos

Uma boa maneira de pensar sobre a transição é imaginar uma fábrica de aplicativos. Em vez de políticas elaboradas manualmente e processos de revisão manual, especialistas em rede e segurança precisam definir políticas reutilizáveis e, em seguida, enviá-las aos desenvolvedores para implantação com seus aplicativos como parte de um pipeline de implantação automatizado.

É verdade que é mais fácil falar do que fazer. Assim como a mudança de produtos artesanais para produtos produzidos em fábricas não foi simplesmente uma questão de comprar equipamentos pesados e realocar trabalhadores para novas funções, a mudança para uma abordagem sistêmica tem tanto a ver com mentalidade e cultura quanto com ferramentas e processos. Em vez de comitês de revisão de mudanças e equipes de segurança investigando laboriosamente todos os possíveis vetores de ameaças à segurança e riscos de desempenho, um sistema de entrega de aplicativos automatizados bem projetado mantém os domínios de falha pequenos para minimizar o impacto e cria ciclos de feedback eficazes para permitir detecção e resposta precoces. As decisões sobre ferramentas e pipeline devem equilibrar a liberdade do desenvolvedor com o valor de eficiência de serviços consistentes. O sistema ideal oferece aos desenvolvedores a máxima liberdade para tomar decisões sobre ferramentas que impactam o desenvolvimento de recursos, mas fornece um conjunto consistente de infraestrutura e serviços de segurança com capacidade para várias nuvens. A integração de serviços consistentes no núcleo do pipeline de entrega de aplicativos reduz a dívida técnica e melhora a eficiência operacional e de conformidade. Isso, por sua vez, libera os desenvolvedores para se concentrarem em entregar mais valor de inovação ao negócio.

(Veja o infográfico completo do F5 Application Factory clicando na imagem abaixo.)