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.
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.
- Alguma experiência criando ou usando aplicações web ajuda, mas não é obrigatória.
- Papel e caneta, para esboços e estimativas.
Sua trilha
0 de 13 aulas · 0%Restaurando seu progresso…
- 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
- 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
- 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
- 0x203Raciocine sobre latência e disponibilidadeUse números de latência, percentis e “noves” para definir e cumprir metas. 20 min 20 min
- Unidade 2 · 0/4 aulas
Blocos para escalar
Balanceadores de carga, caches, bancos de dados, replicação e sharding. Medalha: Construtor de escala
- 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
- 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
- 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
- 0x607Particione dados com shardingDivida os dados entre máquinas e adicione nós sem reembaralhar tudo. 20 min 20 min
- 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
- 0x708Troque consistência por disponibilidadeAplique o CAP, os modelos de consistência e os quóruns a dados replicados. 20 min 20 min
- 0x809Desacople o trabalho com filas de mensagensAbsorva picos e tire o trabalho lento do caminho da requisição. 20 min 20 min
- 0x9010Proteja serviços com rate limitingCompare algoritmos de limitação e rode um deles em vários servidores. 20 min 20 min
- 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
- 0xA011Projete um encurtador de URLPercorra um enunciado clássico: códigos curtos, redirecionamentos e escala. 20 min 20 min
- 0xB012Projete um feed de notíciasEquilibre fan-out na escrita e fan-out na leitura numa timeline social. 20 min 20 min
- 0xC013Projete um sistema de chatEntregue mensagens em tempo real, em ordem, a usuários que entram e saem. 20 min 20 min