Las primitivas

El autor de Puppet, Luke Kanies, habla en el capítulo sobre esta herramienta en The Architecture of Open Source Applications que basaron la arquitectura de este framework en piezas primitivas. Al igual que se diseñó la arquitectura de Amazon como se comenta en este fantástico artículo sobre 10 lecciones que aprender (o que aprendieron) de los 10 años que recientemente ha cumplido AWS.

La idea es muy clara y reveladora: Diseñan piezas muy pequeñas y simples que se puedan conectar perfectamente entre ellas y que se pueden componer para construir sistemas más grandes y complejos. La ventaja principal de las piezas primitivas es que son tan pequeñas y básicas que se pueden utilizar en cualquier entorno y cualquiera puede entender su funcionamiento y trabajar con estas primitivas en muy poco tiempo.

Son los ladrillos de una casa, tan básicos que para la gran mayoría no hay ningún problema en levantar un muro. Pero a la vez, estas piezas tan pequeñas, como las letras, permiten construir sistemas muy complejos con significado propio como las oraciones. Estos sistemas se pueden conectar entre si porque sus primitivas son interconectables y se pueden ampliar o reducir. Se pueden descomponer en sistemas más pequeños (palabras) e investigar qué primitivas han tomado parte en el proceso para analizar la trazabilidad.

Obviamente es complicado llevar a la práctica el concepto de primitivas. Que cada organización tenga que diseñar y desarrollar piezas genéricas que encajen en cualquier entorno no es fácil ni de imaginar. Pero merece la pena tener la idea en la cabeza. Al fin y al cabo, la corriente de los microservicios que ha surgido a raíz de construir monstruos enormes va en la dirección de replantear el software para desarrollar sistemas que sean más fáciles de componer y descomponer. Como piezas de Lego.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s