Los equipos de telecomunicaciones deben funcionar durante años sin detenerse, incluso durante las actualizaciones. En 1986, Joe Armstrong y sus colegas de Ericsson comenzaron a construir un lenguaje para ese mundo: Erlang, con procesos ligeros, paso de mensajes y reemplazo de código en caliente en lugar de memoria compartida e hilos.

La prueba insignia fue el conmutador ATM AXD301, anunciado en 1998. Ejecuta Erlang distribuido sobre hardware duplicado, escala de 10 a 160 Gbit/s y está diseñado para que el hardware y el software puedan cambiarse sin interrumpir el tráfico. En 2001 contenía 1,13 millones de líneas de Erlang en 2248 módulos, y alcanzó una fiabilidad observada de nueve nueves, 99,9999999 %.

La filosofía de Erlang de dejar que las cosas fallen, con árboles de supervisores que reinician los procesos fallidos, también fue una ventaja de productividad: la historia de HOPL informa un aumento de cuatro veces en la productividad de los desarrolladores en el proyecto. El mismo año en que se lanzó el AXD301, Erlang fue prohibido para nuevos productos de Ericsson; en diciembre de 1998 se publicó como código abierto en su lugar.

Dejar que los procesos pequeños fallen; los supervisores los reinician

El aislamiento de procesos evita que un fallo derribe el sistema

Los supervisores reinician los fallos automáticamente, sin intervención humana

La actualización de código en caliente elimina el tiempo de inactividad como restricción de despliegue

El modelo de procesos pequeños se adapta a miles de llamadas concurrentes de forma económica

Para los sistemas que nunca deben detenerse, invierta la estrategia de errores: espere fallos, aíslelos en procesos pequeños y haga que la recuperación sea automática, de modo que el sistema esté construido para sobrevivir en lugar de ser perfecto.

La publicación de Erlang como código abierto en 1998 lo difundió mucho más allá de Ericsson: el mismo modelo ahora ejecuta RabbitMQ, WhatsApp de Meta y sistemas de Elixir/Discord. Dentro de Ericsson, el AXD301 se convirtió en uno de los nuevos productos más exitosos de la compañía, y la tesis lo documentó como uno de los productos más fiables que Ericsson haya fabricado.

CONSULTA LAS PRUEBAS

Las fuentes

  1. Making Reliable Distributed Systems in the Presence of Software Errors (PhD thesis) Royal Institute of Technology, via erlang.org · erlang.org
  2. A History of Erlang (HOPL III) ACM SIGPLAN, mirror at labouseur.com · labouseur.com
  3. A (Very) Brief History of Erlang Vonage Developer Blog · developer.vonage.com ·