Ingeniería de plataformas versus DevOps

Cuando las empresas hablan de entregar software más rápido, a menudo se escuchan las palabras ingeniería de plataformas y DevOps. Si bien algunos pueden pensar que son ideas que compiten entre sí, en realidad funcionan en conjunto. 

Piensa en esto: DevOps es el objetivo general, es la cultura y la mentalidad del trabajo en equipo. La ingeniería de plataformas puede ser la forma de alcanzar ese objetivo a gran escala, ya que crea las herramientas que pueden facilitar el trabajo de DevOps.

Definición de DevOps, ingeniería de plataformas e IDP

Para comprender cómo se complementan estos conceptos, primero es importante establecer definiciones claras. La distinción radica en separar el objetivo cultural de DevOps de la disciplina especializada, la ingeniería de plataformas, y las herramientas concretas que crea, la plataforma interna para desarrolladores (IDP). 

DevOps es un conjunto de prácticas que acerca a las personas que escriben el código (desarrollo o “Dev”) y a las personas que ejecutan el código (operaciones u “Ops”).

Se trata principalmente de un cambio cultural que se enfoca en hacer que los equipos se comuniquen mejor, compartan responsabilidades y automaticen todo. El objetivo es pasar rápidamente de una idea de software a algo que los clientes puedan usar, uniendo personas, procesos y herramientas para acelerar el valor comercial.

La ingeniería de plataformas es la práctica de diseñar, crear y mantener una plataforma interna para desarrolladores (IDP) para equipar a los equipos de ingeniería de software con rutas doradas.

Los equipos de ingeniería de plataformas tratan las herramientas para desarrolladores y la infraestructura de nube como un producto. Su trabajo principal es quitarles a los equipos de desarrollo las tareas difíciles y repetitivas. Ayudan a crear una capa de autoservicio simple y confiable para que los desarrolladores no tengan que ser expertos en servicios complejos de nube, como redes, seguridad u organización de contenedores.

Una plataforma interna para desarrolladores (IDP) es el conjunto real de herramientas y servicios que crea el equipo de ingeniería de plataformas. Es un lugar centralizado al que los desarrolladores acuden para obtener lo que necesitan para hacer su trabajo, incluidos recursos como la organización de contenedores, las herramientas de infraestructura como código (IaC) y las canalizaciones de CI/CD.

Por ejemplo, una IDP creada en Google Cloud podría usar Google Kubernetes Engine (GKE) para ejecutar contenedores. Si incorpora los principios de ingeniería de confiabilidad del sitio (SRE) y DevOps en las rutas doradas de la plataforma, el equipo de ingeniería de la plataforma puede reducir el potencial de error humano y minimizar el tiempo de inactividad. La IDP abstrae lo difícil y les brinda a los desarrolladores automatizaciones e instructivos para seguir, lo que garantiza que su trabajo sea seguro y correcto desde el principio.

La ingeniería de plataformas es una evolución, no un reemplazo

DevOps es el "por qué" necesitamos trabajar juntos y automatizar. La ingeniería de plataformas es el "cómo" hacemos que esa automatización sea fácil para todos.

Si bien las empresas o los equipos pequeños pueden administrar sus procesos a través de una comunicación estrecha, todas las organizaciones pueden beneficiarse de adoptar los principios y las prácticas recomendadas de DevOps desde el principio.

Pero cuando una empresa crece a cientos de desarrolladores:

La complejidad se dispara: Cada equipo de desarrollo tiene que aprender a usar y mantener decenas de herramientas, como Cloud Logging, Cloud Monitoring y código de infraestructura. Esta carga, llamada carga cognitiva, los ralentiza.

La complejidad se dispara: Cada equipo de desarrollo tiene que aprender a usar y mantener decenas de herramientas, como Cloud Logging, Cloud Monitoring y código de infraestructura. Esta carga, llamada carga cognitiva, los ralentiza.

Se producen inconsistencias: Es posible que los diferentes equipos configuren sus entornos de manera diferente, con prácticas de seguridad, estándares de código o configuraciones de implementación variados. Esto dificulta que el equipo de operaciones pueda brindar asistencia a todos.

Se producen inconsistencias: Es posible que los diferentes equipos configuren sus entornos de manera diferente, con prácticas de seguridad, estándares de código o configuraciones de implementación variados. Esto dificulta que el equipo de operaciones pueda brindar asistencia a todos.

La ingeniería de plataformas ayuda a resolver este problema creando una IDP estandarizada con el paquete integral de servicios administrados de Google Cloud. Además, las rutas doradas facilitan la creación, administración y escalamiento de las IDP. Esto mantiene vivo el objetivo de DevOps de mantener la velocidad y la calidad a medida que la empresa escala.

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

Si bien DevOps y la ingeniería de plataformas son complementarios, sus enfoques principales son distintos.

DevOps se centra en el cambio cultural, enfatizando el trabajo en equipo, la responsabilidad compartida y la automatización de toda la canalización de entrega. Su objetivo es alinear a las personas y los procesos para trasladar el valor rápidamente de la idea a la producción.

En cambio, la ingeniería de plataformas se enfoca principalmente en la experiencia del desarrollador. Esto se logra abstrayendo la complejidad de la infraestructura y creando capacidades de autoservicio. Al ofrecer una ruta sencilla y confiable para los desarrolladores, la ingeniería de plataformas sirve como la disciplina especializada que acelera los objetivos culturales de DevOps a gran escala.

Beneficios de la ingeniería de plataformas para DevOps

Para los líderes técnicos de alto nivel, la ingeniería de plataformas puede ofrecer beneficios financieros y de administración.

Riesgo y cumplimiento

La ingeniería de plataformas ayuda a mitigar el riesgo incorporando políticas de seguridad y cumplimiento directamente en la plataforma y aplicando de forma automática estándares en todos los entornos, como los clústeres de GKE, para evitar las incoherencias.

Productividad del desarrollador

La ingeniería de plataformas mejora los resultados financieros proporcionando APIs y portales simples de autoservicio que reducen significativamente el tiempo que los desarrolladores dedican a las tareas de infraestructura.

Salida al mercado más rápida

La ingeniería de plataformas en Google Cloud puede permitirles a las organizaciones lanzar nuevos servicios con rapidez y facilidad, ya que empodera a los equipos con flujos de trabajo eficientes. La infraestructura de Google Cloud permite implementaciones eficientes y mucho más.

Cómo decidir cuándo crear una plataforma interna para desarrolladores

La decisión de crear un equipo de ingeniería de plataformas dedicado y construir una IDP no se basa en un tamaño de equipo arbitrario, sino que está impulsada por las necesidades organizacionales y el costo de la fricción. Una plataforma se vuelve adecuada cuando el tiempo y el esfuerzo que los desarrolladores de aplicaciones dedican a las tareas de infraestructura superan la inversión necesaria para crear y mantener la plataforma en sí. Obtén más información en esta guía sobre ingeniería de plataformas.

Cuándo la automatización simple es suficiente

Las herramientas de CI/CD simples como Cloud Build pueden ser suficientes si tus aplicaciones son sencillas y tus equipos de desarrollo pueden administrar fácilmente sus propias necesidades de infraestructura. En este caso, enfocarse en el aspecto cultural de DevOps (mejor comunicación, objetivos compartidos y automatización simple) es el enfoque más eficaz.

Cuándo una plataforma se convierte en la opción clara

Un equipo de plataformas suele ser necesario cuando la complejidad comienza a ralentizar a toda tu organización. Esto suele ocurrir si tu empresa experimenta alguna de las siguientes situaciones:

Carga cognitiva alta: Los desarrolladores dedican demasiado tiempo a configurar y mantener la infraestructura subyacente en lugar de enfocarse en el desarrollo de funciones.

Carga cognitiva alta: Los desarrolladores dedican demasiado tiempo a configurar y mantener la infraestructura subyacente en lugar de enfocarse en el desarrollo de funciones.

Prácticas incoherentes: Hay patrones de seguridad, operativos y de implementación variados en tus diferentes productos, lo que dificulta la asistencia y la auditoría.

Prácticas incoherentes: Hay patrones de seguridad, operativos y de implementación variados en tus diferentes productos, lo que dificulta la asistencia y la auditoría.

Aprovisionamiento lento: Los desarrolladores tardan días en crear nuevos entornos de prueba o producción, lo que genera cuellos de botella en el ciclo de vida del desarrollo.

Aprovisionamiento lento: Los desarrolladores tardan días en crear nuevos entornos de prueba o producción, lo que genera cuellos de botella en el ciclo de vida del desarrollo.

Es en este momento cuando la creación de un equipo de plataforma para construir una IDP coherente y estandarizada puede proporcionar el mayor retorno de la inversión y mantener la velocidad y la calidad que promete DevOps.

Resuelve tus desafíos más difíciles con Google Cloud

Los clientes nuevos obtienen $300 en créditos gratuitos que pueden usar en Google Cloud.

Da el siguiente paso

Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.

Google Cloud