Capa do Ebook gratuito Escriturário do Banco do Brasil - Agente de Tecnologia: Preparação para Concurso

Escriturário do Banco do Brasil - Agente de Tecnologia: Preparação para Concurso

Novo curso

16 páginas

Infraestrutura, serviços e observabilidade na atuação do Agente de Tecnologia do Banco do Brasil

Capítulo 12

Tempo estimado de leitura: 11 minutos

+ Exercício

Componentes de infraestrutura usados em serviços bancários

Infraestrutura é o conjunto de recursos (computação, rede, armazenamento e serviços de suporte) que permite que aplicações bancárias funcionem com desempenho, segurança e disponibilidade. Na prática, o Agente de Tecnologia precisa entender como esses componentes se conectam para diagnosticar lentidão, erros e indisponibilidades.

Servidores (compute)

Servidor é o recurso de processamento e memória onde rodam aplicações, APIs, jobs e serviços de apoio. Pode ser físico, máquina virtual ou contêiner, mas conceitualmente sempre entrega CPU, RAM e acesso a rede e disco.

  • Escala vertical: aumentar CPU/RAM do mesmo servidor (rápido, mas tem limite).
  • Escala horizontal: adicionar mais instâncias (melhor para alta disponibilidade e picos).
  • Capacidade: CPU alta pode indicar carga real, loop, GC, criptografia intensa; memória alta pode indicar cache, vazamento, filas internas.

Storage (armazenamento)

Storage é onde dados persistem. Em bancos, a performance do armazenamento impacta diretamente transações, conciliações, extratos e relatórios. Conceitualmente, observe dois eixos: latência (tempo de resposta) e IOPS/throughput (quantidade de operações/volume por segundo).

  • Bloco: discos para sistemas e bancos (bom para baixa latência).
  • Arquivo: compartilhamento de arquivos (logs, artefatos, integrações legadas).
  • Objeto: grandes volumes e durabilidade (backups, documentos, evidências).

Sintomas comuns: latência de disco alta pode causar timeouts na aplicação e aumento de tempo de resposta mesmo com CPU baixa.

Balanceamento de carga (load balancer)

Balanceador distribui requisições entre instâncias de um serviço para melhorar disponibilidade e desempenho. Também pode encerrar TLS, aplicar regras de roteamento e checagens de saúde.

Continue em nosso aplicativo

Você poderá ouvir o audiobook com a tela desligada, ganhar gratuitamente o certificado deste curso e ainda ter acesso a outros 5.000 cursos online gratuitos.

ou continue lendo abaixo...
Download App

Baixar o aplicativo

  • Health check: define se uma instância está apta a receber tráfego.
  • Algoritmos: round-robin, least connections, hash por sessão.
  • Sticky session: prende o cliente a uma instância; pode ser necessário em legados, mas reduz elasticidade.

Proxies e gateways

Proxy é um intermediário que encaminha tráfego. Gateway é um ponto de entrada controlado para serviços, aplicando políticas. Em ambientes bancários, é comum separar responsabilidades:

  • Reverse proxy: recebe requisições externas e encaminha para serviços internos (pode cachear, comprimir, limitar taxa).
  • API Gateway: centraliza autenticação/autorização, rate limit, roteamento por versão, transformação de payload e observabilidade.
  • Gateway de integração: padroniza comunicação com sistemas internos/legados e parceiros.

Falhas típicas: configuração de rota errada, limite de conexões, certificados expirados, regras de firewall/ACL bloqueando tráfego.

Filas e mensageria

Filas e mensageria desacoplam sistemas: em vez de um serviço depender de resposta imediata do outro, ele publica uma mensagem e o consumidor processa no seu ritmo. Isso é crucial para absorver picos (ex.: folha, pagamentos, loterias, virada do dia) e reduzir impacto de instabilidades.

  • Fila: modelo ponto-a-ponto; cada mensagem é consumida por um consumidor.
  • Pub/Sub (tópicos): um produtor publica e vários consumidores recebem.
  • Garantias: at-most-once, at-least-once, exactly-once (na prática, exige idempotência).
  • DLQ: fila de mensagens com erro para análise e reprocessamento controlado.

Sintomas comuns: aumento de lag (atraso) indica consumidores lentos, indisponíveis ou mensagens “presas” por erro; pode gerar efeito cascata (acúmulo, timeouts e degradação).

Alta disponibilidade, tolerância a falhas e continuidade

Alta disponibilidade (HA)

Alta disponibilidade é a capacidade de manter o serviço acessível apesar de falhas. Em termos conceituais, busca-se eliminar pontos únicos de falha e permitir substituição automática de componentes.

  • Redundância: múltiplas instâncias, múltiplas zonas, múltiplos links.
  • Failover: troca automática para instância/ambiente saudável.
  • Health checks e auto-healing: remover instâncias ruins e repor novas.

Tolerância a falhas

Tolerância a falhas é continuar operando mesmo quando parte do sistema falha, possivelmente com degradação controlada. Exemplos práticos em serviços bancários:

  • Degradação graciosa: extrato detalhado indisponível, mas saldo e últimas transações continuam.
  • Timeouts e retries com backoff: evita travar o sistema inteiro quando um downstream está lento.
  • Circuit breaker: interrompe chamadas a um serviço instável para proteger o restante.

Continuidade (resiliência operacional)

Continuidade trata de manter ou recuperar serviços após incidentes maiores (falha de datacenter, indisponibilidade prolongada, corrupção de dados). Conceitos essenciais:

  • RTO (Recovery Time Objective): tempo máximo aceitável para recuperar.
  • RPO (Recovery Point Objective): perda máxima aceitável de dados (janela de backup/replicação).
  • DR (Disaster Recovery): estratégia e ambiente para recuperação.

Conexão com cenários bancários: indisponibilidade em canais digitais pode gerar filas de atendimento, impacto reputacional e risco operacional. Por isso, além de “voltar”, é importante voltar com integridade (consistência de transações) e com comunicação clara para áreas de negócio.

Monitoramento e observabilidade: métricas, logs e traces

Monitoramento responde “o que está acontecendo?” com indicadores e alertas. Observabilidade vai além: ajuda a entender “por que está acontecendo?” a partir de evidências correlacionadas. O tripé é métricas, logs e traces.

Métricas

Métricas são séries temporais numéricas (ex.: latência p95, taxa de erro, CPU). Boas métricas permitem alertas objetivos e leitura rápida de saúde.

  • Golden Signals: latência, tráfego, erros, saturação.
  • RED (serviços): Rate (taxa), Errors (erros), Duration (duração).
  • USE (infra): Utilization, Saturation, Errors.

Logs

Logs são eventos textuais/estruturados com contexto (timestamp, serviço, correlação, usuário/conta mascarados, código de erro). Em incidentes, logs ajudam a localizar o ponto de falha (ex.: exceção, timeout, validação).

  • Estruturados: JSON com campos (facilita filtro e agregação).
  • Níveis: INFO, WARN, ERROR; excesso de DEBUG pode degradar performance.
  • Correlação: incluir um correlation-id para seguir uma requisição ponta a ponta.

Traces (rastreamento distribuído)

Traces mostram o caminho de uma requisição por múltiplos serviços e o tempo gasto em cada etapa (spans). São essenciais quando a lentidão não está em um único ponto.

  • Span: etapa individual (ex.: chamada ao banco, chamada a API externa).
  • Trace: conjunto de spans da mesma requisição.
  • Identificação de gargalos: qual dependência está consumindo mais tempo.

SLAs, SLOs e gestão de incidentes

SLA e SLO

SLA (Service Level Agreement) é o compromisso formal de nível de serviço (ex.: disponibilidade mensal). SLO (Service Level Objective) é a meta interna mensurável que orienta engenharia e operação. Um SLO bem definido evita alertas “barulhentos” e foca no que importa ao usuário.

  • Indicador (SLI): métrica que mede o serviço (ex.: % de requisições com sucesso, latência p95).
  • SLO: alvo para o SLI (ex.: 99,9% de sucesso no mês).
  • Error budget: margem de falha aceitável; se estoura, prioriza-se estabilidade.

Gestão de incidentes (visão prática)

Incidente é qualquer degradação relevante do serviço. Um fluxo típico envolve: detecção, triagem, mitigação, comunicação e análise de causa raiz.

  • Detecção: alertas por SLO/SLI e sinais (picos de erro, latência).
  • Triagem: classificar severidade e escopo (quais canais, quais regiões, quantos usuários).
  • Mitigação: reduzir impacto rapidamente (rollback, desativar feature, aumentar capacidade, isolar dependência).
  • Comunicação: atualizações periódicas para stakeholders e registro do que foi feito.
  • RCA (causa raiz) e ações: corrigir e prevenir recorrência (runbooks, testes, limites, observabilidade).

Passo a passo: como ler um painel de monitoramento em incidentes

O objetivo é sair do sintoma (ex.: “app fora”) para uma hipótese provável (rede, aplicação, banco de dados, mensageria) usando evidências.

Passo 1: confirme o impacto no usuário

  • Verifique taxa de sucesso (HTTP 2xx/3xx) e taxa de erro (4xx/5xx).
  • Compare com o baseline (mesmo horário/dia da semana).
  • Separe por rota/canal (login, saldo, pagamento) para identificar escopo.

Passo 2: identifique se é latência, erro ou saturação

  • Latência subiu e erros ainda baixos: gargalo em dependência, fila interna, banco lento.
  • Erros 5xx subiram: falha no serviço ou dependência indisponível.
  • Saturação (CPU, memória, conexões, threads) subiu: falta de capacidade ou comportamento anômalo.

Passo 3: correlacione com infraestrutura

  • CPU: alta sustentada pode indicar pico real, loop, criptografia intensa, compressão, ou GC.
  • Memória: crescimento contínuo sugere vazamento; OOM pode derrubar instâncias.
  • Rede: aumento de retransmissões/latência pode gerar timeouts e erros intermitentes.
  • Disco/IO: latência de storage alta afeta banco e serviços que persistem dados.

Passo 4: verifique dependências (banco, cache, mensageria)

  • Banco de dados: conexões saturadas, locks, filas de queries, latência de commit.
  • Cache: queda do hit rate aumenta carga no banco e eleva latência.
  • Fila: aumento de backlog/lag indica consumidores insuficientes ou erro de processamento.

Passo 5: use logs e traces para fechar a hipótese

  • Nos logs, filtre pelo correlation-id e pelo período do pico.
  • Procure padrões: timeouts, “connection refused”, “too many connections”, exceções de validação.
  • Nos traces, identifique o span mais lento (ex.: chamada ao banco ou a um serviço externo).

Exercícios: leitura de painéis e identificação de causas prováveis

Exercício 1: pico de latência com CPU baixa

Cenário do painel: latência p95 do serviço de pagamentos subiu de 200 ms para 2,5 s; taxa de erro 5xx ainda baixa; CPU das instâncias em 25%; memória estável; tráfego normal.

Perguntas:

  • Qual componente você investigaria primeiro: aplicação, rede ou banco de dados?
  • Quais métricas adicionais buscaria para confirmar?

Indícios e causa provável:

  • CPU baixa com latência alta sugere espera externa: banco de dados lento (locks, I/O alto), dependência externa lenta, ou rede com latência/retransmissão.
  • Métricas úteis: latência de queries, pool de conexões, tempo de resposta do storage, retransmissões TCP, timeouts por dependência.

Exercício 2: aumento de 5xx e reinícios de instância

Cenário do painel: taxa de erro 5xx subiu para 8%; número de instâncias oscilando; eventos de reinício; memória cresce até o limite e cai após reinício; latência também aumenta.

Perguntas:

  • Qual é a hipótese mais provável?
  • Qual evidência em logs ajudaria a confirmar?

Indícios e causa provável:

  • Padrão de memória crescendo e reinício indica vazamento de memória ou explosão de cache, levando a OOM e reinício automático.
  • Logs: mensagens de OOM, GC excessivo, erros de alocação, aumento de payloads, endpoints específicos correlacionados.

Exercício 3: backlog em fila e timeouts no front

Cenário do painel: fila “processa-boletos” com lag crescente; consumidores com CPU alta; taxa de publicação normal; front-end começa a apresentar timeouts em consultas de status.

Perguntas:

  • O problema está mais provável em rede, aplicação ou banco?
  • Qual ação de mitigação imediata faz sentido?

Indícios e causa provável:

  • Lag crescente com consumidores no limite sugere capacidade insuficiente de processamento ou mensagens mais pesadas/mais lentas (ex.: dependência do banco lenta).
  • Mitigação: aumentar consumidores (escala horizontal), pausar funcionalidades não críticas que publicam mensagens, investigar dependência lenta do consumidor (banco/serviço externo).

Exercício 4: falha intermitente por rede

Cenário do painel: erros “connection reset” e “timeout” aparecem em picos; latência varia muito; CPU/memória normais; apenas uma zona/região apresenta problema; tráfego roteado pelo balanceador mostra queda de sucesso nessa zona.

Perguntas:

  • Qual evidência aponta para rede?
  • Que medida rápida reduz impacto ao usuário?

Indícios e causa provável:

  • Intermitência concentrada em uma zona e erros de conexão sugerem problema de rede (link degradado, perda de pacotes, equipamento, rota).
  • Mitigação: retirar a zona do balanceamento (drain), forçar failover para zonas saudáveis, abrir incidente com time de rede com métricas de perda/latência.

Checklist prático de diagnóstico (rede x aplicação x banco de dados)

Quando suspeitar de rede

  • Erros intermitentes: timeout, connection reset, connection refused em picos.
  • Problema concentrado por zona/região/segmento.
  • Retransmissões e latência de rede aumentam antes dos erros.

Quando suspeitar de aplicação

  • CPU alta, reinícios, exceções específicas em logs.
  • Erro aumenta após deploy/feature flag.
  • Fila interna de threads/conexões do serviço saturada.

Quando suspeitar de banco de dados

  • Latência aumenta com CPU do app baixa e tempo gasto em spans de DB alto.
  • Pool de conexões saturado, locks, aumento de tempo de commit.
  • Storage com latência elevada e aumento de I/O wait.
// Exemplo de campos úteis em logs para correlação (conceitual){  "timestamp": "2026-01-15T10:12:33Z",  "service": "pagamentos-api",  "level": "ERROR",  "correlation_id": "abc123",  "route": "/pagamentos/confirmar",  "error": "DB_TIMEOUT",  "duration_ms": 2500,  "downstream": "db-transacional"}

Agora responda o exercício sobre o conteúdo:

Em um incidente, o painel mostra aumento significativo de latência (p95) no serviço, enquanto CPU e memória das instâncias permanecem baixas e estáveis, e a taxa de erro 5xx continua baixa. Qual hipótese inicial é mais coerente e que tipo de evidência ajudaria a confirmar?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Latência alta com CPU/memória baixas sugere tempo de espera fora da aplicação (banco, storage, rede ou outra dependência). Para confirmar, busque evidências como latência de queries, saturação do pool de conexões, tempo de resposta do storage e sinais de retransmissão/latência de rede.

Próximo capitúlo

APIs, integração de sistemas e arquitetura de soluções digitais para o Banco do Brasil – Agente de Tecnologia

Arrow Right Icon
Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.