Arquitetura de Soluções e Arquitetura de Software

Arquitetura de Soluções e Arquitetura de Software

Um arquiteto de software envolve dominar fundamentos de arquitetura de soluções, design de sistemas e documentação, bancos de dados, Apache Kafka, computação em nuvem e serverless, edge computing, princípios de arquitetura de software, domain-driven design, SOLID e design patterns, arquitetura hexagonal e clean architecture, microsserviços e arquitetura baseada em eventos, práticas de DevOps e SRE, e princípios de observabilidade.

Ele desempenha um papel crucial em uma squad de desenvolvimento, garantindo que a equipe construa sistemas robustos, escaláveis e eficientes. A presença de um arquiteto agrega valor em várias dimensões, desde a concepção do projeto até a sua execução e manutenção. Ele traz uma visão holística e planejamento estratégico, coesão e consistência, mitigação de riscos, integração e interoperabilidade, apoio ao desenvolvimento ágil e também na educação e mentoria.

Aproveito para compartilhar uma trajetória de aprendizagem, que abrange uma ampla gama de habilidades e conhecimentos, que é essencial para garantir que o arquiteto esteja preparado para desempenhar suas funções com excelência.

Arquitetura de Soluções

  • Fundamentos: Compreensão das características essenciais de um software, design patterns, integração de plataformas e microsserviços.
  • Design e Documentação: Desenvolvimento de documentos de arquitetura (SAD), design de sistemas e entrevistas técnicas.
  • Cloud e Segurança: Soluções cloud-native e segurança em aplicações enterprise.

System Design e Design Docs

  • Arquitetura e Produtos: Diferença entre arquitetura de solução e produtos, uso do C4 Model e ferramentas como PlantUML.
  • Prática e Entrevistas: Técnicas de design de sistema, requisitos e implementação, e preparação para entrevistas.

Bancos de Dados

  • Fundamentos: Importância de ACID, práticas de isolamento e tipos de bancos como RDBMS, MongoDB e Redis.
  • Técnicas: Uso de Key-Value com DynamoDB e orientação a documentos.

Apache Kafka

  • Conceitos e Operação: Grupos de consumidores, idempotência, técnicas de operação de clusters e principais conceitos do Apache Kafka.

Cloud Computing e Serverless

  • Fundamentos: Computação em nuvem, tipos de recursos, containers e frameworks serverless.
  • Infraestrutura: Máquinas virtuais, VPCs e infraestrutura básica de cloud.

Edge Computing

  • Tecnologias e Prática: CDNs, containers na borda, FOG networking e serviços relacionados à computação de borda e IoT.

Arquitetura de Software

  • Princípios: Registros de decisões arquiteturais (ADRs), assincronismo, caching, concorrência e estilos arquiteturais.
  • Liderança: Papéis e responsabilidades do arquiteto de software, screaming architecture e aplicações stateful vs stateless.

Domain Driven Design

  • Modelagem de Domínios: Context mapping, bounded contexts, padrões de DDD e integração com microsserviços.
  • Complexidade: Subdomínios, complexidade e linguagem ubíqua.

SOLID e Design Patterns

  • Princípios Básicos: Conceitos de design patterns, princípios do SOLID e padrões comportamentais, criacionais e estruturais.

Arquitetura Hexagonal e Clean Architecture

  • Comparações: Clean Architecture vs Ports and Adapters, padrões de DDD e conceitos principais da arquitetura hexagonal.

Microsserviços e Arquitetura baseada em eventos

  • Comunicação e Contratos: Comunicação assíncrona, contratos entre microsserviços, CQRS e event sourcing.
  • Eventos: Tipos de eventos, brokers de mensagens e streaming de eventos com tecnologias como Apache Kafka.

DevOps e SRE

  • Containers e Kubernetes: Criação de Helm charts, segurança no Kubernetes e técnicas de Kubernetes.
  • Fundamentos de DevOps e SRE: Automação, medição de performance, princípios de SRE e cultura DevOps.
  • Infra as Code: Uso de Ansible, Terraform e conceitos de pipelines para IaC.

Observabilidade

  • Fundamentos: Três pilares da observabilidade, ferramentas como Elastic Stack e Prometheus.
  • Métricas e Logs: Exploração de métricas, logs, tracing e comparação entre monitoramento e observabilidade.


Entre para ver ou adicionar um comentário

Outras pessoas também visualizaram

Conferir tópicos