Skip to main content

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

  • teste alt text

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