E agora, galera, a gente vai falar sobre os princípios gerais. Esses princípios gerais, eles podem englobar todos os pilares que a gente acabou de falar. Legal? Então, vamos dar uma resumida, porque tem coisas ali que acabam sendo, eu não digo repetitivos, tá? Mas fazem muita relação com o que a gente acabou de ver. Legal? Primeira coisa, pare de adivinhar suas necessidades de capacidade ou seja para de chutar computação esse é o principal ponto você vai fazer teste de carga você vai ver o quanto você realmente está precisando utilizar tem muita gente pagando máquina mais caro na gastando mais a gastando mais não gerando mais valor para o negócio indo contra pontos de sustentabilidade conforme a gente falou simplesmente porque não conseguiu perceber que as máquinas que ele está usando são muito mais né tem muito mais poder do que ele precisa ou vice versa tá outro ponto importante sistemas de teste em escala de produção o que significa galera hoje eu consigo pegar todo todos os sistemas todos os sistemas que eu tenho que estão rodando em produção ou mesmo antes de colocar em produção consigo criar um ambiente paralelo igualzinhozinho eu consigo fazer isso. E fazendo isso, eu consigo rodar testes, eu consigo experimentar, eu consigo fazer comparações, porque somente a partir disso, eu consigo, por exemplo, chegar mais próximo da melhor capacidade computacional que eu preciso, ou os processos que eu preciso, entende? eu preciso ou os processos que eu preciso entende então criar ambientes paralelos testar cada vez mais vai sempre permitir com que você consiga melhorar outro ponto automatize a experimentação arquitetônica o que isso quer dizer pessoal lance o seguinte hoje em dia a gente tem que viver de experimentação pra gente conseguir manter o sistema evolutivo, mas para isso a gente tem que automatizar esse processo porque se cada vez que você for fazer um teste, você tiver que fazer as coisas de forma totalmente manual isso vai fazer com que você pare de experimentar porque experimentar dá trabalho. Então, tenha em mente como que eu posso trabalhar para automatizar tarefas, mesmo pontos experimentais, para que eu fique cada vez mais motivado a testar para melhorar a cada dia. Legal? Então, se for muito difícil experimentar, eu não vou experimentar. É que nem refatorar código. Se eu tiver, ter muito trabalho para refatorar algo que já está funcionando, eu não refatório. Se eu não tiver testes para refatorar, eu não refatório porque eu tenho medo daquilo quebrar. Então, quando eu automatizo as coisas, fica mais fácil e eu fico mais motivado, eu fico com menos medo de experimentar. Legal? E permita arquiteturas evolutivas, ou seja, eu experimentando e eu criando arquiteturas que elas podem crescer conforme o tempo, vai mudar completamente o jogo. Tem muitos devs que criam arquiteturas que acabam complicando muito pra você evoluir eu vou dar um exemplo simples lembra quando está falando em criar sistemas e stateful ou seja somente para você conseguir escalar horizontalmente algo você já não vai conseguir você vai ter que evoluir empilhando recursos computacionais e daí vai ficar cada mais cada dia mais difícil você conseguir por exemplo escalar mudar de arquitetura etc etc então permita que o seu sistema ele possa continuar crescendo porque sistemas continuam crescendo sistemas eles não são entregues e acabou né a gente falou, sobre total cost of ownership um tempo atrás. Legal? Guie a sua arquitetura usando dados. Tudo que você faz é computado, é registrado. Todos os logs que você tem são computados. é registrado todos os logs que você tem são computados ou seja você sabe no final do dia é baseado nos dados que você tem se você está gastando recurso a mais você está gastando recurso a menos você tem que conseguir monitorar você tem que conseguir tirar proveito de tudo que você tem disponível para que você conseguir consiga otimizar Eu vou dar um exemplo simples. Se 50% do tempo que eu estou trabalhando, ou 80% do tempo que eu estou trabalhando, eu estou usando somente 40% de CPU nas minhas máquinas, poxa, eu vou usar isso, esses dados ao meu favor, para eu conseguir diminuir o poder computacional das minhas máquinas para que eu consiga economizar e ser mais eficiente. Legal? E, por outro lado, a gente tem o nosso famoso melhorar durante os dias de jogo. O que isso significa? Atualização contínua. A sua aplicação está rodando, a sua arquitetura está rodando, e, baseado em dados, baseado no dia a dia com os desenvolvedores, baseado com as mudanças de regras de negócio na empresa, o que eu vou fazer? Eu vou conseguir otimizar cada vez mais o meu jogo. Eu vou conseguir deixar as coisas mais automáticas, eu vou conseguir gastar menos computação, eu vou conseguir apresentar ferramentas que vão conseguir melhorar a minha performance, que eu vou conseguir aumentar o meu throughput. Então, se você perceber, a cada dia que a sua aplicação no ar está rodando, todos os dias eu tenho a capacidade de melhorar um pouco mais. Legal? Ou seja, melhore a cada cada dia melhore nos seus dias de jogo legal a pessoal no meu próximo vídeo eu vou dar uma rápida navegada tá pra você no site do aws o el arquiteto tá arquiteto é a somente para te situar da onde veio todo esse conteúdo esse material, esse bate-papo que a gente está tendo e também pra eu conseguir fazer essa recomendação de leitura, é uma leitura densa, é uma leitura que dá trabalho a grande parte do material ainda está em inglês então se você tem dificuldade com o inglês bote no translator, mas não deixe de ler essa parada, legal? então vamos nessa