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 (planear como construir softwares grandes que atendem muitas pessoas) é como planear uma cidade: ruas, armazenamento, semáforos e equipas 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 utilizadores 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 a atender utilizadores 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 a esperar na fila), taxa de acerto do cache (quantas vezes encontramos a resposta na memória rápida), entre outros.