Jump to section

La ingeniería de plataformas

Copiar URL

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 las aplicaciones y el tiempo de comercialización.

Debe considerarse un enfoque multidisciplinar destinado a mejorar la cultura del trabajo y la productividad, así como a tener un impacto positivo en lo económico. Desde el punto de vista empresarial, los programas de ingeniería de plataformas agilizan el tiempo de comercialización de las aplicaciones, optimizan las operaciones y mejoran la eficiencia en las etapas de desarrollo, implementación, gestión y mantenimiento. Desde el punto de vista cultural, su finalidad es mejorar la colaboración entre los equipos y reducir el esfuerzo cognitivo al brindar a los desarrolladores las herramientas y el respaldo que necesitan para centrarse en los aspectos más importantes de sus tareas.

A nivel general, su objetivo es identificar las dificultades que afectan a los equipos de desarrollo y reducirlas con herramientas y funciones comunes y reutilizables a través de una plataforma interna para desarrolladores (IDP).

Cuando se habla de la ingeniería de plataformas se puede hacer referencia a un puesto de trabajo específico, así como a una disciplina o metodología que un grupo de personas adopta como iniciativa colectiva.

La función de este campo beneficia a las empresas, ya que fomenta la uniformidad y la eficacia. Además, favorece una mayor colaboración entre los equipos y reduce la curva de aprendizaje de los nuevos miembros al permitir una cooperación más eficaz.

En esencia, la ingeniería de plataformas busca reducir el tiempo empleado en tareas administrativas que pueden mermar la productividad de los desarrolladores y obstaculizar el ciclo de vida de las aplicaciones. Para lograrlo, los equipos e ingenieros deben gestionar la infraestructura y crear un conjunto de herramientas que guíen a los desarrolladores a través de un flujo de trabajo diseñado para satisfacer sus necesidades, lo que se suele conocer como planes de referencia ("golden paths").

Los distintos equipos de desarrollo, incluso aquellos de la misma empresa, tienen necesidades diferentes, de modo que no hay dos plataformas de desarrollo iguales. Los ingenieros de plataformas son conscientes de ello y seleccionan un conjunto personalizado de herramientas y procesos que se adaptan a las necesidades específicas de cada empresa mediante funciones de autoservicio e infraestructuras automatizadas que facilitan el trabajo de los desarrolladores de software.Gracias a esta capacidad de adaptación, los desarrolladores no se ven limitados por las soluciones genéricas y pueden emplear las herramientas que mejor se adapten a los requisitos de sus proyectos. Del mismo modo, no tienen que aprender nuevas habilidades ni realizar tareas innecesarias, sino que pueden centrarse en su especialidad: la programación.

Los equipos de ingeniería de plataformas también garantizan la existencia de marcos de control sólidos que permiten hacer un seguimiento de los recursos, la seguridad y el cumplimiento normativo en todos los entornos. La ventaja de esto es que ofrece a las empresas una manera más práctica de supervisar el rendimiento, controlar los costos e identificar posibles riesgos o puntos vulnerables. 

El origen de la ingeniería de plataformas

La ingeniería de plataformas surgió en respuesta a un nuevo debate en el ámbito tecnológico: los desarrolladores no deberían tener que preocuparse por la infraestructura, sobre todo en el caso de los entornos híbridos y multicloud. 

Tradicionalmente, la tarea del desarrollador ha consistido en encontrar una herramienta que se adapte a sus necesidades o crearla desde cero. Aunque las versiones anteriores y básicas de la tecnología respaldaban esta idea, los desarrolladores actuales de las empresas se han percatado de que las tareas de brindar soporte a los usuarios y ajustar la capacidad de la infraestructura se vuelven más complejas y fragmentadas con el crecimiento de la empresa.

Cada día aparecen nuevas herramientas, hay que mantenerse actualizado respecto a las funciones más recientes y se necesita tiempo para evaluar y seleccionar aquellas que son adecuadas para una determinada tarea. Sin embargo, el tiempo que se dedica a aprender utilizarlas, investigar tecnologías novedosas, solicitar servicios de infraestructura y aplicaciones, y conocer los riesgos de seguridad más recientes, puede consumir mucha atención y recursos. De este modo, se pierde tiempo que podría emplearse en mejorar el producto que se vende y en cumplir los objetivos prioritarios de la empresa. 

En el ámbito de la ingeniería de plataformas, los clientes son los desarrolladores, y el producto, las plataformas internas para desarrolladores (IDP), de cuya configuración se encargan los equipos de ingeniería de plataformas.

Estas consisten en un conjunto estandarizado de herramientas y tecnologías internas de autoservicio que los desarrolladores necesitan para crear, implementar y mantener el código a lo largo de todo el ciclo de vida de una aplicación. Las cadenas de herramientas que se integran a una IDP permiten un flujo de trabajo más favorable y productivo para los desarrolladores, se centran en factores como la seguridad y la capacidad de ajuste, y ayudan a las empresas a ofrecer más beneficios a los clientes.

Para crear una IDP eficaz, es necesario detectar cualquier dificultad en el proceso de desarrollo y seleccionar las herramientas y tecnologías que puedan eliminarla o reducirla. Para ello, se recomienda adoptar un enfoque minimalista, es decir, incorporar únicamente las herramientas que el equipo considere beneficiosas y, a partir de allí, ampliar las funciones de forma gradual acorde a sus necesidades y solicitar comentarios durante el proceso.  

Tanto la ingeniería de plataformas como DevOps comparten el mismo objetivo: lograr que los desarrolladores y los equipos de operaciones estén en mayor consonancia a través de un aumento en la automatización y la colaboración. Si pensamos en la relación entre ambas prácticas, la ingeniería de plataformas puede considerarse un elemento fundamental y complementario a la hora de hacer frente a los desafíos que plantea el ajuste de DevOps a toda una empresa.

Tradicionalmente, las prácticas de DevOps fomentan que los propios desarrolladores busquen, aprendan, implementen y gestionen el software, lo cual les permite conocerlo y controlarlo mejor en la etapa de producción; sin embargo, este enfoque no siempre es positivo en términos económicos, sino que aumenta la carga administrativa y cognitiva para quienes se encargan de su desarrollo.

Un equipo determinado puede tener interés en ofrecer una función, pero carecer de las habilidades necesarias para hacerlo; puede tener estas últimas, pero no el interés en desarrollar la función; o bien puede contar con las habilidades y el interés, pero que no sea seguro o rentable llevarlo a cabo. El panorama se complica conforme las empresas se expanden y crecen.

Como consecuencia de la adopción de DevOps y de la distribución continua, los canales y las cadenas de herramientas son cada vez más largos. Además, debido a la presión de tener que implementar la seguridad en las primeras etapas del desarrollo, es decir, poseer una visión integral de cada etapa del flujo de trabajo a la hora de crear y mantener una aplicación, los desarrolladores han pasado a ser responsables de conocer a fondo las complejidades de las aplicaciones que diseñan.

Si bien esta autonomía ofrece una sensación de libertad, también puede conllevar una carga cognitiva y un sentido de la responsabilidad extenuantes que, a fin de cuentas, no sirven ni al empleado ni a la propia empresa.

La estrategia de la ingeniería de plataformas, que hace más hincapié en la empatía y la experiencia del usuario, se basa en DevOps para buscar nuevos métodos de automatizar la distribución de aplicaciones, mejorar la colaboración y la comunicación, reducir los errores, reforzar la seguridad y el cumplimiento, aumentar la eficiencia y, sobre todo, volver a centrar la atención de los desarrolladores donde más se necesita. 

Si bien la ingeniería de plataformas y la ingeniería de confiabilidad del sitio se ocupan de la creación y el mantenimiento de los sistemas, la diferencia entre ambas radica en el enfoque de cada práctica. Los ingenieros de confiabilidad del sitio se centran en los equipos de operaciones de TI y los ayudan a utilizar el software como herramienta para gestionar los sistemas, resolver los problemas y automatizar las tareas.

En cambio, los ingenieros de plataformas se centran en los equipos de desarrollo y los ayudan a crear plataformas para gestionar los sistemas, resolver los problemas y automatizar los procesos de la etapa de desarrollo. 

Red Hat® OpenShift® reúne las condiciones necesarias para ofrecer a los equipos de ingeniería de plataformas un amplio conjunto de funciones y características, tales como las compilaciones, los canales, GitOps, la tecnología sin servidor y la malla de servicios.

Cuando se combina OpenShift con Red Hat Developer Hub, los equipos de ingeniería obtienen las plantillas de proyectos, la documentación y los flujos de trabajo que necesitan para diseñar y gestionar de manera eficaz una plataforma interna para desarrolladores (IDP) única y adaptada a las necesidades y objetivos de la empresa.

Además, los desarrolladores pueden conectarse a un panel de control unificado y acceder a una gran variedad de herramientas, plantillas de software, documentación y demás recursos que les ayudarán a diseñar sistemas de software de excelente calidad de forma eficiente. Del mismo modo, tienen acceso a la información y los recursos que necesitan para unirse a un proyecto en curso y así agilizar el tiempo de incorporación.

La plataforma está orientada hacia la innovación open source, por lo que ofrece flexibilidad y evita la dependencia de un solo proveedor, mientras que la reputación de Red Hat en materia de estabilidad, soporte y confiabilidad le brinda tranquilidad. Además, la capacidad de Developer Hub para integrar fácilmente nuevas herramientas y servicios a través de plugins, junto con su flexibilidad, lo convierten en una solución preparada para el futuro que se adapta a las necesidades de desarrollo en constante evolución.

Al contar con OpenShift, Red Hat Developer Hub, Trusted Software Supply Chain, Advanced Cluster Security (ACS), Advanced Cluster Management (ACM) y Ansible como elementos básicos, los ingenieros de plataformas pueden diseñar y crear cadenas de herramientas y flujos de trabajo integrados que ofrecen una experiencia más fluida y eficiente a los desarrolladores. 

Artículos relacionados

ARTÍCULO

¿Qué es DevSecOps?

Si desea aprovechar al máximo la agilidad y la capacidad de respuesta de los enfoques de DevOps, la seguridad de la TI debe desempeñar un papel principal en todo el ciclo de vida de sus aplicaciones.

ARTÍCULO

¿Qué son la integración/distribución continuas (CI/CD)?

La integración y la distribución continuas (CI/CD) incorporan la automatización y la supervisión permanentes en todo el ciclo de vida de las aplicaciones, desde las etapas de integración y prueba hasta las de distribución e implementación.

ARTÍCULO

¿Qué hace un ingeniero de DevOps?

Un ingeniero de DevOps es alguien que posee una combinación única de habilidades y experiencia que permite la colaboración, la innovación y los cambios culturales dentro de una empresa.  

Más información sobre DevOps

Productos

Programa intensivo y altamente especializado con personal experto de Red Hat, que le enseñará a utilizar una metodología ágil y herramientas open source para solucionar los problemas comerciales de su empresa.

Servicio de nuestros asesores estratégicos, quienes tienen una visión amplia de su empresa, analizan sus desafíos y lo ayudan a superarlos con soluciones completas y rentables.

Contenido adicional

Lista de verificación

Automatización empresarial con metodología DevOps

Whitepaper

Optimice los canales de CI/CD con Red Hat Ansible Automation Platform