Software
Desarrollo
DevOps

¿Qué es la ingeniería de plataformas? La evolución de 'devops'

La ingeniería de plataformas es una nueva forma de hacer devops que utiliza herramientas y datos centralizados para situar a los desarrolladores en el centro de la acción. He aquí cómo funciona.

Desarrollo
Créditos: ThisisEngineering RAEng (Unsplash).

La ingeniería de plataformas es un concepto reciente que tiene como objetivo trasladar las lecciones del mundo real devops a una forma más concreta y replicable. Devops es una tendencia poderosa en el desarrollo de software, ya que ayuda a romper las barreras en el ciclo de vida de desarrollo de este. La ingeniería de plataformas puede beneficiar a las organizaciones de software al mejorar la calidad, la experiencia del desarrollador y el tiempo de obtención de valor del cliente. Al tratar los aspectos específicos de la tecnología y el proceso, la ingeniería de plataformas es una expresión concreta de devops y puede ayudar a equilibrar las necesidades contrapuestas de un control centralizado frente a la autonomía del equipo.

Gartner identifica la ingeniería de plataformas como una de las tendencias clave en desarrollo para 2023. Veamos qué es y cómo aprovecharla.

 

Devops frente a ingeniería de plataformas

Devops se dedica a ver el ciclo de vida del desarrollo de software de forma holística para comprenderlo y gestionarlo mejor. Nos pide que tratemos el desarrollo y las operaciones como dos partes del mismo proceso. Su objetivo es que las personas implicadas en la construcción participen en el despliegue, cerrando así el bucle de retroalimentación y mejorando el proceso de desarrollo de software en su conjunto.

Muchos creen que la ingeniería de plataformas es una evolución práctica del ideal devops. Este concepto aplica al campo de la ingeniería de software centrado en proporcionar herramientas y soporte centralizados para gestionar la complejidad de los ciclos de vida del desarrollo. Es un concepto emergente, por lo que la definición es algo amorfa y está sujeta a cambios.

Aunque en el sector existe la sensación de que la ingeniería de plataformas está sustituyendo a devops, en realidad no es así. Como dice Matt Gowie, CEO de Masterpoint.io: "La gente está gritando 'devops está muerto', pero creo que en realidad sólo estamos reformulando la forma en que realmente implementamos devops y esa nueva escuela de pensamiento está encajando muy bien con la mayoría. El objetivo de los equipos de plataforma es permitir a los desarrolladores realizar tareas relacionadas con las operaciones, pero a través de abstracciones o "caminos dorados", como suele decirse. Eso aumenta [la experiencia del desarrollador] porque entonces los desarrolladores no necesitan levantar un ticket para conseguir algo y están practicando 'Tú lo construyes, tú lo ejecutas".

 

La ingeniería de plataformas es una evolución de devops que hace más explícito el papel transversal del desarrollador

 

 

El papel cambiante del desarrollador

"Tú lo construyes, tú lo diriges" se ha convertido en el lema de devops. La idea es garantizar que quienes tienen las manos en las palancas y la visión de lo que funciona sean capaces de gestionar el proceso. El problema del devops en el mundo real es cómo aplicar el concepto con eficacia. Sólo las organizaciones más sofisticadas y bien financiadas son capaces de dedicar suficientes recursos y atención a un equipo devops independiente. Como resultado, el término devops a menudo significa encargar a los desarrolladores tanto el desarrollo como las operaciones: una reconversión fundamental de lo que significa ser un desarrollador.

Esta forma de hacer devops prevé que el papel del desarrollador abarque todo el ciclo de vida. La ingeniería de plataformas es una evolución de devops que hace más explícito el papel transversal del desarrollador.

 

El auge de los portales para desarrolladores

El portal del desarrollador es el principal mecanismo y expresión de la ingeniería de plataformas. Su principal objetivo es reunir las herramientas, la documentación y la interactividad del desarrollador en un único lugar. Es una especie de front end de la infraestructura de desarrolladores de la organización.

Los portales para desarrolladores (también conocidos como plataformas internas para desarrolladores) han evolucionado a partir de varias necesidades y tendencias. Este manual sobre portales para desarrolladores clasifica estas herramientas en tres tipos: catálogo universal de servicios, catálogo de API vinculado a la pasarela de API y catálogo de microservicios.

 

Qué hay dentro del portal para desarrolladores

Las API ocupan un lugar destacado en la ingeniería de plataformas porque la adopción de la arquitectura de microservicios ha aumentado enormemente la complejidad de los equipos de software modernos. Orquestar microservicios en una gran organización puede ser todo un reto. El mero hecho de comprender qué microservicios están implicados en un caso de uso determinado puede resultar difícil. Un portal para desarrolladores ofrece una visión unificada de la red global de microservicios.

Otro aspecto del portal para desarrolladores es que ofrece un marco estándar para combinar las herramientas utilizadas por la organización. Esto permite a los equipos autogestionar la adopción de herramientas, pero de una forma reproducible y rastreable por la organización.

Por último, el portal para desarrolladores puede utilizarse para alojar documentación en una especie de wiki universal para desarrolladores. La búsqueda de texto completo suele formar parte del portal, lo que permite un acceso global e interorganizativo a la información. También puede servir como sistema de alertas y tickets.

En general, la idea es concentrar en el portal todo lo posible sobre el trabajo del equipo de desarrollo. De ese modo, cuando surja una necesidad, el portal será el primer lugar y el más probable para encontrar la solución. La información y las herramientas se reúnen en el portal en lugar de en conversaciones menos formales, donde podrían convertirse fácilmente en parte del conocimiento tácito no escrito.

Los ingenieros más experimentados y los directivos pueden contribuir a la planificación mediante un portal para desarrolladores. Actúa como un centro en el que la organización puede reunir y difundir políticas y buenas prácticas, al tiempo que afecta lo menos posible a la autonomía de los desarrolladores.

La ingeniería de plataformas implica la creación del portal interno para desarrolladores y las cadenas de herramientas y flujos de trabajo asociados que lo acompañan. El ingeniero de plataforma es, por tanto, responsable de respaldar la autonomía de los desarrolladores y, al mismo tiempo, proporcionarles un lugar central para interactuar con un apoyo y liderazgo centralizados.

 

Un ejemplo de plataforma: http://Backstage.io

Backstage.io es una plataforma de desarrolladores de código abierto de Spotify. Es un modelo útil para entender, de forma más concreta, en qué consiste la ingeniería de plataformas. Backstage es una aplicación web que proporciona un marco conectable y ampliable para una variedad de herramientas, API y servicios utilizados en el desarrollo.

La declaración de intenciones de Backstage dice: "En Spotify, siempre hemos creído en la velocidad y el ingenio que aporta contar con equipos de desarrollo autónomos. Pero como hemos aprendido de primera mano, cuanto más rápido creces, más fragmentado y complejo se vuelve tu ecosistema de software. Y entonces todo vuelve a ralentizarse".

Backstage es una solución de creación propia, similar a Jenkins en el mundo de CI/CD. A medida que más actores entren en este espacio, veremos más plataformas de software como servicio (SaaS) con capacidades similares.

Backstage tiene cuatro características principales para lograr los objetivos de la ingeniería de plataformas: un catálogo de software para controlar herramientas como microservicios, bibliotecas, canalizaciones de datos, sitios web y más desde una ubicación central; plantillas de software para definir y aplicar las mejores prácticas y plantillas para nuevos proyectos; TechDocs, un repositorio central y estandarizado para la documentación (Backstage llama a esto un enfoque "docs like code"); y Plugins que permiten ampliar la funcionalidad de la plataforma central.

Puedes hacerte una idea de Backstage jugando con su demo en vivo.

 

El catálogo de software

El corazón de Backstage y de otros portales para desarrolladores es el catálogo de software. Aquí, las API utilizadas para componer microservicios, tanto internos como de terceros, pueden descubrirse, gestionarse y consumirse automáticamente, pero en un formato coherente. Las API se modelan como una red de dependencias para facilitar la obtención de una vista de panel de todos los servicios de una organización, qué equipos los poseen y cómo interactúan.

Además de las API, es posible introducir en el portal toda una serie de herramientas y orquestarlas allí, en relación con las API que soportan. Las plataformas CI/CD como CircleCI y los repositorios de código como GitHub pueden asociarse a los proyectos con los que se relacionan. La idea es llevar el panorama tecnológico de la organización al portal, haciéndolo accesible tanto a los equipos que lo utilizan en forma de autoservicio como a los líderes encargados de gestionar sus equipos.

Con la configuración adecuada, un portal de desarrolladores puede proporcionar una vista del estado y la salud de una arquitectura de microservicios compleja y en expansión, incluso cuando se despliega en pilas homogéneas (como una mezcla de Kubernetes, serverless y máquinas virtuales) y a través de proveedores de nube.

 

El futuro de la ingeniería de plataformas

La idea central de la ingeniería de plataformas (una forma estandarizada de centralizar y gestionar el ciclo de vida global del desarrollo) está destinada a seguir creciendo en importancia. Aún es incipiente, pero la utilidad de la ingeniería de plataformas está ayudando a que la visión de devops sea una realidad más accesible para más organizaciones.

 

 



TE PUEDE INTERESAR...

CASOS DE ÉXITO

Accede a nuestra publicación de canal

DealerWorld Digital

Documentos ComputerWorld

Documento Pure Storage y Kyndryl INFRAESTRUCTURAS