How to answer a interview about system design
- How to answer a interview about system design
Etapa 1: Esclarecimentos de requisitos
- Certifique-se de saber o escopo exato do sistema fazendo perguntas.
- Comece a entrevista fazendo algumas perguntas.
- Nem todas as coisas podem ser esclarecidas no início; continue fazendo perguntas esclarecedoras durante a entrevista.
Etapa 2: Estimativa do verso do envelope
- Estabeleça uma estimativa razoável do tamanho do sistema que você deseja projetar.
- Tente estimar os recursos (armazenamento, CPU, memória, rede, etc) necessários para construir o sistema.
- Mais tarde, isso ajudará quando você se concentrar em dimensionamento, particionamento, balanceamento de carga, cache, etc.
Etapa 3: Definição da interface do sistema
- Descrever as interfaces do sistema.
- Defina quais APIs são esperadas do sistema.
- Isso não apenas estabelecerá o contrato exato esperado do sistema, mas também garantirá que você não tenha errado nos requisitos.
Etapa 4: Definir o modelo de dados
- Defina o modelo de dados, quais tabelas o sistema terá e quais campos cada tabela conterá.
- A definição do modelo de dados também esclarecerá como os dados fluirão entre diferentes componentes.
- Mais tarde, isso guiará o particionamento e o gerenciamento de dados.
Etapa 5: Design de alto nível
- Desenhe um diagrama de blocos com 5-6 caixas representando os componentes principais do seu sistema.
- Identifique componentes suficientes que são necessários para resolver o problema de design de ponta a ponta.
Etapa 6: Projeto detalhado
- Aprofundar em 2-3 componentes principais.
- O feedback do entrevistador deve sempre orientá-lo para quais partes do sistema você deve explicar mais.
- Descreva várias opções, seus prós e contras e por que você escolheu uma em vez da outra.
Etapa 7: Identificando e resolvendo gargalos
- Identificar e discutir tantos gargalos quanto possível.
- Alguns exemplos de gargalos são o único ponto de falha, taxa de transferência de rede, taxa de E/S, CPU e limites de memória, etc.
- Descrever diferentes maneiras de mitigar os gargalos.
Road Map
Full Cycle
Plano de capacidade
-
DAU (Daily Active Users) - quantidade de usuários por dia
-
Picos de acesso
-
Relação de Reading e Writing
-
Bandwidth
-
Replicator Factor? Vai ser replicado para quantos nós
-
Ex: 500Mi de usuarios e 100M DAU
- 2x mais que a media de picos
- Se tiver arquivos, deve ser levado em consideração o tamanho do arquivo se vai subir ele ou baixar
- Trabalhar com notação científica e arredondamentos para calcular
