O vice-presidente e diretor de tecnologia da Amazon, Dr. Werner Vogels, foi a estrela do keynote do último dia do AWS re:Invent 2023. Vogel fez uma apresentação cheia de referências a Matrix e seu Arquiteto, apresentando o conceito do que chama The Frugal Architect: uma série de regras a serem seguidas durante o desenvolvimento de aplicações, que garantem que o custo de operação não esteja diretamente associado à evolução e ao crescimento do negócio.
Ao todo, são 7 regras:
1 – Faça do custo do projeto um requisito não funcional: muitas empresas falham porque não consideram os custos em todas as fases do negócio – desde a concepção ao desenvolvimento e à operação – ou porque não os medem adequadamente. A matemática é simples: se os custos são superiores à sua receita, o negócio está em risco.
2 – Os sistemas devem estar alinhados aos custos do negócio: a durabilidade de um sistema depende do quanto seus custos estão em linha com o modelo de negócios. Ao projetar e construir sistemas, deve-se considerar as fontes de receita e as alavancas de lucro. É importante encontrar a dimensão de onde virá a receita e, em seguida, certificar-se de que a arquitetura acompanha o dinheiro.
3 – Toda arquitetura traz uma série de compensações: na arquitetura, toda decisão traz ou exige uma compensação. Custo, resiliência e desempenho são requisitos não funcionais que muitas vezes estão em conflito entre si. Ser capaz de se defender contra o fracasso significa investir na resiliência, mas o desempenho pode pagar o preço.
4 – Sistemas não monitorados levam a custos desconhecidos: sem monitoramento e métricas, os verdadeiros custos de operação de um sistema ficam invisíveis. Tornar os medidores visíveis pode mudar os comportamentos e, embora a observação exija investimento, rastrear a utilização, gastos e erros, por exemplo, é crucial para o gerenciamento de custos.
5 - Arquiteturas com reconhecimento de custos levam ao controle de custos: a essência da arquitetura frugal é o monitoramento robusto combinado com a capacidade de otimizar custos. Sistemas bem projetados permitem que você tome medidas sobre oportunidades de melhoria. Para que isso funcione, é preciso decompor os aplicativos em blocos de construção ajustáveis e hierarquizá-los: os componentes do nível 1 são essenciais; otimizar independentemente do custo. Os componentes do nível 2 são importantes, mas podem ser temporariamente reduzidos sem grande impacto. Os componentes do nível 3 são “agradáveis de se ter”, por isso, torne-os de baixo custo e facilmente controláveis.
6 – A otimização de custos é incremental: a busca pela eficiência de custos é uma jornada contínua. Mesmo após a implantação, é preciso revisitar os sistemas para melhorar gradativamente a otimização. A chave é questionar sempre e mergulhar mais fundo. As linguagens de programação fornecem ferramentas de criação de perfil para analisar o desempenho do código e permitem análises granulares que podem levar a alterações que economizam milissegundos. Isso pode parecer uma pequena otimização, mas se acumula em grandes economias quando em escala.
7 - O sucesso incontestado leva a suposições: quando as equipes de software alcançam um sucesso significativo sem enfrentar grandes falhas ou obstáculos, a complacência pode se instalar, criando uma tendência perigosa de se tornarem excessivamente confiantes nos métodos, ferramentas e práticas que levaram a essas vitórias.
Depois de apresentar o conceito, Vogel voltou à Matrix, onde visitou o Oráculo, com uma mensagem importante. “Para prever o futuro, observe o presente, porque o futuro é agora”, diz.