¿Qué es 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, agilizar los ciclos de vida de las aplicaciones y reducir el tiempo de comercialización. Su objetivo principal es identificar las dificultades que afectan a los equipos de desarrollo y reducirlas proporcionando herramientas y funciones comunes y reutilizables a través de una plataforma interna para desarrolladores (IDP).

La ingeniería de plataformas debe considerarse como un enfoque multidisciplinario destinado a mejorar la cultura del trabajo y la productividad, así como a tener un impacto positivo en el ámbito económico. Desde el punto de vista empresarial, los programas de ingeniería de plataformas agilizan la 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, la finalidad de esta disciplina 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 su trabajo.

Descubre Red Hat OpenShift para la ingeniería de plataformas

La función de la ingeniería de plataformas es beneficiar a las empresas fomentando la uniformidad y la eficiencia. 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. 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.

En esencia, la ingeniería de plataformas busca reducir el tiempo que se necesita para realizar las tareas administrativas que pueden mermar la productividad de los desarrolladores y obstaculizar el ciclo de vida de las aplicaciones. 

¿Cómo guían los ingenieros de plataformas a los desarrolladores?

Los equipos e ingenieros dedicados a esta disciplina deben gestionar la infraestructura y crear un conjunto de herramientas que guíe a los desarrolladores a través de un flujo de trabajo diseñado para satisfacer sus necesidades, lo que se suele conocer como "plan de referencia" (golden path).

El conjunto personalizado de herramientas y procesos que seleccionan los ingenieros de plataformas se adaptará a las necesidades particulares de una empresa a través de las funciones de autoservicio y la infraestructura automatizada que potencia a 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 se adecúan mejor 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 permitan 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. 

Backstage with platform engineering Duración del video: 2:31.


Obtén más información sobre la ingeniería de plataformas y DevOps

¿Qué es una plataforma de aplicaciones?

Una plataforma interna para desarrolladores es un conjunto estandarizado de herramientas y tecnologías de autoservicio que los desarrolladores necesitan para crear, implementar y mantener el código durante todo el ciclo de vida de una aplicación. Las cadenas de herramientas que se integran en 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 para los clientes.

DevOps es un enfoque de desarrollo de software que las empresas aplican para combinar las funciones de desarrollo y operaciones de TI en flujos de trabajo constantes. Por su parte, la ingeniería de plataformas se centra en la creación de plataformas y herramientas internas que respalden esos flujos de trabajo. 

El uso de plataformas de ingeniería permite disponer de un conjunto de herramientas, conocimientos, servicios y procesos estandarizados que resultan útiles para muchos equipos de desarrollo de toda la empresa. Con las plataformas seleccionadas, estos equipos pueden diseñar, implementar, poseer y respaldar sus elementos, mientras que el equipo de plataforma hace lo mismo con los suyos. 

Las prácticas de DevOps fomentan que los propios desarrolladores busquen, aprendan, implementen y gestionen el software, lo que les permite conocerlo y controlarlo mejor durante la etapa de producción. 

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 un enfoque shift left (es decir, poseer una visión integral de la seguridad en cada etapa del flujo de trabajo a la hora de crear y mantener una aplicación), los desarrolladores pasaron a ser responsables de conocer a fondo las complejidades de las aplicaciones que diseñan.

Esta autonomía puede generar responsabilidades y cargas cognitivas que finalmente no benefician ni a la persona ni a la empresa.

La estrategia de la ingeniería de plataformas, que prioriza más 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 normativo, aumentar la eficiencia y, sobre todo, volver a centrar la atención de los desarrolladores donde más se necesita. 

Adopta una cultura de DevOps

La ingeniería de plataformas delega la responsabilidad de la infraestructura a los desarrolladores. Esto es particularmente necesario en los entornos híbridos y multicloud. 

La tarea de los desarrolladores siempre ha sido encontrar una herramienta que se adapte a sus necesidades o crearla desde cero. Aunque las versiones anteriores y más 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.

Para crear una IDP eficaz, es necesario que un ingeniero de plataformas detecte cualquier dificultad en la experiencia del desarrollador y encuentre las herramientas y las tecnologías que puedan eliminarla o reducirla. Para ello, se recomienda adoptar un enfoque minimalista, es decir, incorporar únicamente las herramientas que sabes que beneficiarán al equipo de desarrollo y, a partir de allí, ampliar las funciones de forma gradual de acuerdo con sus necesidades y solicitar comentarios durante el proceso. 

Un ingeniero de confiabilidad del sitio (SRE) se ocupa de la infraestructura de TI fundamental, y los equipos de SRE desarrollan los procesos y la automatización para garantizar la integridad de la infraestructura y mantener el tiempo de actividad. Los ingenieros de confiabilidad del sitio y los de plataformas tienen objetivos comunes, pero mientras que los primeros se centran en el rendimiento, la confiabilidad y la capacidad de ajuste del software, los segundos lo hacen en los sistemas que buscan mejorar la experiencia de los desarrolladores.

Tanto la ingeniería de plataformas como la ingeniería de confiabilidad del sitio se ocupan de la creación y el mantenimiento de los sistemas. La diferencia entre ambas prácticas radica en su enfoque. 

Obtén más información sobre el enfoque de SRE de Red Hat

La ingeniería de plataformas solo cumple con su propósito cuando la plataforma se trata como un producto y los desarrolladores internos como clientes. La adopción de la ingeniería de plataformas suele fallar cuando las empresas la tratan como un requisito rígido de TI, en lugar de verla como un producto diseñado para sus desarrolladores internos. Si un equipo de ingeniería diseña una plataforma interna para desarrolladores sin comprender las verdaderas dificultades de los desarrolladores, lo más probable es que estos eviten usar la plataforma para mantener la velocidad. 

Una empresa puede tener en cuenta muy pocos aspectos al diseñar una plataforma, o bien, por el contrario, puede excederse en este sentido. La ingeniería de plataformas no consiste únicamente en poner en marcha una interfaz de usuario del portal para desarrolladores (como Backstage). Para que el autoservicio sea eficaz, se requiere una automatización y una organización más profundas de la infraestructura. A la vez, el diseño de una plataforma que contemple todos los posibles casos prácticos futuros generará una complejidad enorme y la necesidad de una capacitación extensa.

Además, los equipos de plataformas se enfrentan al gran desafío técnico de consolidar las herramientas fragmentadas y la complejidad empresarial en flujos de trabajo simplificados y automatizados. Ayudar a los desarrolladores de aplicaciones a eliminar esta complejidad requiere un trabajo continuo de abstracción y mantenimiento, lo que puede abrumar rápidamente a los equipos con recursos limitados. 

Para superar estos obstáculos, las empresas exitosas adoptan un estricto "enfoque en el producto" y lanzan una plataforma mínima viable (TVP) que resuelve primero un solo bloqueo de ingeniería importante. Se asocian con un grupo piloto de desarrolladores para diseñar estos flujos de trabajo iniciales y elaboran "planes de referencia" de autoservicio eficientes que los ingenieros eligen utilizar de manera voluntaria. En lugar de forzar la adopción, logran que el uso de la plataforma sea la opción más sencilla, aprovechando el éxito interno orgánico para ampliar gradualmente la automatización de la infraestructura en toda la empresa.

Red Hat® OpenShift® y Red Hat Advanced Developer Suite ofrecen una solución integral de ingeniería de plataformas para todo el ciclo de vida de desarrollo del software. Por un lado, Red Hat OpenShift brinda una base sólida para implementar, gestionar y ajustar las aplicaciones en la etapa de producción. Por otro lado, Red Hat Advanced Developer Suite impulsa a los equipos de plataformas a mejorar la productividad de los desarrolladores, reducir los riesgos e implementar el desarrollo con inteligencia artificial. Ambos productos facilitan los beneficios operativos inmediatos y la transformación a largo plazo. Red Hat Advanced Developer Suite incorpora a Red Hat OpenShift un portal interno para desarrolladores y una cadena de suministro de software de confianza, lo que da como resultado una plataforma interna para desarrolladores integral.

Descubre Red Hat para la ingeniería de plataformas

Recurso

El estado de la ingeniería de plataformas en la era de la inteligencia artificial

En este informe, encontrarás un resumen completo de la encuesta "El estado de la ingeniería de plataformas en la era de la inteligencia artificial", realizada por Illuminas. Obtén más información.

Red Hat Advanced Developer Suite

Un conjunto de soluciones para ayudar a los ingenieros de plataformas a aumentar la productividad de los desarrolladores y mejorar la seguridad de las aplicaciones.

Más información

¿Qué es un plan de referencia para el desarrollo de software?

Obtén más información sobre los planes de referencia, que consisten en una forma fundamentada, bien documentada y con respaldo de diseñar e implementar software dentro de una empresa.

Herramientas de ingeniería de plataformas

Las herramientas de ingeniería de plataformas son recursos que respaldan a los equipos de desarrollo y les permiten mejorar la productividad con una estrategia de autoservicio.

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

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

Platform engineering: lecturas recomendadas