Alura > Cursos de DevOps > Cursos de Arquitetura & Platform Engineering > Conteúdos de Arquitetura & Platform Engineering > Primeiras aulas do curso Performance: decisão arquitetural, latência e cache

Performance: decisão arquitetural, latência e cache

Desempenho como decisão arquitetural - Introdução

Apresentando o curso e o instrutor

Olá! Seja bem-vinde a mais um curso da carreira de arquitetura de soluções na Alura. Neste curso, nós vamos aprender a construir e a conceber projetos de sistemas complexos, sempre com atenção ao desempenho. Vamos estudar boas práticas e técnicas para projetar sistemas prevenindo problemas de desempenho de forma adequada em todo momento.

Falando um pouco sobre mim, eu sou Vinícius Martins.

Audiodescrição: Vinícius veste uma camisa preta, tem barba castanho-escura e cabelo castanho-escuro.

Sou graduado em Análise de Sistemas desde 2007. Fiz um MBA em Gestão de Projetos de TI, concluído em 2016. Passei por mais de cinco grandes empresas como pessoa arquiteta de soluções ou pessoa arquiteta corporativa e, hoje, em 2026, tenho mais de 15 anos de experiência atuando para grandes empresas ou grandes consultorias de TI.

Revisando os cursos anteriores

Seguindo, é importante revisitar o que já vimos até aqui. Isso nos ajuda a conectar como vale a pena seguir a trilha adequada dos cursos precursores para tratarmos de desempenho na arquitetura de sistemas.

Definindo o foco e o escopo do curso

Agora, vamos falar sobre o que vamos aprender neste curso, tratando desempenho como decisão arquitetural.

Nesta introdução, indicamos que muitos temas e tópicos que trataremos ao longo do curso são densos e têm um nível de profundidade que poderíamos ampliar. No entanto, sempre que falarmos de desempenho aqui, será no que diz respeito à arquitetura de sistemas — desempenho para arquitetura de sistemas. Abordaremos assuntos avançados e densos sobre os quais poderíamos nos aprofundar mais, mas esse não é o propósito, caso contrário o curso se tornaria excessivamente extenso. Assim, os tópicos mais densos, envolvendo tecnologias ou técnicas, serão explorados até o ponto em que sejam importantes para as atribuições da pessoa arquiteta.

Neste curso sobre desempenho em arquiteturas, vamos além de ajustes finos e entenderemos o desempenho como decisão estratégica de arquitetura.

Detalhando o conteúdo das aulas

Na Aula 1, compreenderemos o desempenho para além de tuning (ajustes finos), tratando-o como uma decisão estratégica de arquitetura.

Na Aula 2, discutiremos latência percebida versus latência real, isto é, a diferença entre o que a pessoa usuária sente e o que os sistemas medem. Esta aula é especialmente importante.

Na Aula 3, trataremos de arquitetura orientada à famosa métrica Throughput (vazão). Entenderemos a diferença entre latência e vazão e como projetar sistemas para alto volume de dados e requisições de maneira adequada.

Na Aula 4, abordaremos cache como estratégia arquitetural. Se há ambição de se tornar pessoa arquiteta, ou se já se atua nessa função, é essencial atenção ao padrão cache-aside (cache ao lado). Em conteúdos de vídeo, literatura e fóruns, cache em arquiteturas tem sido um verdadeiro hype (moda) nos últimos anos, e discutiremos isso com cuidado. Em 2026, há muitos pontos relevantes a considerar porque a memória, devido ao avanço da inteligência artificial, está muito cara. O hardware (equipamento) de memória está custoso. Portanto, trataremos de cache como estratégia arquitetural e de como utilizá-lo conscientemente no desenho de sistemas, sem explodir os custos.

Na Aula 5, falaremos sobre o impacto de dados e integrações no desempenho dos sistemas. Se você é pessoa desenvolvedora e está migrando para pessoa arquiteta, provavelmente já percebe como dados e integrações afetam o desempenho; exploraremos esse impacto em detalhes.

Na Aula 6, discutiremos os trade-offs (compromissos) entre desempenho e custo. Até aqui, já teremos acionadores sobre custo, mas aprofundaremos o equilíbrio entre eficiência técnica e viabilidade financeira. Sistemas não devem custar mais do que seu propósito, isto é, do que o retorno sobre investimento que devem gerar para uma empresa, instituição, organização ou startup (empresa iniciante).

Por fim, na Aula 7, veremos arquitetura preventiva de gargalos: aprenderemos a identificar e evitar gargalos antes que aconteçam. Como pessoas arquitetas, atuaremos de forma preventiva para evitar gargalos nos sistemas.

Vamos à nossa primeira aula.

Desempenho como decisão arquitetural - Performance além do tuning

Apresentando a aula e objetivos

Aula 1 — Desempenho como Decisão Arquitetural

Vamos começar nossa primeira aula do curso Desempenho como Decisão Arquitetural. Nesta aula, vamos compreender os conceitos principais e introduzir como projetar sistemas com bom desempenho de forma adequada. Costumamos dizer que esta aula serve para estabelecer as bases do tema antes de seguirmos para as próximas.

O título desta aula, “Desempenho além do tuning (ajuste fino)”, é proposital. Nos últimos anos — nos últimos 10, talvez 15 anos — quando os sistemas começaram a se tornar mais complexos, à medida que a tecnologia foi ganhando mais camadas, como satélites, além da internet e, mais recentemente, inteligência artificial, as arquiteturas de sistemas também se tornaram mais complexas. Passou-se a falar muito em ajustar, fazer tuning (ajuste fino) de bancos de dados ou de código para melhorar o desempenho dos sistemas.

Este título é intencional porque, aqui, vamos perceber a diferença entre realizar tuning (ajuste fino) e micro-otimizações e, em vez disso, projetar um sistema de forma adequada, antecipando desempenho e escalabilidade compatíveis com a natureza de cada sistema. Nesta primeira aula, vamos aprender os conceitos principais dessa essência de construir sistemas com bom desempenho.

Antecipando os temas e a importância do desempenho

Falando sobre os temas desta aula, o primeiro é o desempenho como atributo arquitetural. Já discutimos bastante, em aulas e cursos anteriores a este, sobre atributos arquiteturais, e desempenho, sem dúvida, é um dos mais importantes.

Aqui começaremos a explorar a importância do desempenho para os sistemas nesta aula, para que possamos avançar nos próximos temas.

Evoluindo de otimizações locais para orientação arquitetural

No segundo tema, trataremos de desempenho sistêmico versus otimização localizada. Vamos direto ao que mencionamos no slide anterior: qual é a diferença entre projetar um sistema antecipando picos de uso, com atenção ao desempenho, em vez de prever ou realizar otimizações localizadas. Destacaremos a importância de, enquanto pessoas arquitetas, olharmos para o desempenho dos sistemas desde o início.

No terceiro tema, discutiremos desempenho orientado à arquitetura, e não micro-otimizações. O segundo tema serve de ponte para este terceiro, no qual deixaremos claro qual é a diferença entre realizar micro-otimizações em todos os domínios de um sistema (como dados, integrações, entre outros) e adotar um desempenho orientado à arquitetura. Ou seja, projetaremos um sistema antecipando que todo o seu ciclo de vida apresentará um desempenho satisfatório; será de alto desempenho.

Tratando requisitos técnicos e percepção de negócio

No quarto e penúltimo tema, abordaremos o desempenho como requisito não funcional, isto é, como requisito técnico. Veremos como a pessoa arquiteta deve usar seu papel para atribuir a devida importância ao desempenho dos sistemas nos projetos. É aqui que trataremos desse ponto.

No quinto tema, falaremos sobre o desempenho percebido pelo negócio. Além disso, o quarto tema é uma ponte para este quinto e último, no qual discutiremos especificamente a percepção de desempenho pelo negócio.

Vamos começar a aula?

Desempenho como decisão arquitetural - Performance sistêmica vs otimização localizada

Apresentando o tema e o papel da arquitetura

Vamos começar nosso primeiro tema da nossa primeira aula sobre Performance (desempenho) para além do Tuning (otimização).

Neste tema, nós vamos compreender as diferentes formas de atuar em problemas, em Troubleshooting (diagnóstico de problemas), e no trabalho de conceber sistemas tática e estrategicamente no que diz respeito a desempenho. Exploraremos a diferença entre atuar como pessoa arquiteta e atuar como um recurso mais técnico que contribui em áreas específicas, algo muito comum em grandes instituições, grandes empresas ou Startups (empresas iniciantes), onde é frequente haver pessoas sênior atuando na concepção de projetos de sistemas junto com arquitetos. É aqui que nós vamos separar o joio do trigo em relação à atuação da pessoa arquiteta e de outras pessoas sênior que não têm veia de arquitetura para observar o desempenho de sistemas com o devido cuidado, no contexto de arquiteturas bem construídas. Vamos perceber a forma diferente de atuação da arquitetura sobre desempenho e entender desempenho sistêmico versus melhorias de desempenho localizadas.

Apresentando cenários de otimização local ineficaz

Vamos trazer um cenário real que a pessoa arquiteta encontra, em linhas gerais, no que diz respeito ao desempenho de sistemas. Provavelmente já vimos isso acontecer no mercado, atuando como arquitetos ou como pessoas especialistas sênior dentro de alguma empresa ou instituição. A equipe de banco de dados otimiza queries (consultas) e nada muda no tempo de resposta; não se entende o que está acontecendo no sistema como um todo. Em outras palavras, a equipe de banco de dados faz Tuning (otimização) no Database (banco de dados) e nada melhora.

A equipe de Back-end (lógica de servidor) reduz a latência de um microsserviço, e o sistema continua lento.

Executivos investem em mais Hardware (equipamentos), acreditando que o sistema ficará mais rápido, e o Throughput (vazão) não cresce. Nós vamos falar brevemente sobre vazão, apenas arranhando a superfície do que esse conceito significa.

Contextualizando a visão sistêmica e definindo throughput

Melhorias locais sem visão sistêmica geram desperdício de esforço e uma falsa sensação de progresso. Isso evidencia como é valiosa a atuação da pessoa arquiteta ao olhar o desempenho de um sistema em seu conjunto, diferente da atuação de qualquer outra pessoa sênior de TI que observa de forma localizada um sistema apenas no seu domínio de atuação — seja dados, Hardware (equipamentos), integrações, entre outros.

O problema central é a ilusão de melhoria: otimizar um componente que não é o gargalo não melhora o desempenho global de um sistema. Em uma visão fragmentada versus uma visão sistêmica, é comum encontrarmos equipes focadas apenas em métricas locais. Equipes sêniores de infraestrutura, por exemplo, podem ter poder sobre o desempenho dos sistemas olhando somente métricas como CPU, memória e latência de serviço, e acabam perdendo de vista o throughput (taxa de processamento) de ponta a ponta.

Aqui é importante detalhar o que é throughput (taxa de processamento). Trata-se da forma de medir um processo ou um processamento dentro de uma unidade de tempo. Por exemplo, podemos medir quantas solicitações uma CPU processa em determinados segundos, em uma determinada linha do tempo. Isso é throughput (taxa de processamento). É diferente de latência; vamos falar de latência mais adiante.

Quando equipes se concentram apenas em métricas locais, não observam, com a devida atenção, o throughput (taxa de processamento) de ponta a ponta de um sistema complexo. Além disso, o problema central envolve custo oculto o tempo todo: investimentos e otimizações irrelevantes desviam atenção, orçamento e energia de onde a mudança real poderia ocorrer, muitas vezes em alterações mais estruturantes quando tratamos de um problema de desempenho global.

Propondo uma abordagem sistêmica e fundamentando princípios

Qual é a solução? Precisamos ver o sistema como um todo — esse é justamente o olhar sistêmico que devemos cultivar, enquanto pessoas arquitetas, no que diz respeito a desempenho e sistema, de forma diferente de outras pessoas profissionais sêniores de TI que olham apenas suas métricas locais. Para observar o throughput (taxa de processamento) de ponta a ponta, trabalhamos com três pilares essenciais:

Quanto aos fundamentos que explicam esse modo de atuação, partimos do princípio de que todo sistema é uma corrente, e toda corrente é limitada por seu elo mais fraco. À medida que um sistema ganha complexidade — evoluindo de um monólito para duas camadas ou multicamadas, integrando-se com outros sistemas ou ganhando novos módulos —, em algum momento surge um elo mais fraco em termos de desempenho. Precisamos compreender que isso vai acontecer.

Outro princípio importante afirma que toda restrição é local: sempre existe exatamente uma restrição ativa que dita o throughput (taxa de processamento) global. Em sistemas complexos, é improvável que o problema de desempenho seja difuso e “global” por natureza; o gargalo estará em um ponto específico. Por isso, a melhoria deve ser contínua: ao elevarmos uma restrição, outra emerge — esse processo não termina.

Indicando referências e destacando a lei de Amdahl

Como recomendação de leitura, indicamos o livro The Goal (A Meta), de Eliyahu M. Goldratt, da editora North River Press (2014). Essa obra é valiosa para compreendermos, enquanto pessoas arquitetas, os princípios, fundamentos e pilares que regem a atuação para trabalhar o desempenho de sistemas e projetar desempenho de forma consistente.

Conforme mencionamos, vale destacar a Lei de Amdahl, formulada por Gene Amdahl em 1967, que demonstra matematicamente por que otimizações locais têm retorno decrescente sobre o desempenho global. Em síntese:

A referência formal apresenta a fórmula correspondente. Não vamos nos aprofundar nela aqui, mas podemos pesquisar à vontade para entender mais a fundo por que essa lei se confirma à medida que o sistema fica mais complexo.

Encerrando com diretrizes de medição e responsabilidades

Para finalizar, deixamos uma máxima que precisa guiar nossa atuação ao melhorar o desempenho de sistemas ou ao conceber sistemas com bom desempenho: “Diga-me como vai me medir e eu direi como vou me comportar.” Medir apenas o throughput (taxa de processamento) local ou a eficiência de um componente, de forma isolada, não diz nada de relevante para o olhar sistêmico de arquitetura. Precisamos alfabetizar, com comunicação de impacto, as demais equipes sêniores para trazê-las à mesma página, a fim de resolver problemas de desempenho globais e projetar sistemas com bom desempenho.

Nós, enquanto pessoas arquitetas, precisamos ser a referência, desde a concepção do sistema, olhando o desempenho de ponta a ponta. Isso é diferente do papel de equipes de infraestrutura, que tendem a focar apenas CPU e memória, ou de equipes de integração, que tendem a focar apenas a mensageria. A responsabilidade de zelar pelo desempenho ponta a ponta é da arquitetura.

Vamos para a próxima aula.

Sobre o curso Performance: decisão arquitetural, latência e cache

O curso Performance: decisão arquitetural, latência e cache possui 252 minutos de vídeos, em um total de 76 atividades. Gostou? Conheça nossos outros cursos de Arquitetura & Platform Engineering em DevOps, ou leia nossos artigos de DevOps.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Arquitetura & Platform Engineering acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas