En este post vamos a desentrañar los conceptos clave de Platform Engineering. Hemos dividido los elementos esenciales de una forma fácil de entender, incluso si estás empezando. Exploraremos qué significa tratar tu plataforma como un producto, por qué contar con una Internal Developer Platform (IDP) facilita el trabajo, cómo la estructura adecuada del equipo mejora la eficiencia y en qué consisten los “Golden Paths”. Al final, tendrás una comprensión sólida de estas ideas fundamentales y, con suerte, algo de inspiración para pensar en una estrategia de plataforma para tu propia organización.

Introducción a los elementos clave de Platform Engineering

Platform Engineering introduce varios elementos clave diseñados para crear un entorno más eficiente y amigable para los equipos de desarrollo:

  1. Mentalidad de producto.
  1. Internal Developer Platform (IDP).
  1. Un equipo de plataforma y una nueva topología de equipos.
  1. Golden Paths o abstracciones.

Mentalidad de producto

Adoptar una mentalidad de producto para la plataforma significa tratarla como un servicio en evolución continua en lugar de como un proyecto único. Este enfoque se centra en satisfacer las necesidades de los equipos de desarrollo a través de actualizaciones e iteraciones regulares basadas en el feedback y en métricas de rendimiento.

La obsesión de todo Product Manager es construir un producto que cumpla con las expectativas de las personas usuarias y logre una adopción sólida. Una plataforma debe construirse con una mentalidad de evolución iterativa, lanzamientos frecuentes, recopilación de feedback y medición del éxito. Roadmap: Descubrir y priorizar. DevEx: Resolver los puntos de dolor. Iterate: Comenzar en pequeño y escalar. Data-driven: Métricas de éxito como base para la toma de decisiones.

Elementos clave de una mentalidad de producto

Experiencia del equipo de desarrollo

Al igual que la experiencia de usuario (UX) minimiza la fricción entre una herramienta y los objetivos del usuario, Developer Experience (DevEx) se centra en mejorar la productividad y satisfacción de los equipos de desarrollo. En el contexto de una plataforma-como-producto, DevEx trata de crear un entorno en el que los equipos de desarrollo puedan trabajar de forma eficiente y eficaz, con mínima fricción entre la plataforma y el objetivo final de entrega continua de valor.

Developer Experience (DevEx) es esencial para tratar la plataforma como un producto, enfocándose en eliminar las barreras que podrían ralentizar o frustrar a los equipos de desarrollo. Esto implica automatizar tareas repetitivas, simplificar procesos de despliegue y garantizar que todos los recursos necesarios sean fácilmente accesibles. Al simplificar los flujos de trabajo mediante interfaces intuitivas, integraciones fluidas y procesos bien documentados, la plataforma puede minimizar la fricción, permitiendo a los equipos alcanzar sus objetivos con poco esfuerzo y, en última instancia, mejorar la productividad y la satisfacción.

Garantizando relevancia a largo plazo

Una plataforma tratada como un producto permanece adaptable y escalable. Al interactuar regularmente con los usuarios y alinear los desarrollos de la plataforma con los objetivos empresariales, la plataforma se mantiene relevante y valiosa a lo largo del tiempo. Este enfoque no solo mejora la satisfacción del usuario, sino que también asegura que la plataforma siga siendo un habilitador crítico del éxito empresarial.

Internal Developer Platform

Las Internal Developer Platforms (IDPs) son la piedra angular de Platform Engineering, actuando como un lugar centralizado donde los equipos de desarrollo pueden acceder a todos los recursos que necesitan, desde infraestructura hasta herramientas de observabilidad. Al simplificar el acceso a estos recursos, las IDPs mejoran significativamente la productividad de los equipos de desarrollo, permitiéndoles centrarse en tareas esenciales en lugar de quedar atrapados en complejidades operativas.

Evan Bottcher encapsula este concepto al afirmar: “Una plataforma digital es una base de APIs self-service, herramientas, servicios, conocimiento y soporte organizados como un producto interno atractivo.” Como el elemento central de Platform Engineering, las IDPs permiten una experiencia self-service para las capacidades de la plataforma, adaptada a las necesidades de los equipos internos. Simplifican los flujos de trabajo, reducen la sobrecarga operativa y aceleran el tiempo de salida al mercado, lo que las convierte en esenciales para el desarrollo moderno de software.

Equipo de plataforma y topología

El concepto del equipo de plataforma y su rol dentro de una organización fue explorado a fondo en el influyente libro Team Topologies de Matthew Skelton y Manuel Pais, publicado en 2019. Este libro introdujo la idea de un equipo de plataforma unificado como una base fundamental para la entrega de software efectiva en organizaciones modernas.

Introducción al equipo de plataforma unificado

En Team Topologies, Skelton y Pais enfatizan que un equipo de plataforma unificado es esencial para crear una base sólida sobre la cual los equipos de producto pueden construir y entregar valor de manera más eficiente. La misión del equipo de plataforma es reducir la carga cognitiva en los equipos de producto al proporcionar un conjunto de capacidades self-service bien definidas que sean fáciles de consumir. Esto permite que los equipos de producto se concentren en su misión principal: entregar funcionalidades y mejoras a los usuarios finales sin quedar atrapados en las complejidades de la infraestructura subyacente.

Team Topologies propone un contramovimiento a la Ley de Conway para alinear la arquitectura organizacional con la arquitectura del software. Equipos: STREAM-ALIGNED, ENABLING, COMPLICATED SUBSYSTEM, PLATFORM. Interacciones: COLLABORATION, AS A SERVICE, FACILITATING.

Misión del equipo de plataforma

A medida que las organizaciones crecen, la naturaleza descentralizada de las prácticas DevOps tradicionales a menudo lleva a ineficiencias y complejidad. Platform Engineering ofrece una solución al proporcionar un enfoque más organizado y centralizado para gestionar el ciclo de vida del desarrollo de software. Esta centralización es vital para manejar las complejidades de los entornos de desarrollo modernos, donde mantener la agilidad y competitividad es crucial.

La misión del equipo de plataforma va más allá de simplemente ofrecer herramientas o infraestructura. Involucra la creación de una Internal Developer Platform (IDP) integral que abstrae y simplifica las complejidades de la entrega de software. Las responsabilidades clave del equipo de plataforma incluyen:

Colaboración en la nueva topología de equipos

En la topología de equipos propuesta en Team Topologies, el equipo de plataforma colabora estrechamente con otros tipos de equipos dentro de la organización, principalmente equipos alineados en flujos de entrega de valor y equipos habilitadores:

Equipo de plataforma: equipo de aplicación (alineado con un flujo de negocio, compuesto por un equipo multifuncional con la capacidad de entregar incrementos de forma continua sin dependencias que bloqueen). As a Service: consumo de capacidades con mínima colaboración.

El equipo de plataforma también debe mantener canales de comunicación abiertos con todos los demás equipos para asegurar que la plataforma evolucione en alineación con las necesidades de la organización. Los bucles de feedback regulares, los workshops y las sesiones de planificación colaborativa son esenciales para mantener la plataforma relevante y efectiva.

Un nuevo modelo de colaboración

Team Topologies introduce un nuevo modelo de colaboración que gira en torno a la fluidez en el cambio, la alineación de responsabilidades e interacciones de equipo bien definidas. El equipo de plataforma actúa como un proveedor de servicios interno, pero con una fuerte mentalidad de producto, en la que la plataforma se trata como un producto con su propia hoja de ruta, consideraciones de experiencia de usuario y ciclo de mejora continua.

Flujo rápido: Team Topologies está diseñado para que los equipos stream-aligned puedan entregar valor en ciclos cortos. Los demás equipos apoyan al equipo stream-aligned para habilitar una entrega continua de valor. Contexto: los equipos stream-aligned son aquellos que tienen un contexto de extremo a extremo a lo largo de toda la cadena de valor del desarrollo. Cualquier sistema de transferencia (TicketOps) resulta en una pérdida de contexto y conocimiento.

En este modelo, el equipo de plataforma no es un guardián de acceso, sino un facilitador. El objetivo es empoderar a otros equipos para que entreguen valor de forma autónoma, asegurando al mismo tiempo que los estándares y prácticas de la organización se apliquen de manera consistente en todos los proyectos.

Golden Paths

Un componente crucial de Platform Engineering es el concepto de Golden Paths. Los Golden Paths son un método para exponer las capacidades y procedimientos de la plataforma de forma que sean fácilmente consumibles de forma interna. El objetivo es simplificar y optimizar estos procesos, permitiendo que los equipos se centren en su trabajo principal sin quedar atrapados en la complejidad.

Kasper von Grünberg ofrece una definición simple pero poderosa que captura la esencia de un Golden Path: “Cualquier procedimiento en el ciclo de vida de desarrollo de software que un usuario puede seguir con mínima carga cognitiva y que impulsa la estandarización.” Esta definición enfatiza el rol de los Golden Paths en reducir la complejidad y promover la estandarización en toda la organización.

A menudo, se hace referencia a los Golden Paths como abstracciones, ya que ambos términos transmiten los objetivos finales de simplificación y estandarización. A medida que los Golden Paths en tu plataforma crecen, forman un catálogo de servicios, creando efectivamente una API de plataforma: una colección de peticiones a la que los equipos pueden acceder internamente de forma self-service para interactuar con las capacidades de la plataforma.

Principios de diseño de los Golden Paths

Google proporciona una guía valiosa sobre el diseño de Golden Paths, destacando los principios clave a considerar:

  1. Abordar los problemas de carga cognitiva.
  1. Integrarse con las plataformas existentes
  1. Cubrir todo el ciclo de vida del desarrollo
  1. Proporcionar capacidades self-service
  1. Trabajar al nivel adecuado de abstracción
  1. Especificar y tener opinión
  1. Mantener la flexibilidad
  1. Hacer que la adopción sea opcional (no una “jaula dorada”)

Conceptos erróneos sobre los Golden Paths

A menudo, se asocia erróneamente el Platform Engineering solo con la simplificación de la infraestructura y DevOps, o se percibe como simplemente un portal para perfiles de desarrollo. Si tu organización se enfoca únicamente en estos aspectos, corre el riesgo de quedarse en la superficie del verdadero potencial del Platform Engineering, perdiendo su valor completo para el negocio.

Es esencial entender los objetivos y beneficios más amplios de Platform Engineering para evitar estos conceptos erróneos y desbloquear el potencial completo de una estrategia de plataforma.

Una estrategia de plataforma exitosa debería profundizar, con bases sólidas que generen un impacto significativo en toda la organización y no solo mejoras superficiales.

Modelo de contrato para los Golden Paths

Platform Engineering promueve una relación contractual entre su audiencia interna y la plataforma:

Platform API: los equipos de plataforma pueden definir sus propios Golden Paths que encapsulan los servicios subyacentes. Dev team consume claims: abstracción con la que los desarrolladores trabajan directamente. Los equipos pueden reclamar capacidades de la plataforma, y el Golden Path se encargará de que un recurso real esté aprovisionado y listo para su consumo. Platform engineer write and expose Golden Paths: combinan múltiples recursos con configuraciones y políticas en una sola abstracción o API de plataforma, que luego se expone a los desarrolladores para su autoservicio.

¿Cómo se consumirán los Golden Paths?

Un aspecto clave del Platform Engineering es proporcionar formas flexibles e intuitivas para que la audiencia interna consuma las capacidades de la plataforma a través de los Golden Paths. Dado que los diferentes equipos y usuarios tienen necesidades y preferencias variadas, la plataforma debería ofrecer múltiples métodos para acceder a estas capacidades, asegurando que se integren fácilmente en diversos flujos de trabajo.

  1. Portales de equipos de desarrollo
  1. Interfaz de línea de comandos (CLI)
  1. Archivos YAML

Ofrecer múltiples formas de consumir los Golden Paths asegura que la plataforma satisfaga las diversas necesidades de sus usuarios. Algunos equipos pueden priorizar la rapidez y la simplicidad, mientras que otros pueden requerir más control y personalización. Al proporcionar diferentes niveles de abstracción e interfaces, la plataforma puede adaptarse a una amplia gama de casos de uso, impulsando una adopción más amplia y una utilización más efectiva de las capacidades de la plataforma.

Facilitando prácticas de GitOps

Una de las ventajas clave de proporcionar métodos de consumo variados es la capacidad de soportar prácticas de GitOps. GitOps enfatiza las configuraciones declarativas y el control de versiones, donde el estado deseado de todo el sistema se almacena en un repositorio Git. Los equipos pueden utilizar archivos YAML y CRDs de Kubernetes como parte de sus flujos de trabajo GitOps, asegurando que los cambios en las capacidades de la plataforma sean rastreados, auditables y aplicados automáticamente a la infraestructura.

Con GitOps, los equipos pueden integrar los Golden Paths directamente en sus pipelines CI/CD, donde los cambios en el repositorio Git desencadenan despliegues y actualizaciones automáticas. Este enfoque mejora la confiabilidad y la repetibilidad, ya que todas las interacciones con la plataforma se gestionan a través de código versionado.

Al ofrecer métodos de consumo flexibles que se alineen con los principios de GitOps, la plataforma permite a los equipos:

Cuéntanos qué te parece.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.

Suscríbete