28 de agosto de 2024

Hace 22 años, este correo de Jeff Bezos en Amazon cambió para siempre la forma en que programamos apps

Hace 22 años, este correo de Jeff Bezos en Amazon cambió para siempre la forma en que programamos apps

En 2002 un alto directivo de Amazon —el mismísimo Jeff Bezos, según la mayoría de las fuentes; Allan Vermeulen, CTO de Amazon en aquel momento, según otras— lanzó una circular interna dirigida a todos los equipos de desarrollo de Amazon. Esa circular terminaría cambiando para siempre las dinámicas de desarrollo web y de software, dando comienzo al actual paradigma basado en APIs/microservicios.

Poco tiempo antes, los expertos de la compañía habían decidido que una estrategia que girase en torno a software monolítico no resultaría lo bastante ágil para las necesidades cada vez más complejas de Amazon: necesitaban dividir sus servicios en componentes más pequeños y autónomos que se comunicaran entre sí.

No es que esta fuera la primera API de la historia: ya dos años antes, Salesforce había creado la primera API privada y, nueve meses después de eso, eBay creaba la primera API pública disponible para desarrolladores. Sin embargo, eran aún proyectos puntuales que no afectaban globalmente a la forma de desarrollar software en sus respectivas compañías.

Además, el enfoque de Amazon no se limitó a implementar APIs. En cambio, la compañía optó por una arquitectura de microservicios, basado en la exposición de datos y funcionalidades a través de interfaces estandarizadas (como las APIs, pero sin limitarse a las mismas).

Pero, ¿qué es una API?

'API' son las siglas de 'Application Programming Interface', que se traduce como 'interfaz de programación de aplicaciones', y designa al conjunto de reglas y protocolos que permiten la comunicación entre diferentes aplicaciones o servicios, facilitando la reutilización de funcionalidades y la integración de sistemas.

Una consecuencia de esto es que las APIs hacen posible no tener que reinventar la rueda con cada nueva aplicación; así, las tiendas online recurren a contactar vía API con los grandes servicios de pago (como PayPal) en lugar de tener que implementar su propio sistema.

A servicios como PayPal les interesa desarrollar APIs públicas que multipliquen su uso y popularidad. También sería el caso de Twitter, cuando una aplicación 'cliente' de terceros permite que la red social llegue, por ejemplo, a sistemas operativos minoritarios no compatibles con la app oficial.

Un aspecto fundamental de las APIs es su capacidad para generar un 'efecto red': al ser 'bloques de construcción digitales', cuanto mayor sea el número de funcionalidades que proporcionen, más valiosas serán las aplicaciones que se puedan construir con ellas.

En la práctica actual, aunque las APIs siguen siendo fundamentales, especialmente para la comunicación con servicios externos, la comunicación entre microservicios dentro de una arquitectura distribuida ha evolucionado: los sistemas de mensajería asíncrona como RabbitMQ, Kafka o PubSub son ahora una elección popular para evitar los problemas asociados a la comunicación síncrona mediante APIs REST.

La circular de marras

El texto completo de la ya conocida como 'API Mandate' ('Orden API') es el siguiente:

"Todos los equipos expondrán a partir de ahora sus datos y funcionalidad a través de interfaces de servicio.
Los equipos deben comunicarse entre sí a través de estas interfaces.
No se permitirá ninguna otra forma de comunicación entre procesos: nada de vinculación directa, ni lecturas directas del depósito de datos de otro equipo, ni modelo de memoria compartida, ni ninguna clase de puertas traseras: la única comunicación permitida será mediante llamadas a la interfaz de servicio a través de la red.
No importa qué tecnología utilicéis: HTTP, Corba, Pubsub, protocolos personalizados… da igual.
Todas las interfaces de servicio, sin excepción, deberán diseñarse desde cero para que sean externalizables. Es decir, el equipo debe planificar y diseñar para poder exponer la interfaz a los desarrolladores en el mundo exterior. Sin excepciones.
Cualquiera que no haga esto será despedido".

En varios sitios web encontrarás referencias a la existencia de un séptimo punto del documento que supuestamente reza "Gracias; ¡Que tengas un buen día!", pero se trata de una broma insertada por el ex-empleado de Amazon que hizo pública la circular por primera vez hace 12 años en Google+. Él mismo dejó claro que, por el contrario, el sexto punto no era ninguna broma.

El término 'API' (que data de mediados del s. XX) no aparece ni una sola vez en todo el documento, pero todas las claves del actual concepto de API están ahí: exposición de datos, externalización de uso, interacciones estandarizadas, 'agnosticismo' tecnológico (es decir, que el funcionamiento sea independiente del protocolo / software / sistema operativo usado)…

De este modo, Amazon no sólo revolucionó su infraestructura interna, sino que al popularizarla, logró crear un nuevo nicho de mercado… que ellos mismos cubrieron un año más tarde con el lanzamiento de AWS: esta plataforma, entre otros muchos servicios, incluye la posibilidad de proporcionar funcionalidad API a las aplicaciones de sus clientes.

En Genbeta | JAMstack, un nuevo enfoque de desarrollo web impulsado por el éxito financiero de Netlify

-
La noticia Hace 22 años, este correo de Jeff Bezos en Amazon cambió para siempre la forma en que programamos apps fue publicada originalmente en Genbeta por Marcos Merino .



☞ El artículo completo original de Marcos Merino lo puedes ver aquí

No hay comentarios.:

Publicar un comentario