Construção e operação do S3
- S3 é a sigla de Amazon Simple Storage Service e se refere a um sistema de armazenamento em larga escala.
- Andy Warfield trabalhou no S3 e passou a ter uma compreensão ampla do sistema.
- O S3 é um serviço que abrange diversas áreas, da experiência de desempenho do cliente até a mecânica dos discos rígidos.
Há 17 anos, em um campus universitário distante...
- O S3 foi lançado em 14 de março de 2006 e completa seu 17º aniversário este ano.
- Warfield concluiu seu doutorado na Universidade de Cambridge, participou do projeto Xen e depois fundou a startup XenSource.
- A XenSource cresceu e foi adquirida pela Citrix, e Warfield aprendeu muito sobre crescimento de negócios e gestão de equipes.
Como o S3 funciona
- Depois de entrar na Amazon, Warfield aprendeu como o S3 funciona com Seth Markle, um dos primeiros engenheiros do S3.
- O S3 é um serviço de object storage com API HTTP REST, composto por frontend, serviço de namespace, uma frota de armazenamento com discos rígidos e uma frota que executa tarefas em segundo plano.
- O S3 é composto por centenas de microsserviços, e a interação entre as equipes acontece por meio de contratos no nível de API.
Observações iniciais
- O S3, mais do que software, é um ecossistema em evolução contínua que inclui hardware e pessoas.
- A escala do S3 faz com que cada componente seja composto por um conjunto de serviços com scale-out, então leva tempo para entender a dimensão do sistema.
Escala técnica: a física do armazenamento
- O S3 é um sistema muito grande que usa milhões de discos rígidos.
- Os hard drives reúnem maravilhas de tecnologia e inovação e têm excelente eficiência de custo.
Gestão de calor: posicionamento dos dados e desempenho
- No S3, são feitas otimizações para resolver o problema de "gestão de calor", distribuindo de forma equilibrada as requisições de I/O por muitos discos rígidos.
Replicação: posicionamento dos dados e durabilidade
- O S3 usa esquemas de redundância, como replicação e erasure coding, para garantir a durabilidade dos dados e gerenciar o calor.
O impacto da escala: estratégia de posicionamento dos dados
- Ao distribuir os dados o mais amplamente possível entre muitos discos, os dados de cada cliente passam a ocupar uma quantidade muito pequena em cada disco, alcançando isolamento de workload.
O fator humano
- A complexidade do S3 se deve não apenas a fatores técnicos, mas também ao fator humano.
- A Amazon incentiva engenheiros e equipes a falharem rápido e com segurança, mantendo o foco em fornecer armazenamento com alta durabilidade.
Expandindo a mim mesmo: resolvendo problemas difíceis que começam e terminam com 'ownership'
- Warfield vivenciou na Amazon uma expansão de escala pessoal, aprendendo sobre a escala de software, pessoas e negócios.
- Na Amazon, há forte ênfase em 'ownership', o que ajuda a entender a estrutura organizacional e a abordagem de engenharia.
Opinião do GN⁺
- O S3 vai além de um simples serviço de armazenamento: é um ecossistema complexo que combina hardware, software e fatores humanos.
- Este texto oferece insights para engenheiros de software iniciantes que querem entender a escala e a complexidade do S3.
- A cultura de 'ownership' da Amazon é um fator importante que motiva equipes e indivíduos a buscar inovação com maior senso de responsabilidade.
1 comentários
Comentários do Hacker News
Trabalhando na área de genômica, lidei com muitos armazenamentos de dados na escala de petabytes ao longo dos últimos 10 anos.
As coisas que poderíamos construir se o S3 pudesse usar um protocolo baseado em OAuth2 para delegar acesso de leitura/gravação.
Lidar com autenticação em sistemas distribuídos é muito difícil.
É bom ver funcionários da Amazon falando publicamente sobre o funcionamento interno do S3.
A parte que explica a cabeça do disco rígido comparando-a a um avião 747.
Voltando aos tempos do S3 KeyMap, aprendemos que, mesmo após identificar os objetos/partições/buckets mais quentes, não dava para simplesmente movê-los e resolver o problema.
S3 não é apenas armazenamento, é um padrão.