Segurança, Privacidade e Multi-tenancy
Não se preocupe se essas palavras parecerem assustadoras — vamos explicar cada uma ao longo do caminho. Nesta lição, vamos aprender a falar em uma entrevista sobre como manter um sistema seguro e privado. Vamos começar com authn/authz — abreviação para duas coisas: authentication (autenticação — ver
System Design (planejar como construir softwares grandes que atendem muitas pessoas) é como planejar uma cidade: ruas, armazenamento, semáforos e equipes de manutenção, para que a cidade continue funcionando bem mesmo no horário de pico, quando todo mundo está na rua ao mesmo tempo.
- Segurança e privacidade
- A ideia central desta lição: como mantemos o sistema seguro e os dados dos usuários privados. Isso inclui: autenticação e autorização (authn/authz — quem você é e o que você pode fazer), manter segredos e senhas em um lugar protegido (secrets), criptografar dados (encryption), separar clientes diferentes (tenant isolation), prevenir uso indevido (abuse prevention), e por quanto tempo mantemos os dados e quando os excluímos (retention).
- Trade-off
- Trade-off — uma escolha consciente em que você ganha uma coisa e paga por ela com outra, como escolher fast food em vez de uma refeição caseira: você economiza tempo, mas perde um pouco de qualidade. Em uma entrevista, você explica o que ganhou e o que custou.
- Métrica operacional
- Uma métrica operacional — um número que mostra se a decisão realmente funciona quando o sistema está no ar e atendendo usuários reais (isso é chamado de produção). Por exemplo: latência (quanto tempo leva para obter uma resposta), taxa de erro (a proporção de requisições que falham), atraso de fila (quantas tarefas estão esperando na fila), taxa de acerto do cache (quantas vezes encontramos a resposta na memória rápida), entre outros.