Construcción y operación de S3
- S3 es la sigla de Amazon Simple Storage Service y se refiere a un sistema de almacenamiento a gran escala.
- Andy Warfield trabajó en S3 y llegó a tener una comprensión amplia del sistema.
- S3 es un servicio que abarca desde la experiencia de rendimiento del cliente hasta la mecánica de los discos duros.
Hace 17 años, en un campus universitario muy lejano...
- S3 se lanzó el 14 de marzo de 2006 y este año cumple 17 años.
- Warfield terminó su doctorado en la Universidad de Cambridge, participó en el proyecto Xen y luego fundó una startup llamada XenSource.
- XenSource creció y fue adquirida por Citrix, y Warfield aprendió mucho sobre crecimiento del negocio y gestión de equipos.
Cómo funciona S3
- Después de unirse a Amazon, Warfield aprendió cómo funciona S3 de Seth Markle, uno de los primeros ingenieros de S3.
- S3 es un servicio de object storage con una API HTTP REST, compuesto por frontend, servicio de namespace, una flota de almacenamiento con discos duros y una flota que realiza trabajos en segundo plano.
- S3 está compuesto por cientos de microservicios, y la interacción entre equipos se basa en contratos a nivel de API.
Observaciones iniciales
- S3 es un ecosistema en evolución continua que va más allá del software e incluye hardware y personas.
- La escala de S3 está formada por un conjunto de servicios escalados horizontalmente en cada componente, por lo que toma tiempo entender la magnitud del sistema.
Escala técnica: la física del almacenamiento
- S3 es un sistema enorme que utiliza millones de discos duros.
- Los discos duros representan una maravilla de tecnología e innovación, y ofrecen una gran eficiencia de costos.
Gestión térmica: ubicación de datos y rendimiento
- En S3 se realizan optimizaciones para resolver el problema de la 'gestión térmica', distribuyendo de forma uniforme las solicitudes de I/O entre muchos discos duros.
Replicación: ubicación de datos y durabilidad
- S3 usa esquemas de redundancia como replicación y erasure coding para garantizar la durabilidad de los datos y gestionar el calor.
El impacto de la escala: estrategias de ubicación de datos
- Al distribuir los datos lo más ampliamente posible entre la mayor cantidad de discos, se logra que los datos de cada cliente ocupen una porción muy pequeña en cada disco, consiguiendo así aislamiento de carga de trabajo.
El factor humano
- La complejidad de S3 no se debe solo a factores técnicos, sino también al factor humano.
- Amazon fomenta que los ingenieros y equipos fallen rápido y de forma segura, y que se enfoquen en ofrecer almacenamiento de alta durabilidad.
Ampliar mi propia escala: resolver problemas difíciles que empiezan y terminan con la 'ownership'
- Warfield experimentó en Amazon una expansión de su propia escala personal y aprendió sobre la escala del software, las personas y el negocio.
- En Amazon hay un fuerte énfasis en la 'ownership', lo que ayuda a entender la estructura organizacional y el enfoque de ingeniería.
La opinión de GN⁺
- S3 es más que un simple servicio de almacenamiento: es un ecosistema complejo donde se combinan hardware, software y factor humano.
- Este artículo ofrece ideas valiosas para ingenieros de software principiantes que quieren entender la escala y complejidad de S3.
- La cultura de 'ownership' de Amazon es un elemento importante que motiva a los equipos y a las personas a innovar con un mayor sentido de responsabilidad.
1 comentarios
Opiniones de Hacker News
Trabajo en genómica y he manejado muchos almacenes de datos de varios petabytes durante la última década.
Las cosas que podríamos construir si S3 usara un protocolo basado en OAuth2 para delegar acceso de lectura/escritura.
Manejar la autenticación en sistemas distribuidos es muy difícil.
Es bueno ver a empleados de Amazon hablar públicamente sobre el funcionamiento interno de S3.
La parte que explica el cabezal del disco duro comparándolo con un avión 747.
Volviendo a la época de S3 KeyMap, aprendimos que incluso después de identificar los objetos/particiones/buckets más calientes, no bastaba con moverlos para resolver el problema.
S3 no es solo almacenamiento, es un estándar.