Aplicações Modernas, por que utilizar ? ( AppMod Parte 1)

Jaime Nagase
4 min readMar 10, 2024

--

Imagine só: "numa quinta-feira qualquer, lá pelas 14:00, a TechCorp viveu um daqueles momentos de fazer o coração parar: um baita incidente tecnológico sacudiu o sistema de e-commerce da firma, tudo por conta de uma confusão das boas entre dois times de devs, o Alfa e o Beta. Cada um na sua, mexendo no código sem nem sonhar que o outro também estava aprontando das suas, e claro, sem trocar aquele papo reto sobre o que estavam fazendo. Falha clássica de comunicação!

A Mariana Silva, chefe do time Alfa, e sua turma estavam toda animada implementando uma nova função pra sugerir produtos, tudo feito em Python, que chique! Do outro lado, tinha o João Pedro Rocha com o time Beta, também se aventurando no Python, mas mexendo no sistema de pagamentos. E não é que os dois resolveram atualizar o sistema no mesmo horário? Sem testar se uma mudança afetava a outra, claro.

E não deu outra: o sistema de e-commerce caiu que nem jaca podre. A mistura explosiva das mudanças de cada time criou um erro “TypeError” que deixou as transações todas emperradas. Quando perceberam a lambança, os times de Operações, Alfa e Beta começaram a caçar o erro feito cachorro atrás de osso, mas descobrir onde a coisa tinha desandado de verdade levou um tempão.

Depois de revirar logs e fazer aquela investigação digna de série policial, lá pelas 16:00, começaram a juntar os pontinhos e perceberam que o caos tinha começado logo depois que os dois times fizeram suas atualizações. E aí, meus amigos, foi um tal de testar código pra lá e pra cá até que, finalmente, às 18:00, acharam o bendito problema. A solução? Desfazer as mudanças do time Alfa, que era o caminho mais rápido pra trazer o sistema de volta à vida.

E assim, depois de quatro horas de sufoco, a TechCorp viu seu e-commerce respirar de novo. E o que ficou dessa história toda? Uma lição valiosa sobre a importância de uma boa conversa entre os times e de testar tudo antes de mandar ver nas atualizações. Ah, esses dias agitados no mundo da tecnologia!

Sim, amigos, aquele clássico caso de “quando a esquerda não sabe o que a direita está fazendo” resultou em um belo apagão virtual de quatro horas. E, oh, a conta não foi barata, viu? A brincadeira custou uns $2.400 só de hora extra, porque, né, teve uma galera que teve que ralar fora do expediente pra consertar a bagunça. Imagina só, 12 pessoas correndo contra o tempo a $50 a hora cada uma.

Mas calma que tem mais. Durante essa confusão toda, a TechCorp viu $20.000 voarem janela afora porque, poxa, ninguém conseguia comprar nada. E isso só fala das perdas imediatas, sem nem tocar naquele estrago a longo prazo na vibe dos clientes com a marca. Porque, né, a galera não perdoa e foi correndo pro Twitter e afins desabafar, o que definitivamente não ajuda na fama da empresa. A moral da história? Essa confusão toda foi um baita toque pra TechCorp sacar a importância de todo mundo se falar direitinho, testar as coisas antes de jogar pro mundo e, claro, manter o sistema de pé, mostrando que um pouco de organização e prevenção pode salvar não só a reputação, mas também uma bela grana. Ah, a vida corporativa, sempre cheia de aventuras e aprendizados!"

A TechCorp assim como outras empresas possuem o desafio constante de implementar, criar e desenvolver aplicações com foco em resiliência, eficiência de custo, alta disponibilidade e principalmente com foco em agilidade. A agilidade é um fator primordial para as empreas, pois ela é um diferenciador de mercado, dando a empresa a oportunidade lançar produtos ou funcionalidades antes dos concorrentes, o que chamamos de time to market.

Mas afinal o que seria essas tais Aplicações Modernas (ou AppMod)? AppMod principalmente dentro da Cloud possue a capacidade de entregar todos os benefícios listados acima, porém a criação e o desenvolvimento dessas aplicações dependem única exclusivamente dos arquitetos e desenvolvedores de sistemas que precisam utilizar as melhores tecnologias de Cloud com foco nesses pilares listados. As aplicações modernas se baseiam em conceitos como:

  • baixo acoplamento entre seus componentes;
  • alta velocidade desenvolvimento;
  • baixa ou nenhuma carga cognitiva de gerenciamento e manutenção de aplicações e infraestrutura;
  • entrega contínua de valor agregado ao cliente.

Se as aplicações modernas entregam tudo isso, por que uma aplicação tradicional não pode entregar a mesma coisa? Mas primeiro quais as características de uma aplicação tradicional:

  • Normalmente é uma aplicação monolítica, que assim possui um alto acoplamento entre os componentes;
  • Possui três camadas: 1/ Front-End, 2/ Back-End e 3/ base dados;
  • As Janelas de mudança são bem definidas e esparças;
  • Toda a aplicação é desenvolvida, construída, e implantada como uma única entidade e todo o desenvolvimento é geralmente feito usando uma única pilha tecnológica ou linguagem de programação;
  • Escalar uma aplicação monolítica geralmente significa replicar o aplicativo inteiro em múltiplos servidores ou ambientes;
  • Atualizar uma parte do sistema pode exigir a reconstrução e a implantação de todo o aplicativo;

Concluindo, quando comparamos as duas arquiteturas desta forma, a TechCorp teria tido um incidente com menor impacto, pois o erro poderia ter acontecido em um único componente e não teria impactado o sistema todo, tendo assim uma maior disponibilidade do sistema todo. Além disso a TechCorp teria outras vantagens:

  • Escalabilidade por componente;
  • Agilidade e menor dependência entre os times em suas histórias;
  • Alta disponibilidade do sistema;
  • É uma eficiência de custos maior;

--

--