Carregando

do primeiro conceito à prática com confiança

Arquitetura de sistemas

Prepare-se para entrevistas de arquitetura de sistemas, dos requisitos a arquiteturas escaláveis.

Começar a aprender 13 aulas · primeira aula com cerca de 20 min · grátis · sem cadastro
Sobre esta trilha

Entrevistas de arquitetura de sistemas (system design) pedem que você esboce um sistema em grande escala - um encurtador de URL, um feed de notícias, um app de chat - e defenda suas escolhas. Esta trilha ensina um roteiro de entrevista que você pode repetir, estimativas rápidas de ordem de grandeza e os blocos que todo projeto usa: balanceadores de carga, caches, bancos de dados, sharding, replicação, filas e limitadores de taxa. Você vai aprender os trade-offs que os entrevistadores investigam (consistência versus disponibilidade, push versus pull) e terminar resolvendo problemas clássicos de entrevista. Você vai praticar do jeito que a entrevista funciona: estimando na hora, quebrando sistemas simulados, respondendo às perguntas de acompanhamento do entrevistador e apresentando projetos em voz alta, contra o relógio.

Antes de começar
  • Alguma experiência criando ou usando aplicações web ajuda, mas não é obrigatória.
  • Papel e caneta, para esboços e estimativas.
Carregando progresso…
  1. Unidade 1 · 0/3 aulas

    Fundamentos da entrevista

    Estruture a entrevista, estime a escala e defina metas de latência e disponibilidade. Medalha: Projetista de plantas

    1. 0x001Conduza uma entrevista de system designUse um roteiro repetível para transformar um enunciado vago em um projeto que você consegue defender. 20 min 20 min
    2. 0x102Estime a escala no verso de um envelopeTransforme número de usuários em requisições por segundo, armazenamento e largura de banda. 20 min 20 min
    3. 0x203Raciocine sobre latência e disponibilidadeUse números de latência, percentis e “noves” para definir e cumprir metas. 20 min 20 min
  2. Unidade 2 · 0/4 aulas

    Blocos para escalar

    Balanceadores de carga, caches, bancos de dados, replicação e sharding. Medalha: Construtor de escala

    1. 0x304Escale horizontalmente atrás de um balanceador de cargaCompare a escala vertical e a horizontal e distribua o tráfego entre servidores. 20 min 20 min
    2. 0x405Acelere leituras com cacheEscolha um padrão de cache, uma política de remoção e um jeito de manter os dados atualizados. 20 min 20 min
    3. 0x506Escolha e dimensione um banco de dadosEscolha SQL ou NoSQL pelo padrão de acesso e depois adicione índices e réplicas. 20 min 20 min
    4. 0x607Particione dados com shardingDivida os dados entre máquinas e adicione nós sem reembaralhar tudo. 20 min 20 min
  3. Unidade 3 · 0/3 aulas

    Trade-offs de sistemas distribuídos

    Consistência, filas e limitação de taxa em muitas máquinas. Medalha: Domador de trade-offs

    1. 0x708Troque consistência por disponibilidadeAplique o CAP, os modelos de consistência e os quóruns a dados replicados. 20 min 20 min
    2. 0x809Desacople o trabalho com filas de mensagensAbsorva picos e tire o trabalho lento do caminho da requisição. 20 min 20 min
    3. 0x9010Proteja serviços com rate limitingCompare algoritmos de limitação e rode um deles em vários servidores. 20 min 20 min
  4. Unidade 4 · 0/3 aulas

    Projetos clássicos de entrevista

    Junte tudo: um encurtador de URL, um feed de notícias e um sistema de chat. Medalha: Arquiteto de sistemas

    1. 0xA011Projete um encurtador de URLPercorra um enunciado clássico: códigos curtos, redirecionamentos e escala. 20 min 20 min
    2. 0xB012Projete um feed de notíciasEquilibre fan-out na escrita e fan-out na leitura numa timeline social. 20 min 20 min
    3. 0xC013Projete um sistema de chatEntregue mensagens em tempo real, em ordem, a usuários que entram e saem. 20 min 20 min