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

Fundamentos de Tecnologia da Informação para o Escriturário do Banco do Brasil – Agente de Tecnologia

Capítulo 2

Tempo estimado de leitura: 8 minutos

+ Exercício

Pilares de TI: visão geral para organizar o estudo

Para interpretar arquiteturas e cenários de TI (especialmente em ambientes corporativos), é útil separar os elementos em pilares: hardware (base física), software (programas e sistemas), serviços (capacidades entregues via rede), ambientes (onde o software roda ao longo do ciclo de entrega) e arquitetura (como as partes se conectam para atender um objetivo).

Mapa conceitual (alto nível)  Usuário/Cliente      |      v  Aplicação (camadas)      |      v  Serviços de apoio (API, fila, cache)      |      v  Dados (banco, storage)      |      v  Infra (VMs/containers, rede, hardware)  Ambientes: DEV -> HOMOLOG -> PRODUÇÃO

Hardware: o que é e como se relaciona com desempenho

Definição

Hardware é o conjunto de componentes físicos que executam processamento e armazenam dados. Em provas e no trabalho, costuma aparecer ligado a capacidade, desempenho e disponibilidade.

Componentes essenciais

  • CPU: executa instruções; influencia tempo de resposta e capacidade de processamento.
  • Memória RAM: guarda dados temporários; insuficiência pode causar lentidão por troca com disco.
  • Armazenamento (SSD/HDD/SAN): persistência; afeta tempo de leitura/gravação e IOPS.
  • Rede (placas, switches, roteadores): conecta sistemas; afeta latência e throughput.

Exemplo prático

Uma API lenta pode estar relacionada a: CPU saturada (muitas requisições), falta de RAM (swap), disco lento (consultas e logs) ou rede congestionada (muitos hops/baixa banda).

Software: sistema operacional, aplicações e dependências

Definição

Software é a parte lógica: sistemas operacionais, aplicativos, bibliotecas, bancos de dados, servidores web e ferramentas de execução.

Classificações úteis

  • Sistema operacional (ex.: Linux/Windows): gerencia processos, memória, arquivos e rede.
  • Middleware: “ponte” entre aplicação e infraestrutura (ex.: servidor de aplicação, broker de mensagens).
  • Aplicação: código que implementa regras de negócio (ex.: serviço de autenticação, API de pagamentos).
  • Dependências: bibliotecas e runtimes (ex.: JVM, .NET, Node.js).

Passo a passo prático: identificar o que é software em um cenário

  1. Liste o que “roda” (processos/serviços): web server, API, banco, fila.
  2. Separe o que é base (SO/runtime) do que é aplicação (código do negócio).
  3. Marque dependências críticas (bibliotecas, drivers, certificados).

Serviços de TI: o que a infraestrutura entrega via rede

Definição

Serviço é uma capacidade oferecida e consumida (internamente ou externamente), geralmente via rede, com um contrato: disponibilidade, desempenho, segurança e suporte.

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

Exemplos comuns em arquiteturas

  • Serviço de autenticação (login, tokens).
  • Serviço de banco de dados (consultas e transações).
  • Serviço de mensageria (filas/tópicos para processamento assíncrono).
  • Serviço de cache (reduz latência e carga no banco).

Conceitos associados

  • SLA: meta de disponibilidade/tempo de resposta.
  • Incidente: falha que afeta o serviço.
  • Capacidade: quanto o serviço suporta antes de degradar.

Ambientes: desenvolvimento, homologação e produção

Definições

  • Desenvolvimento (DEV): ambiente para criar e testar rapidamente; mudanças frequentes.
  • Homologação (HML/QA): validação integrada; simula produção; foco em testes e aprovação.
  • Produção (PROD): atende usuários reais; foco em estabilidade, segurança e monitoramento.

Por que separar ambientes

  • Reduz risco: erro em DEV não derruba PROD.
  • Permite testes controlados: performance, integração, regressão.
  • Garante rastreabilidade: o que foi aprovado é o que vai para produção.

Passo a passo prático: como reconhecer o ambiente em um enunciado

  1. Procure termos como “usuários finais”, “clientes”, “indisponibilidade” → tende a ser PROD.
  2. Procure “testes”, “validação”, “aprovação” → tende a ser HML.
  3. Procure “debug”, “alterações constantes”, “ambiente local” → tende a ser DEV.

Camadas de uma aplicação: separação de responsabilidades

Modelo em camadas (visão didática)

  • Apresentação: interface (web/mobile) e interação com o usuário.
  • Aplicação/Serviço: orquestra casos de uso (ex.: criar pedido, consultar saldo).
  • Domínio/Regras de negócio: validações e regras centrais (ex.: limites, cálculos, políticas).
  • Dados: persistência e acesso a dados (SQL, NoSQL, arquivos).
  • Integrações: comunicação com APIs externas, filas, serviços corporativos.
Mapa conceitual (camadas)  UI (web/app)  ->  API/Service  ->  Regras de negócio  ->  Banco de dados                         ->  Integrações (APIs/filas)

Exemplo prático

Se uma tela “não carrega”, o problema pode estar na apresentação (front), na API (back), na regra (erro de validação), no banco (consulta lenta) ou na integração (API externa fora).

Arquitetura cliente-servidor: base para web e APIs

Definição

Na arquitetura cliente-servidor, o cliente solicita recursos/serviços e o servidor responde. A comunicação ocorre via rede, usando protocolos (ex.: HTTP/HTTPS).

Elementos típicos

  • Cliente: navegador, app mobile, outro sistema.
  • Servidor web/API: recebe requisições, aplica regras e retorna respostas.
  • Banco de dados: armazena dados persistentes.

Passo a passo prático: seguir o caminho de uma requisição HTTP

  1. Cliente envia requisição (ex.: GET /clientes/123).
  2. Servidor web/API autentica/autoriza (quando aplicável).
  3. Camada de serviço executa caso de uso.
  4. Camada de dados consulta/grava no banco.
  5. Servidor retorna resposta (JSON/HTML) ao cliente.

Computação em nuvem: conceitos e relação com disponibilidade e escalabilidade

Definição

Computação em nuvem é o fornecimento de recursos de TI (computação, armazenamento, rede, bancos, filas etc.) como serviços sob demanda, com elasticidade e cobrança por uso (dependendo do modelo).

Modelos de serviço (visão conceitual)

  • IaaS: infraestrutura (VMs, rede, discos). Você gerencia SO e aplicações.
  • PaaS: plataforma (runtime, banco gerenciado, serviços). Você foca mais no código.
  • SaaS: software pronto (uso direto). Você configura e utiliza.

Disponibilidade e escalabilidade na nuvem

  • Disponibilidade: capacidade de manter o serviço acessível. Pode ser aumentada com redundância (múltiplas instâncias, múltiplas zonas) e automação de recuperação.
  • Escalabilidade: capacidade de crescer para atender mais carga. Na nuvem, é comum escalar adicionando instâncias (horizontal) ou aumentando recursos (vertical).
Mapa conceitual (disponibilidade x escalabilidade)  Disponibilidade: redundância + failover + monitoramento  Escalabilidade: vertical (mais CPU/RAM) ou horizontal (mais instâncias)

Virtualização: por que VMs existem

Definição

Virtualização permite executar múltiplas máquinas virtuais (VMs) em um mesmo hardware físico, isolando sistemas operacionais e aplicações. Um componente (hipervisor) gerencia esse compartilhamento.

Quando é útil

  • Isolamento entre sistemas.
  • Melhor aproveitamento do hardware.
  • Facilidade de provisionamento e migração.

Relação com disponibilidade

Com VMs, é comum ter replicação e recuperação mais rápida (subir uma VM em outro host), reduzindo tempo de indisponibilidade quando há falha de hardware.

Containers: execução leve e padronizada

Definição

Containers empacotam aplicação e dependências, executando de forma isolada no mesmo sistema operacional (compartilham o kernel). Em geral, são mais leves que VMs e facilitam padronização de execução.

VM vs Container (comparação conceitual)

  • VM: inclui SO completo; maior isolamento; mais pesado.
  • Container: compartilha SO; mais leve; sobe mais rápido; facilita escalar serviços.

Relação com escalabilidade

Containers favorecem escala horizontal: subir mais réplicas do mesmo serviço para atender picos (desde que a aplicação e o estado estejam bem planejados).

Arquiteturas típicas: web, APIs, filas e bancos (identificação de componentes)

Arquitetura web simples (3 camadas)

[Cliente/Navegador] --HTTPS--> [Servidor Web/App] --SQL--> [Banco de Dados]
  • Cliente: navegador
  • Servidor: aplicação (front/back dependendo do caso)
  • Dados: banco relacional (ex.: PostgreSQL, Oracle) ou outro

Arquitetura com API e front separado

[Cliente (SPA/App)] --HTTPS--> [API Gateway/Load Balancer] --> [Serviço API] --> [Banco]                                            --> [Cache]
  • Front (SPA/app): apresentação
  • API: regras e orquestração
  • Cache: acelera leituras e reduz carga no banco
  • Balanceador/Gateway: distribui tráfego e pode aplicar políticas

Arquitetura com fila (processamento assíncrono)

[Cliente] -> [API] -> (publica mensagem) -> [Fila/Broker] -> [Worker/Consumidor] -> [Banco/Serviço externo]
  • Fila: desacopla e absorve picos (buffer)
  • Worker: processa em segundo plano
  • Benefício: melhora resiliência e escalabilidade do processamento

Arquitetura com múltiplos serviços (microserviços em visão conceitual)

[Cliente] -> [Gateway] -> [Serviço A] -> [DB A]                     -> [Serviço B] -> [DB B]                     -> [Fila] -> [Worker]

Nem toda arquitetura precisa ser microserviços; o importante é reconhecer: serviços separados, comunicação via rede, e dados podendo ser segregados por serviço.

Exercícios curtos (identificação de componentes)

Exercício 1

Diagrama: [App Mobile] --HTTPS--> [API] --SQL--> [Banco]

  • Identifique: cliente, servidor, camada de dados.
  • Qual componente deve implementar autenticação e autorização?

Exercício 2

Diagrama: [Web] -> [Load Balancer] -> [2 instâncias de API] -> [Banco]

  • O que está sendo feito para melhorar disponibilidade?
  • Isso é escala vertical ou horizontal?

Exercício 3

Diagrama: [API] -> [Fila] -> [Worker] -> [Serviço de e-mail]

  • Qual parte é síncrona e qual é assíncrona?
  • Qual componente ajuda a absorver picos de requisições?

Exercício 4

Enunciado: “O sistema funciona em DEV, mas falha em HML por diferença de configuração de conexão com banco.”

  • Qual pilar está mais relacionado ao problema: hardware, software, serviços ou ambientes?
  • Que tipo de controle reduz esse risco (pista: padronização e configuração)?

Exercício 5

Enunciado: “Para suportar aumento de acessos, a equipe decidiu subir mais réplicas do serviço em containers.”

  • Isso está ligado a disponibilidade, escalabilidade ou ambos?
  • Qual tipo de escalabilidade foi aplicada?

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

Em um cenário de nuvem, a equipe decidiu aumentar a capacidade de um serviço adicionando mais instâncias idênticas para atender a um pico de acessos. Essa decisão está relacionada principalmente a qual conceito e qual tipo de escalabilidade?

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

Você errou! Tente novamente.

Adicionar mais instâncias para atender mais carga caracteriza escalabilidade. Quando o crescimento ocorre por aumento do número de instâncias, trata-se de escala horizontal, em vez de aumentar recursos de uma única máquina (escala vertical).

Próximo capitúlo

Lógica de Programação aplicada ao Agente de Tecnologia do Banco do Brasil

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