S3 é arquivo, mas não é um sistema de arquivos
- O Amazon S3 é uma tecnologia de nuvem original lançada em 2006, chamada de "armazenamento de objetos", mas na prática voltada para arquivos.
- A ideia de que o S3 seria um "Amazon Cloud Filesystem" é uma crença útil para incentivar a adoção do S3, mas, na realidade, o S3 não é um sistema de arquivos.
O que é um sistema de arquivos e a "profundidade" de um módulo
- A API de arquivos do Unix é composta por cinco funções básicas, que fornecem tudo o que é necessário para ler e gravar arquivos.
- Essas funções lidam com muitos problemas, como buffering, cache de páginas, fragmentação, permissões, escalonamento de IO e outros, sem expor isso ao usuário.
- Módulos profundos têm a vantagem de permitir que o usuário use funcionalidades sem precisar pensar na complexidade.
Características do S3 (isso também é profundo)
- O S3 não reimplementa a API de sistema de arquivos do Unix, e sua forma básica de chamadas é diferente.
- A API do S3 é mais simples do que a API de arquivos do Unix, mas tem a limitação de não permitir sobrescritas parciais de objetos.
Softwares de sistema de arquivos, especialmente bancos de dados, não podem ser migrados para o Amazon S3
- Bancos de dados precisam de um lugar para armazenar dados, e isso normalmente fica em vários arquivos dentro de um sistema de arquivos.
- Bancos de dados dependem fortemente da capacidade de fazer sobrescritas parciais, o que não é possível no S3.
O que o S3 faz bem e o que não faz
- A vantagem do S3 é que a largura de banda de leitura e escrita é muito alta.
- Porém, o S3 não tem sobrescrita parcial, operações de renomear ou mover, e também é lento para listar arquivos.
- Ainda assim, o S3 exige pouca manutenção e simplifica tarefas como configuração de backup, replicação e provisionamento.
A importância da profundidade do módulo entre organizações
- Não é surpreendente que o S3 tenha se tornado a primeira API de nuvem popular, já que APIs profundas ajudam a gerenciar a complexidade entre organizações.
- Integrar softwares corporativos complexos, como o SAP, é um trabalho doloroso, e isso acontece porque o SAP não é um módulo profundo.
Outras informações
- Este artigo não pretende sugerir que o S3 é superestimado; ele explica o conceito de módulos profundos em comparação com módulos relativamente rasos.
- Alguns bancos de dados foram projetados para usar a API do S3 como armazenamento; isso é possível, mas não é transparente.
- No S3, muitos formatos de arquivo têm desempenho inferior ao de disco.
Opinião do GN⁺
- É importante entender que o S3 não é um substituto para um sistema de arquivos, mas sim uma solução de armazenamento otimizada para casos de uso específicos. Por exemplo, ele é adequado para armazenar e transferir arquivos grandes e imutáveis, mas não é indicado para aplicações que exigem atualizações parciais frequentes, como bancos de dados.
- O desempenho e a escalabilidade do S3 são muito altos, mas, ao considerar custo-benefício e complexidade de gerenciamento, ele não é adequado para todos os projetos. Por exemplo, o projeto open source MinIO pode ser uma boa alternativa para organizações que desejam construir um armazenamento compatível com S3 em sua própria infraestrutura.
- Ao usar o S3, há considerações adicionais como consistência dos dados, custos de rede e controle de acesso, e esses fatores podem impactar o design de todo o sistema.
- Embora os casos de uso do S3 possam ser limitados, ele é uma ferramenta muito poderosa em aplicações específicas, como data lakes ou soluções de backup. Sua capacidade de armazenar dados com segurança e recuperá-los rapidamente quando necessário oferece valor importante para muitos negócios.
- Este artigo pode ajudar na tomada de decisões técnicas ao oferecer uma compreensão profunda dos detalhes técnicos do S3 e de casos de uso reais.
1 comentários
Opiniões no Hacker News
bit rot.INSERT/UPDATE/DELETE.