System design
101
o que você deve pensar ao definir suas primeiras
arquiteturas
Slide 2
Slide 2 text
Agenda
Quem sou eu?
O que é system
design ?
Entrevistas de
system design
Características
de um sistema
1
3 4
2
Slide 3
Slide 3 text
Agenda
Pensamento
arquitetural
O seu papel
como dev Java
Amplitude
técnica
Trade-offs
5
7 8
6
Slide 4
Slide 4 text
Agenda
Conhecimento
de negócio
Hands On
Pensando em
componentes
Decisões de
arquitetura
9
11 12
10
Slide 5
Slide 5 text
Agenda
Considerando
riscos
Desenhos de
arquitetura
Negociação e
liderança
Seu technology
Radar
13
15 16
14
Slide 6
Slide 6 text
Agenda
Bancos de
dados
Cache
Arquitetura
orientada a
eventos
Monitoramento
/
Observabilidad
e
17
19 20
18
Slide 7
Slide 7 text
Agenda
Segurança Deploy
Hora da prática
Onde aprender
mais ?
21
23 24
22
Slide 8
Slide 8 text
Quem sou eu ?
Slide 9
Slide 9 text
Staff Software Engineer
Microsoft MVP (4x)
Instrutora na Linux Tips
Criadora de conteúdo @kamila_code
Co-autora de 3 livros
Pós graduanda em arquitetura de soluções
Pós graduanda em product management
Mentora
Membra do conselho da Womakerscode
Programo desde 2013
Quem sou eu ?
Slide 10
Slide 10 text
O que é
system design
?
Slide 11
Slide 11 text
Entrevistas de
system design
Slide 12
Slide 12 text
Tenha bem claro os requisitos, número de
usuários, picos de acesso, tempo de
atualização dos dados, etc
Entrevistas de system design
Slide 13
Slide 13 text
Não pense em linguagens e frameworks
(somente se solicitado) pense em
componentes e como eles se comunicam
Entrevistas de system design
Slide 14
Slide 14 text
PERGUNTE, nunca passe a entrevista
em silêncio só desenhando, interaja
com as pessoas entrevistadoras
Entrevistas de system design
Slide 15
Slide 15 text
Característica
s de um
sistema
Slide 16
Slide 16 text
Disponibilidade: porcentagem de tempo
que algum serviço ou infraestrutura está
acessível aos clientes.
Características de um sistema
Slide 17
Slide 17 text
Confiabilidade: A medição da disponibilidade é
impulsionada pela perda de tempo, enquanto a
frequência e o impacto das falhas orientam a
medição da confiabilidade. Disponibilidade e
confiabilidade são essenciais porque permitem
que as partes interessadas avaliem a saúde do
serviço.
Características de um sistema
Slide 18
Slide 18 text
Escalabilidade: a capacidade de um
sistema de lidar com uma quantidade
crescente de carga de trabalho sem
comprometer o desempenho.
Características de um sistema
Slide 19
Slide 19 text
Manutenabilidade: capacidade de um
sistema restaurar suas funções dentro
de um tempo após uma falha.
Características de um sistema
Slide 20
Slide 20 text
Tolerância a falhas: O quanto um
sistema consegue permanecer
operante após ocorrer alguma falha
Características de um sistema
Slide 21
Slide 21 text
Pensamento
arquitetural
Slide 22
Slide 22 text
O seu papel
como dev Java
Slide 23
Slide 23 text
Amplitude
técnica
Slide 24
Slide 24 text
Trade-offs
Slide 25
Slide 25 text
Conhecimento
de negócio
Slide 26
Slide 26 text
Hands On
Slide 27
Slide 27 text
Pensando em
componentes
Slide 28
Slide 28 text
Decisões de
arquitetura
Slide 29
Slide 29 text
Considerando
riscos
Slide 30
Slide 30 text
Desenhos de
arquitetura
Slide 31
Slide 31 text
No content
Slide 32
Slide 32 text
Negociação e
liderança
Slide 33
Slide 33 text
Seu
technology
Radar
Slide 34
Slide 34 text
No content
Slide 35
Slide 35 text
Banco de
dados
Slide 36
Slide 36 text
- Armazenamento estruturado de dados
- elimina a redundância de dados
- A informação relativa a uma entidade
específica aparece numa tabela enquanto os
dados relevantes para essa entidade
específica aparecem nas outras tabelas
ligadas através de chaves estrangeiras
Banco de dados relacionais
Slide 37
Slide 37 text
- aplicações que exigem grande volume de
dados semiestruturados e não estruturados ,
baixa latência e modelos de dados flexíveis
Banco de dados não relacionais
Slide 38
Slide 38 text
Cache
Slide 39
Slide 39 text
Arquitetura
orientada a
eventos
Slide 40
Slide 40 text
Observabilidad
e e
monitoramento
Slide 41
Slide 41 text
Segurança
Slide 42
Slide 42 text
Deploy
Slide 43
Slide 43 text
O que guardar ?
Onde guardar
Hora da prática!!!
O problema
Nosso sistema vai
resolver qual
problema ?
Componentes
base
Quais serviços
envolvidos?
Como eles se
relacionam ?
Dados
Vai resolver
MESMO o
problema ?
1 2 3 4
Detalhes
Slide 44
Slide 44 text
Onde aprender
mais ?
Slide 45
Slide 45 text
Daily.dev
Byte byte go
Substack
Blogs de
engenharia