Aplicações Modernas, por que utilizar ? ( AppMod Parte 1)
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;