Hoy publico el Manifiesto de la Computación Distribuida, un documento canónico de los primeros días de Amazon que transformó la arquitectura de la plataforma de comercio electrónico de Amazon. En él se destacan los retos a los que nos enfrentábamos a finales del siglo XX y se insinúa hacia dónde nos dirigimos.
Cuando se trata de la parte de comercio electrónico de Amazon, la información arquitectónica rara vez se comparte con el público. Por eso, cuando Amazon me invitó en 2004 a dar una charla sobre mi investigación en sistemas distribuidos, estuve a punto de no ir. Pensaba: servidores web y una base de datos, ¿qué tan difícil puede ser? Pero me alegro de haberlo hecho, porque lo que me encontré me dejó boquiabierto. La escala y la diversidad de sus operaciones no se parecen a nada que haya visto nunca, la arquitectura de Amazon estaba al menos una década por delante de lo que había encontrado en otras empresas.
Puede leer también | La computación cuántica sale de las sombras hacia los mercados públicos
Era algo más que un sitio web de alto rendimiento, estamos hablando de todo, desde el procesamiento de transacciones de gran volumen hasta el aprendizaje automático, la seguridad, la robótica, la clasificación de millones de productos: todo lo que se puede encontrar en un libro de texto sobre sistemas distribuidos estaba sucediendo en Amazon, y lo hacía a una escala increíble. Cuando me ofrecieron un trabajo, no pude resistirme. Ahora, después de casi 18 años como su director de tecnología, me sigue sorprendiendo a diario la inventiva de nuestros ingenieros y los sistemas que han construido.
Inventar y simplificar
Un reto continuo cuando se opera a una escala sin parangón, cuando se está décadas por delante de cualquier otro y se crece en un orden de magnitud cada pocos años, es que no hay ningún libro de texto en el que se pueda confiar, ni hay ningún software comercial que se pueda comprar. Esto significa que los ingenieros de Amazon tuvieron que inventar su camino hacia el futuro. Y con cada par de órdenes de magnitud de crecimiento, la arquitectura actual empezaría a mostrar grietas en la fiabilidad y el rendimiento, y los ingenieros empezarían a pasar más tiempo con cinta aislante virtual y WD40 que construyendo nuevos productos innovadores. En cada uno de estos puntos de inflexión, los ingenieros inventarían una nueva estructura arquitectónica para estar preparados para los siguientes órdenes de magnitud de crecimiento. Arquitecturas que nadie había construido antes.
Puede leer también | La computación cuántica ya es una realidad con el ordenador cuántico
A lo largo de las dos décadas siguientes, Amazon pasaría de un monolito a una arquitectura orientada a servicios, a microservicios, y luego a microservicios que se ejecutan sobre una plataforma de infraestructura compartida. Todo esto se hizo antes de que existieran términos como arquitectura orientada a servicios. En el camino aprendimos muchas lecciones sobre cómo operar a escala de Internet.
Durante mi discurso en AWS re:Invent en un par de semanas, planeo hablar sobre cómo los conceptos en este documento comenzaron a dar forma a lo que vemos en microservicios y arquitecturas impulsadas por eventos. Además, en los próximos meses, escribiré una serie de posts que profundizarán en secciones específicas del Manifiesto de la Computación Distribuida.
Una breve historia de la arquitectura de sistemas en Amazon
Antes de adentrarnos en la historia de la arquitectura de Amazon, ayuda a entender un poco dónde estábamos hace 25 años. Amazon se movía a un ritmo rápido, construyendo y lanzando productos cada pocos meses, innovaciones que hoy damos por sentadas: La compra en un clic, el autoservicio de pedidos, los reembolsos instantáneos, las recomendaciones, las similitudes, la búsqueda dentro del libro, la venta de asociados y los productos de terceros. La lista continúa. Y estas eran solo las innovaciones de cara al cliente, no estamos ni siquiera rascando la superficie de lo que ocurría entre bastidores.
Puede leer también | Google alcanzó la supremacia de la Computación Cuántica
Amazon comenzó con una arquitectura tradicional de dos niveles: una aplicación monolítica y sin estado (Obidos) que se utilizaba para servir las páginas y toda una batería de bases de datos que crecía con cada nuevo conjunto de categorías de productos, productos dentro de esas categorías, clientes y países en los que Amazon se lanzaba. Estas bases de datos eran un recurso compartido, y con el tiempo se convirtieron en el cuello de botella para el ritmo al que queríamos innovar.
En 1998, un grupo de ingenieros de alto nivel de Amazon comenzó a sentar las bases para una revisión radical de la arquitectura de Amazon para apoyar la próxima generación de innovación centrada en el cliente. Uno de los puntos centrales era la separación de la capa de presentación, la lógica empresarial y los datos, al tiempo que se garantizaba que la fiabilidad, la escala, el rendimiento y la seguridad cumplieran un listón increíblemente alto y se mantuvieran los costes bajo control. Su propuesta se denominó Manifiesto de la Computación Distribuida.
Puede leer también | Google ha creado Sandbox, para el desarrollo de la Computación Cuántica
Lo comparto ahora para dar una idea de lo avanzado que era el pensamiento del equipo de ingenieros de Amazon a finales de los noventa. Se inventaron a sí mismos para salir de los problemas, escalando un monolito en lo que ahora llamaríamos una arquitectura orientada al servicio, que era necesaria para apoyar la rápida innovación que se ha convertido en sinónimo de Amazon. Uno de nuestros Principios de Liderazgo es inventar y simplificar: nuestros ingenieros viven realmente según ese lema.
Las cosas cambian...
Una cosa que hay que tener en cuenta al leer este documento es que representa el pensamiento de hace casi 25 años. Hemos avanzado mucho desde entonces: nuestros requisitos empresariales han evolucionado y nuestros sistemas han cambiado considerablemente. Puede que lea cosas que le parezcan increíblemente simples o comunes, puede que lea cosas con las que no esté de acuerdo, pero a finales de los noventa estas ideas eran transformadoras. Espero que disfrute de su lectura tanto como yo.
El texto completo del Manifiesto de la Informática Distribuida está disponible a continuación. También puedes verlo en formato PDF.
Créditos: allthingsdistributed