Amazon.com es el mayor cliente de AWS - El secreto de la calidad del servicio nacido del dogfooding interno
A partir del hecho de que el sitio de comercio electrónico de Amazon.com, Prime Video y Alexa funcionan sobre AWS, explicamos cómo el dogfooding interno mejora la calidad del servicio y cómo la carga del Prime Day ha fortalecido el diseño de AWS.
El origen de AWS fue un problema de infraestructura de Amazon.com
El nacimiento de AWS comenzó con los propios desafíos de infraestructura de Amazon.com. A principios de la década de 2000, el equipo de ingeniería de Amazon.com enfrentaba el problema de que cada vez que desarrollaban una nueva funcionalidad, debían solicitar la adquisición de servidores al equipo de infraestructura y esperar semanas o meses. Como cada equipo construía y operaba su propia infraestructura de forma independiente, proliferaban las inversiones duplicadas y la ineficiencia operativa. Alrededor de 2003, Andy Jassy (futuro CEO de AWS) y un pequeño equipo propusieron la idea de ofrecer la infraestructura interna de Amazon.com como servicios estandarizados. Esta idea evolucionó y en 2006 se lanzaron S3 y EC2 al público. Lo importante es que AWS no fue diseñado desde el principio para clientes externos, sino que nació para resolver los propios problemas de Amazon.com. Este hecho de ser sus propios primeros usuarios sustenta fundamentalmente la calidad del servicio de AWS.
Qué partes de Amazon.com funcionan en AWS
Prácticamente todos los sistemas de Amazon.com funcionan sobre AWS. El catálogo de productos, el motor de búsqueda, el motor de recomendaciones, el procesamiento de pedidos, la gestión de inventario, la optimización de entregas y los chatbots de servicio al cliente utilizan servicios de AWS para todas las funciones del sitio de comercio electrónico. La transmisión de Prime Video almacena contenido en S3 y lo distribuye globalmente a través de CloudFront. El reconocimiento de voz y el procesamiento de lenguaje natural de Alexa funcionan sobre la infraestructura de aprendizaje automático de AWS. La visión por computadora de las tiendas sin cajero Amazon Go también se procesa en AWS. DynamoDB fue desarrollado originalmente para resolver problemas del carrito de compras de Amazon.com. El artículo publicado en 2007 "Dynamo: Amazon's Highly Available Key-value Store" hizo público el diseño de Dynamo desarrollado como sistema interno de Amazon.com, y este artículo se convirtió en la base del posterior DynamoDB. Es decir, DynamoDB es una tecnología forjada en la operación real de Amazon.com, ofrecida como servicio gestionado para clientes externos.
Prime Day - La prueba de estrés anual que pone a prueba los límites de AWS
El Prime Day, celebrado cada julio, es el mayor evento de tráfico del año para Amazon.com y simultáneamente la mayor prueba de estrés para AWS. En el Prime Day de 2023, se compraron más de 375 millones de artículos en 48 horas. Para procesar este volumen de tráfico, AWS comienza los preparativos meses antes del Prime Day. El equipo de ingeniería de Amazon.com calcula la carga esperada basándose en datos de tráfico históricos y aprovisiona previamente la capacidad de cada servicio. La carga del Prime Day puede alcanzar decenas de veces el tráfico normal. Esta prueba de carga extrema fortalece la fiabilidad de los servicios de AWS. Los algoritmos de Auto Scaling, la partición de DynamoDB, las estrategias de caché de CloudFront y la lógica de distribución de carga de ELB son ejemplos de mejoras de AWS nacidas de la experiencia del Prime Day. Por ejemplo, la capacidad adaptativa de DynamoDB (redistribución automática del rendimiento a particiones calientes) fue desarrollada para resolver el problema de concentración de acceso en productos específicos durante las ventas flash del Prime Day.
El mecanismo por el cual el dogfooding mejora la calidad del servicio
El mecanismo por el cual el dogfooding (usar los propios productos) contribuye a la mejora de calidad reside en la velocidad y densidad del ciclo de retroalimentación. La retroalimentación de clientes externos tarda en llegar al equipo de desarrollo a través de tickets de soporte, foros y gestores de cuentas. En cambio, la retroalimentación de los equipos internos de Amazon.com llega instantáneamente al equipo de desarrollo dentro de la misma red corporativa. Los ingenieros de Amazon.com utilizan los servicios de AWS diariamente y experimentan directamente la degradación del rendimiento, la dificultad de uso de las API y las deficiencias en la documentación. Esta experiencia se convierte en la fuerza impulsora más poderosa para la mejora del servicio. Como ejemplo concreto, la función de gestión de concurrencia de AWS Lambda fue desarrollada cuando los equipos internos de Amazon.com experimentaron el problema de que una función descontrolada afectaba a otras funciones al usar Lambda a gran escala. La concurrencia reservada (Reserved Concurrency) y la concurrencia aprovisionada (Provisioned Concurrency) son funciones nacidas de esta experiencia interna.
La estructura donde los intereses del cliente interno y externo se alinean
El hecho de que Amazon.com sea el mayor cliente de AWS también beneficia a los clientes externos. Amazon.com es uno de los sitios de comercio electrónico más grandes del mundo, y su escala de tráfico, requisitos de disponibilidad y requisitos de seguridad son más estrictos que los de la mayoría de los clientes externos. Las mejoras tecnológicas en las que AWS invierte para cumplir estos requisitos benefician a todos los clientes externos. Por ejemplo, si Amazon.com mejora el rendimiento de escalado de DynamoDB para el Prime Day, esa mejora se aplica a todos los clientes que usan DynamoDB. Si Amazon.com mejora la calidad de distribución de CloudFront, la velocidad de visualización de todos los sitios web que usan CloudFront mejora. Sin embargo, esta estructura también tiene riesgos potenciales. Como Amazon.com y los clientes externos comparten la misma infraestructura, los eventos a gran escala de Amazon.com (como el Prime Day) podrían afectar el rendimiento de los clientes externos. AWS gestiona este riesgo mediante la separación física de recursos y la planificación de capacidad. Los servicios de AWS están diseñados con aislamiento multi-tenant para que el tráfico de un cliente específico no afecte a otros clientes. Para aprender sistemáticamente sobre estrategia en la nube y la filosofía de diseño de AWS, los libros especializados (Amazon) son una buena referencia.