Plan de referencia para el desarrollo de software

Copiar URL

Los planes de referencia son una manera fundamentada, bien documentada y con respaldo de desarrollar e implementar software dentro de una empresa. Representan un plan de soporte que permite que los equipos de desarrollo diseñen los productos con mayor eficiencia y cumplan los estándares de la empresa. Asimismo, ofrecen un enfoque preciso para que los ingenieros de plataformas asesoren a los equipos de DevOps, inteligencia artificial y MLOps, seguridad, redes o demás áreas de la TI, de modo que se garantice la uniformidad, la confiabilidad y el uso eficiente del tiempo y los recursos.

La cantidad de planes de referencia puede variar en función del tamaño y la experiencia del equipo de desarrolladores. Por ejemplo, una empresa con un equipo de ingeniería de plataformas nuevo puede disponer de unos pocos planes que aborden procesos fundamentales, como el desarrollo de microservicios, los canales de CI/CD, la preparación de infraestructuras y la configuración de la determinación del estado interno de los sistemas. Por el contrario, un equipo más experimentado puede tener cientos de planes de referencia específicos, como el desarrollo de aplicaciones frontend, los canales de datos para cargas de trabajo de análisis o machine learning (aprendizaje automático), el desarrollo de aplicaciones sin servidor y los flujos de trabajo de seguridad y cumplimiento normativo. No obstante, independientemente de las características del equipo, los planes de referencia comparten diversos elementos, entre los que se incluyen: 

  • Plantillas de software: una plantilla modelo de microservicios previamente configurada, como una FastAPI de Python con Docker y los canales de CI/CD configurados.
  • Preparación de la infraestructura: módulos Terraform o Pulumi diseñados previamente para los recursos en la nube.
  • Canales de diseño e implementación: GitHub Actions o scripts de Jenkins configurados previamente.
  • Herramientas de determinación del estado interno: soluciones integradas de registro y supervisión.
  • Pautas de seguridad: políticas y análisis aplicados de antemano e integrados en el flujo de trabajo.

Descubre Red Hat OpenShift para los ingenieros de plataformas

El concepto de plan de referencia

El concepto del plan de referencia se inspira en la "Senda de Oro", término que acuñó el autor Frank Herbert en su novela de ciencia ficción Los hijos de Dune. Por influencia de esta obra, en Spotify se creó el concepto de plantilla para el software, con el objetivo de que los equipos de ingeniería pudieran adaptarse a las herramientas y los procesos. Desde entonces, este enfoque se popularizó en otras empresas, como Google y Netflix, e incluso algunas le asignan sus propios nombres; por ejemplo, Netflix lo denomina "camino pavimentado".

Una buena manera para comprender el plan de referencia es imaginar la preparación de un pastel. Para hacerlo, hay que precalentar el horno a una temperatura determinada y disponer de los utensilios adecuados y de los ingredientes necesarios. No se trata solo de seguir una receta, sino también de asegurarse de utilizar las herramientas y las técnicas correctas. Si quieres que otras personas hagan el mismo pastel, tienes que buscar la manera de mejorar la uniformidad y la eficiencia. Lo mismo ocurre con el plan de referencia. Cuanto más se sigue una plantilla específica para el desarrollo de software, más se perfeccionan el proceso y el producto. La puesta en práctica de un plan de referencia sería como los pasos que hay que seguir para hornear un pastel, pero sin tanto azúcar. 

Los arquitectos de software, entre ellos los de Red Hat®, mencionan cuatro características que deben reunir los planes de referencia:  opcionales, transparentes, ampliables y personalizables.

Opcionales

El diseño y la implementación de software usando planes de referencia deberían ser opcionales. Para facilitar y fomentar la innovación, es necesario que haya flexibilidad en cuanto al uso de los flujos de trabajo estándares. Los equipos de ingeniería pueden detectar situaciones en las que no se utiliza un plan de referencia e identificar aquellas en las que podría ser conveniente crear uno nuevo.

Transparentes

Los procesos y las herramientas de los planes de referencia deben ser transparentes. Los planes crean plantillas que permiten aplicar distintos enfoques sin necesidad de aprender la tecnología fundamental y, cuando son transparentes, los equipos de desarrollo pueden comprender mejor lo que ocurre en segundo plano.

Ampliables

Los planes de referencia deben poder ampliarse para incorporar nuevas funciones y características. Dado que son plantillas que pueden ajustarse según la situación, es posible personalizarlos. Sin embargo, si un caso práctico específico requiere una función adicional, un plan de referencia deberá ofrecer la flexibilidad suficiente para que pueda ampliarse sin problemas.

Personalizables

Los planes de referencia deben personalizarse fácilmente en función de las necesidades de los equipos de desarrollo (ya sean internos o de terceros) y de la experiencia que ya tenga la empresa al hacerlo de forma manual. Esto brinda la posibilidad de crear estándares que se implementarán en estos planes de referencia y mejorarán la seguridad en el proceso.

Si bien pueden variar según la solución que se utilice, deben reunir las cuatro características esenciales mencionadas: ser opcionales, transparentes, ampliables y personalizables.

Productividad de los desarrolladores con las tecnologías de Red Hat

Por lo general, los ingenieros de plataformas se encargan de crear y mantener los planes de referencia para que los equipos de desarrollo dispongan de prácticas recomendadas, herramientas específicas, servicios, recursos y procesos que permitan aumentar la productividad de los desarrolladores. El objetivo de la ingeniería de plataformas es mejorar la productividad y la colaboración entre diferentes equipos a través de una mayor uniformidad y eficiencia. Estos ingenieros se ocupan de identificar los problemas que surgen en el desarrollo y solucionarlos con herramientas y funciones estándares y reutilizables a través de una plataforma interna para desarrolladores (IDP). Una IDP consiste en un conjunto estandarizado de tecnologías y herramientas de autoservicio que los desarrolladores necesitan para crear e implementar código. 

Estos son algunos de los casos prácticos que admiten los planes de referencia:

Desarrollo de las aplicaciones

El objetivo de los desarrolladores es diseñar, probar y distribuir aplicaciones de manera estandarizada y centrada en la seguridad. Para ello, los planes de referencia les ofrecen la posibilidad de integrarlas y desarrollarlas de modo más eficiente. Al utilizar estas plantillas, los equipos pueden disponer de una base unificada que permite intercambiar información, fomenta la creación de herramientas compartidas y mejora la agilidad y la movilidad en toda la empresa. 

Análisis de datos

Los analistas recopilan, analizan e interpretan los datos para obtener información práctica. También pueden especializarse en desarrollar e implementar sistemas de inteligencia artificial y machine learning. Con los planes de referencia, los equipos de operaciones de machine learning (MLOps) pueden integrar sus modelos en el desarrollo de software. Asimismo, los planes de referencia ayudan a los analistas de datos a desarrollar modelos de inteligencia artificial y a los desarrolladores a implementarlos. 

Ingeniería de confiabilidad del sitio

Los equipos de ingeniería de confiabilidad del sitio (SRE) se encargan de la forma en que se implementa, configura y supervisa el código, así como de la disponibilidad, la latencia, la gestión de los cambios, la respuesta ante emergencias y la gestión de la capacidad de los servicios en la producción. Al usar planes de referencia, los SRE obtienen una mayor uniformidad para desarrollar sistemas de software muy confiables y con capacidad de ajuste.

Administración de sistemas

Los administradores de sistemas se encargan de implementar, configurar y mantener los sistemas informáticos de una empresa. Dado que gestionan miles de máquinas, necesitan emplear métodos sostenibles y con gran capacidad de ajuste. El uso de los planes de referencia proporciona un marco claro para las tareas y los procesos comunes, ya que simplifica o automatiza los trabajos rutinarios. De este modo, se reduce la complejidad de la gestión y se disminuye el riesgo de que se produzcan errores.


Herramientas de ingeniería de plataformas

Al tratarse de plantillas de autoservicio, los planes de referencia ofrecen muchas ventajas que favorecen la productividad de los desarrolladores, entre ellas: 

Reducción de la carga cognitiva: los procesos estandarizados reducen la carga cognitiva de los desarrolladores, por lo que disponen de más tiempo para dedicarse a la innovación. 

Agilización del desarrollo: los equipos de desarrollo tienen tareas definidas y pueden lograr resultados satisfactorios sin necesidad de buscar herramientas ni descifrar procesos, ya que se basan en las prácticas recomendadas actuales y establecidas que ya posee la empresa. 

Uniformidad establecida: las plantillas de uso compartido y la mejora de los procesos internos contribuyen a la uniformidad de los proyectos, lo cual se traduce en resultados más eficaces y una mayor calidad, sin importar que el equipo de desarrollo sea parte de la empresa o un tercero.

Aumento de la automatización: al automatizarse las tareas repetitivas (como las implementaciones o las pruebas de código), se facilita la aplicación de prácticas, por ejemplo, los canales de CI/CD, la infraestructura como código (IaC) y la gestión de la interfaz de programación de aplicaciones (API).  

Mayor facilidad de incorporación del personal: gracias a la documentación y las herramientas disponibles, los miembros nuevos de los equipos pueden familiarizarse con los flujos de trabajo más rápidamente, sin tener que buscar el mejor enfoque para cada tarea.

Mejora de la seguridad: las plantillas garantizan el cumplimiento de los estándares de seguridad con prácticas integradas, lo cual simplifica las auditorías posteriores.  

El diseño de los planes de referencia (también denominado "allanamiento del camino") implica elaborar un plan que garantice una experiencia sencilla y eficaz. Aunque su contenido puede variar en función de los objetivos, hay una serie de prácticas recomendadas que deben tenerse en cuenta para mejorar la productividad de los desarrolladores.

  1. Identifica al usuario. Por lo general, el usuario de un plan de referencia será un equipo de desarrollo. Como son varios los equipos o los integrantes que elaboran y mantienen las plantillas, quienes las utilicen serán un grupo específico de personas con distintos conjuntos de habilidades, como programación, creación de perfiles y gestión de la seguridad.
  2. Identifica el objetivo. El objetivo general de un plan de referencia es automatizar las prácticas actuales para aumentar la productividad de los desarrolladores.
  3. Organiza un plan detallado. Cuando se establecen pautas y pasos bien definidos, el usuario dispone de un marco sencillo y eficaz para completar cada tarea.
  4. Brinda herramientas y recursos. Si proporcionas la documentación y las herramientas adecuadas para ejecutar las tareas, contribuyes al desarrollo del plan de referencia.
  5. Integra el plan de referencia a una IDP. Los planes de referencia deben alojarse en las plataformas internas para desarrolladores (IDP) y ser de fácil acceso. Al integrarlos, te aseguras de que estén disponibles a través de esa plataforma y permites el autoservicio para los desarrolladores.
  6. Evaluación del éxito y mejora constante. Determina el éxito de un plan de referencia utilizando indicadores, como DevOps Research and Assessment (DORA), SPACE Framework o Flow Framework. Además, recopila los comentarios de los usuarios y repite el proceso para mejorar la eficiencia.

Desarrollo de microservicios

Un ejemplo en el que se utiliza un plan de referencia es el desarrollo de un microservicio nuevo a partir de plantillas diseñadas previamente por los equipos de operaciones. 

El término "microservicios" hace referencia al estilo de arquitectura de aplicaciones en el que un conjunto de servicios independientes se comunica a través de una API ligera. Una arquitectura de microservicios ofrece un enfoque más eficiente para el desarrollo de aplicaciones, ya que permite que cada función central dentro de una aplicación exista de manera independiente. De esta manera, los equipos de DevOps pueden trabajar en conjunto sin interferir en las tareas de los demás, debido a que los elementos de la aplicación están separados. Gracias a esto, más desarrolladores pueden trabajar en la misma aplicación simultáneamente y, así, reducir el tiempo invertido en esta etapa. 

Un plan de referencia puede aumentar aún más la productividad de los desarrolladores si se crea un proceso eficiente que permita diseñar, implementar y gestionar los microservicios. Para que este plan tenga éxito, es necesario integrar un canal bien estructurado y centrado en la automatización, las prácticas recomendadas y la determinación del estado interno de los sistemas.

Obtén más información sobre microservicios

Distribución de MLOps 

Los planes de referencia pueden facilitar la distribución de MLOps. Las MLOps se basan en los principios de DevOps y GitOps, y buscan establecer un proceso en evolución constante para integrar los modelos de machine learning en el desarrollo de software. Las prácticas de MLOps optimizan la colaboración entre diferentes equipos, lo cual fomenta el desarrollo ágil y la toma de decisiones basada en los datos dentro de las empresas. Además, reducen las tareas manuales de mantenimiento de estos modelos y garantizan su rendimiento y confiabilidad en todo momento.

La adopción de un plan de referencia que guíe la distribución de los modelos de machine learning permite que los equipos realicen el proceso de desarrollo, implementación y gestión fácilmente. Además, se establecen flujos de trabajo y prácticas para garantizar una distribución más confiable y uniforme, como los canales automatizados. 

Los equipos de MLOps pueden aprovechar las ventajas que conlleva disponer de planes de referencia, los cuales proporcionan plantillas que se ajustan a los distintos estándares que rigen estas prácticas y, al mismo tiempo, brindan la flexibilidad necesaria para adaptarlos a los casos prácticos concretos.

Obtén más información sobre MLOps 

Inteligencia artificial con agentes

La inteligencia artificial con agentes es un sistema de software que interactúa con datos y herramientas para que la intervención humana sea mínima. Puede realizar tareas creando una lista de pasos que después ejecuta de manera autónoma. Se diferencia de la automatización tradicional en que utiliza datos en tiempo real, modelos de machine learning y un bucle de retroalimentación para tomar decisiones en función del contexto.

Para implementar este tipo de tecnología, se crea un sistema que ofrece un modelo de lenguaje de gran tamaño (LLM) con acceso a herramientas externas y algoritmos que dan instrucciones sobre el uso que deben hacer de ellas. Al igual que los planes de referencia, incorpora un proceso optimizado y autónomo que permite alcanzar un objetivo o completar una tarea, así como aprender y adaptarse en función de las necesidades.

Obtén más información sobre la inteligencia artificial con agentes

Los productos y los servicios de Red Hat se combinan a la perfección con el fin de favorecer el desarrollo de software y ofrecer a las empresas la flexibilidad que necesitan para aumentar el rendimiento de sus equipos y, al mismo tiempo, potenciar el autoservicio, agilizar el proceso de incorporación y disminuir las tareas repetitivas.

A través de Red Hat Developer Hub, los equipos de desarrollo de la empresa pueden acceder a un portal de autoservicio para utilizar todos los planes de referencia y disponer de un centro de conocimientos y documentación técnica relevante para un proyecto concreto. Además, las empresas pueden usar las plantillas de software disponibles para iniciar una aplicación o un microservicio nuevo, o bien crear y emplear sus propias plantillas personalizadas para su entorno.

Red Hat OpenShift®, junto con Red Hat Developer Hub, permite que los equipos de desarrollo utilicen las herramientas de aplicaciones que ya conocen, como las aplicaciones heredadas, modernizadas y en la nube. Red Hat OpenShift Pipelines, Red Hat OpenShift GitOps, Red Hat OpenShift Service Mesh, Red Hat OpenShift Serverless y muchas más tecnologías ya se incluyen e integran en Red Hat OpenShift para agilizar los flujos de trabajo de los desarrolladores y admitir su integración a otras herramientas open source. 

Dado que garantizar la protección del sistema siempre es una prioridad, Red Hat Trusted Software Supply Chain permite que las empresas incorporen la seguridad a los elementos, los procesos y las prácticas de desarrollo de software. Los desarrolladores pueden programar, diseñar, implementar y supervisar los sistemas para que la distribución de software cumpla las prácticas de seguridad de la empresa.

Prueba Red Hat Developer Hub

Más información

Herramientas de ingeniería de plataformas

Las herramientas de ingeniería de plataformas son recursos que respaldan a los equipos de desarrollo para que mejoren su productividad a través de un enfoque de autoservicio.

Comparación entre la ingeniería de plataformas y DevOps

Descubre las diferencias entre la ingeniería de plataformas y DevOps para identificar un enfoque que responda a tus objetivos.

¿Qué es la ingeniería de plataformas?

La ingeniería de plataformas es la disciplina del desarrollo de software que se centra en mejorar la productividad, la duración de los ciclos de vida de las aplicaciones y el tiempo de comercialización.

Platform engineering: lecturas recomendadas

Productos destacados

  • Red Hat Developer Hub

    Una plataforma empresarial abierta basada en Backstage para crear portales para desarrolladores que consolidan visualmente elementos del proceso de desarrollo.

  • Red Hat OpenShift

    Una plataforma de desarrollo de aplicaciones unificada que te permite crear, modernizar e implementar aplicaciones a escala en la infraestructura de nube híbrida que elijas.