Archivo para enero 3, 2023

De DevOps a IDPs y a Ingeniería de Plataformas   Leave a comment

A menudo cuando las personas escuchan el término DevOps no saben lo que es, solo tienen una vaga idea, y no las culpo, la definición es muy ambigüa para alguien que no tiene experiencia en el área y menos aún en el manejo de proyectos de desarrollo de software (en la nube). Lamentablemente la mayor parte de la literatura hace una mezcla malsana de conceptos, revuelve conocimientos de infraestructura y operaciones con prácticas de desarrollo y una pisca de filosofía, de ahí que la mayoría piensa que hacer infraestructura/IT es hacer, o peor aún, que esto es «ser» DevOps.


La verdad es que el concepto detrás de DevOps es sólo filosofía, una base o marco para extender Ágil a la infraestructura, haciéndola parte del proceso de desarrollo, algo que las miríadas de cursos de desarrollo Ágil olvidaron y a larga impacta al rendimiento del negocio, por la baja calidad de sus resultados.


Este cambio de mentalidad indica que todos los equipos, incluidos los de management, tienen que compartir responsabilidades tanto técnicas como administrativas, la información debe democratizarse por lo tanto todos los procesos han de integrarse en un sólo flujo al cual todos contribuyen, podemos llamarlo un «pipeline» común; mientras menos situaciones repetitivas existan mejor, por lo tanto la automatización de procesos (ojo digo procesos, no sólo tareas) es crucial.

Si aumentamos un poco el lente y observamos los roles propios de un proyecto de desarrollo de software, no encontramos lógicamente hueco para un IT con capacidades organizacionales y de desarrollo, y es que no debe existir porque se le relegará a su ámbito primario que es el de IT, y es lo que comunmente pasa; todo ingeniero que desarrolle aplicaciones y/o infrastructura debe tener una base sólida en programación y conceptos claros de desarrollo de software, luego obviamente concentrar su energia en lo específico de su trabajo.

Gracias a que los conceptos evolucionan independientemente de las organizaciones, de la misma manera el concepto y la implementación de aquello que mal llamamos DevOps también está evolucionando en algo tangible y coherente hablando en términos de ingeniería de proyectos. Desde hace un tiempo atrás la gente dedicada a divulgar temas referentes a nuestra área, incluyó entre sus tópicos charlas acerca de las Plataformas de Desarrollo Internas o «IDP» por sus siglas en inglés; el contenido de éstas charlas hablan acerca de que los ingenieros dedicados a la infrastructura ya sean DevOps o SREs, etc., deben concentrar sus esfuerzos en desarrollar una plataforma de trabajo para los otros equipos, ésto significa dotar de herramientas integradas de fácil acceso y uso a los usuarios internos como desarrolladores de lo suficiente para que hagan su trabajo de manera más eficiente. Ésto implica integrar otros sistemas tanto internos como de terceros y brindar un producto a éstos desarrolladores para que completen sus tareas sin demasiado trámite, por ejemplo pipelines de ensamblaje y despliegue de las aplicaciones en ambientes temporales de desarrollo para prueba y validación. Los enlaces que pongo a continuación hablan acerca de qué es una plataforma interna de desarrollo, quiénes la utilizan y del porqué deben construirse:





Estando ésta tendencia en boga, hablamos de 1 o 2 años atrás, la cosa no se quedó quieta y evolucionó a algo mucho más concreto, más estructurado y mejor, hablo de la ingeniería de plataforma o «Platform Engineering» en inglés, que expresa realmente lo que un ingeniero que aplica DevOps al máximo debe construir en un proyecto de desarrollo de software, y asigna el rol correcto al nuevamente mal llamado DevOps como un desarrollador de infrastructura o «Infrastructure Developer» o «Platform Developer» con sus hábilidades bien definidas.


No me extenderé más hablando de la ingeniería de plataformas porque lo haré en varios otros posts, ya que requiere minuciosidad y especificidad.


Debo decir que estoy muy emocionado al respecto, es una forma de ver las cosas más clara y diluirá la sombra que se cierne sobre todos aquellos que trabajamos en la plataforma de desarrollo de nuestros proyectos.