Arquitetura de Sistemas

Compartilhado por um usuário do Flashcards.gg · gerado com IA · Denunciar este conjunto

Estudo sobre arquitetura de sistemas de software, abordando conceitos, atividades essenciais, ciclos de vida e padrões. Destinado a estudantes e profissionais de computação.

50 cartões Português Nível: Ensino superior Outros de tecnologia Publicado
Toque no cartão para virar

Cartões · 50

O que é arquitetura de sistemas?
É a estrutura fundamental de um software, definindo componentes, relações e princípios de design. Exemplo: a planta de uma casa, definindo vigas e encanamento antes de construir.
Qual a diferença entre arquitetura e design de software?
A arquitetura trata de decisões de alto nível difíceis de mudar (ex: usar microsserviços), enquanto o design trata de detalhes de baixo nível (ex: usar o padrão Factory).
Quatro atividades essenciais: Especificação
Fase de levantar e detalhar o que o sistema deve fazer e seus limites técnicos. Exemplo: definir que o app bancário precisa suportar 10.000 transações por segundo.
Quatro atividades essenciais: Desenvolvimento
Processo de implementação da arquitetura planejada em código real. Exemplo: codificar os serviços base e integrar os bancos de dados conforme projetado.
Quatro atividades essenciais: Validação
Verificação se a arquitetura atende aos requisitos de negócio e de performance. Exemplo: executar testes de carga para confirmar se a Black Friday não derrubará o site.
Quatro atividades essenciais: Evolução
Adaptação contínua do sistema a novas tecnologias ou regras de negócio. Exemplo: migrar um módulo de pagamentos monolítico para a nuvem.
Ciclo da arquitetura: Requisitos e Análise
Mapear restrições, atributos de qualidade e objetivos de negócio. Exemplo: analisar que a LGPD exige criptografia ponta a ponta nos dados de clientes.
Ciclo da arquitetura: Design Arquitetônico
Escolha de padrões, tecnologias e divisão de responsabilidades do sistema. Exemplo: optar pelo padrão MVC ou Event-Driven para processar pagamentos.
Ciclo da arquitetura: Documentação Arquitetônica
Registro das decisões, diagramas e padrões adotados. Exemplo: criar diagramas C4 ou ADRs (Architectural Decision Records) no repositório.
Ciclo da arquitetura: Avaliação Arquitetônica
Inspeção crítica para identificar riscos antes do fim do projeto. Exemplo: usar o método ATAM para verificar vulnerabilidades de segurança.
O que é Business Software Architecture (BSA/BSE)?
Alinhamento da arquitetura de software às metas e processos de negócio da empresa. Exemplo: desenhar um ERP para acelerar a emissão de notas fiscais nas filiais.
Dificuldades da arquitetura: Obsolescência do modelo
O sistema muda no código real e o modelo inicial fica ultrapassado. Exemplo: desenhar arquitetura em 2020 e em 2024 o código ter módulos não mapeados.
Dificuldades da arquitetura: Documentação desatualizada
Falta de sincronia entre o que está documentado e o que roda em produção. Exemplo: um novo desenvolvedor seguir um diagrama e descobrir portas fechadas.
Dificuldades da arquitetura: Erosão arquitetural
Degradação gradual da arquitetura por 'gambiarras' e atalhos rápidos. Exemplo: acessar o banco de dados direto da interface ignorando camadas de serviço.
Arquitetura Genérica em Camadas (Layered)
Separa o sistema em camadas com papéis distintos (apresentação, negócio, dados). Exemplo: app com Interface gráfica, camada de Regras e Banco MySQL.
Cliente-Servidor: Conceito básico
Divisão onde o cliente requisita recursos e o servidor processa e responde. Exemplo: navegador web acessando o site do Google.
Cliente-Servidor em Duas Camadas (2-Tier)
Cliente conecta-se diretamente ao servidor de banco de dados. Exemplo: sistema legado em Delphi instalado no PC acessando diretamente o Oracle.
Cliente-Servidor em Três Camadas (3-Tier)
Insere uma camada de aplicação entre o cliente e o banco de dados. Exemplo: app mobile que chama API em Java, que por sua vez acessa o PostgreSQL.
Cliente-Servidor Multicamadas (N-Tier)
Divide responsabilidades em múltiplas camadas independentes de serviço e cache. Exemplo: e-commerce com CDN, frontend, API Gateway, microsserviços e cache Redis.
Model-View-Controller (MVC): Conceito
Separa a lógica de dados (Model), interface (View) e mediação de eventos (Controller). Exemplo: o framework Django ou Ruby on Rails.
MVC: O papel do Model
Gerencia os dados, regras de validação e comunicação com o banco. Exemplo: classe 'Produto' que calcula desconto e salva no banco de dados.
MVC: O papel da View
Apresenta a informação ao usuário em formato visual. Exemplo: página HTML que exibe a listagem de produtos e botões de compra.
MVC: O papel do Controller
Recebe as entradas do usuário, aciona o Model e escolhe a View de retorno. Exemplo: rota que recebe o clique de 'Comprar' e manda salvar o pedido.
Arquitetura Orientada a Serviços (SOA)
Integração de serviços corporativos autônomos via Enterprise Service Bus (ESB). Exemplo: sistema de RH integrado ao de faturamento de uma multinacional via ESB.
Arquitetura Baseada em Microsserviços
Divide o sistema em serviços pequenos, independentes e focados em um domínio. Exemplo: o streaming da Netflix com serviços separados de busca, catálogo e vídeo.
Microsserviços vs. Monólito
O monólito roda em um único bloco de código; microsserviços rodam isoladamente em rede. Exemplo: falha no chat derruba o e-commerce monólito, mas não no microsserviço.
Arquitetura Serverless
Execução de código orientada a funções sem gerenciar servidores físicos ou virtuais. Exemplo: AWS Lambda redimensionando fotos enviadas ao bucket S3.
Vantagens da arquitetura Serverless
Custo baseado apenas no tempo de execução e escalabilidade automática quase infinita. Exemplo: pagar zero dólares se o site não receber visitas de madrugada.
Arquitetura Orientada a Eventos (EDA)
Sistemas que reagem à captura, produção e consumo de eventos em tempo real. Exemplo: Uber alertando motoristas vizinhos no momento em que uma corrida é pedida.
Mensageria e EDA (Brokers)
Uso de intermediários para tráfego assíncrono de eventos sem acoplamento direto. Exemplo: Apache Kafka ou RabbitMQ processando filas de pedidos.
Inteligência Artificial e Machine Learning na arquitetura
Inclusão de pipelines de ingestão de dados, treino e inferência de modelos em produção. Exemplo: sistema de antifraude bancário que analisa o risco via modelo ML em milissegundos.
Arquitetura Centrada em Dados (Data-Centric)
O dado compartilhado e persistente é o núcleo em torno do qual os módulos operam. Exemplo: Data Lakehouse corporativo onde BI, CRM e IA consom a mesma base unificada.
Micro Frontend
Divisão da interface de usuário em pequenos componentes geridos por times diferentes. Exemplo: página do Mercado Livre onde o carrinho, busca e produto são feitos por times distintos.
SOAP (Simple Object Access Protocol)
Protocolo formal e padronizado baseado em XML e contratos rígidos (WSDL). Exemplo: integração antiga de emissão de boletos entre bancos e seguradoras.
REST (Representational State Transfer)
Estilo arquitetural que utiliza o protocolo HTTP para trafegar recursos via URIs. Exemplo: API usando GET /usuarios/1 para obter dados em formato JSON.
REST vs. RESTful
REST é o conjunto de restrições arquiteturais; RESTful é o sistema que aplica todas essas regras. Exemplo: usar verbos HTTP corretos (POST, PUT, DELETE) e código de status 200/404.
Diferença essencial: SOAP vs. REST
SOAP é um protocolo estrito focado em segurança/operações; REST é um estilo leve focado em recursos. Exemplo: SOAP usa XML pesado; REST usa JSON leve no tráfego web.
Arquitetura Cloud Native
Sistemas criados especificamente para explorar a elasticidade e resiliência da nuvem. Exemplo: app rodando em containers autoescaláveis na AWS usando observabilidade integrada.
O que é Containerização?
Empacotar o código e todas as suas dependências em uma unidade isolada e leve. Exemplo: criar um pacote que roda de forma idêntica no laptop do dev e no servidor de produção.
Docker: O que é e qual o seu papel?
Plataforma líder para criar, rodar e compartilhar containers. Exemplo: gerar uma imagem Docker com Python e PostgreSQL que sobe com um único comando.
O que é uma Imagem Docker?
Molde somente-leitura com as instruções para criar containers. Exemplo: imagem oficial do 'node:18-alpine' contendo o runtime e bibliotecas essenciais.
Kubernetes (K8s): O que é?
Orquestrador de containers que automatiza implantação, escala e gestão de clusters. Exemplo: reiniciar automaticamente um container do WhatsApp que caiu por falta de memória.
Kubernetes: O que é um Pod?
A menor unidade de execução do Kubernetes, contendo um ou mais containers compartilhados. Exemplo: um container com a API da loja e outro com um coletor de logs ao lado.
Docker vs. Kubernetes
Docker cria e roda containers individuais; Kubernetes gerencia centenas de containers em rede. Exemplo: Docker é o barco; Kubernetes é o capitão gerenciando a frota.
Nuvem Híbrida (Hybrid Cloud)
Ambiente que combina infraestrutura local (on-premises) com nuvem pública. Exemplo: hospital mantendo prontuários de pacientes em servidores locais e o app na AWS.
Backend for Frontend (BFF): O que é?
Padrão onde se cria uma camada de backend sob medida para cada tipo de interface de usuário. Exemplo: um BFF para o App Mobile (dados resumidos) e outro para o Desktop Web (dados detalhados).
Por que usar o padrão BFF?
Evita sobrecarregar clientes mobile com dados excessivos e chamadas de rede desnecessárias. Exemplo: o BFF mobile junta 3 chamadas de API em uma única resposta compacta.
Resiliência na Arquitetura Moderna
Capacidade do sistema de se recuperar graciosamente de falhas de componentes. Exemplo: padrão Circuit Breaker impedindo que lentidão no checkout trave todo o site de vendas.
API Gateway
Ponto de entrada único que roteia, autentica e limita requisições para os microsserviços. Exemplo: Kong ou AWS API Gateway validando token JWT antes de enviar ao serviço interno.
Escalabilidade Horizontal vs. Vertical
Horizontal adiciona mais máquinas; Vertical adiciona mais potência (RAM/CPU) à mesma máquina. Exemplo: K8s subindo 10 containers novos vs. pagar o dobro por um servidor com 64GB de RAM.

Conjuntos relacionados

Mais em Outros de tecnologia →