¿Qué es una plataforma interna para desarrolladores (IDP)?

Uno de los principales objetivos de la ingeniería de software es resolver problemas y crear valor, pero ese enfoque puede perderse en la fricción diaria del desarrollo moderno. Las plataformas internas para desarrolladores (IDP) están diseñadas para aliviar la carga de los desarrolladores para que puedan enfocarse en el desarrollo de software. El objetivo principal de una IDP no es solo enviar software más rápido, sino reducir la carga mental de los desarrolladores mediante la creación de plantillas y automatización seguras, eficientes y bien respaldadas (a menudo denominadas “rutas doradas”) para crear e implementar aplicaciones.

Cómo crear una plataforma interna para desarrolladores en Google Kubernetes Engine Enterprise

Definición de la plataforma interna para desarrolladores (IDP)

Una plataforma interna para desarrolladores integra un conjunto seleccionado de tecnologías y herramientas, creado y mantenido por un equipo de plataforma exclusivo. Esta pila suele incluir soluciones para la organización de contenedores, herramientas de infraestructura como código (IaC) y canalizaciones de CI/CD potenciadas por proyectos de código abierto.

Una plataforma interna para desarrolladores (IDP) debe abordarse como un producto, con los desarrolladores como sus usuarios. Es fundamental abordar sus casos de uso, recopilar sus comentarios y perfeccionar continuamente la plataforma a través de la iteración. La IDP es la capa que conecta estas herramientas y abstrae su complejidad para que los desarrolladores puedan realizar tareas a través de un modelo simple de autoservicio. El objetivo es que la forma correcta sea la forma fácil, lo que les permite a los desarrolladores crear y enviar con confianza y autonomía.

H2: ¿Qué es la carga cognitiva?

La carga cognitiva hace referencia a la cantidad total de esfuerzo mental que se usa en la memoria de trabajo de una persona. Piensa en ello como el ancho de banda mental que tiene un desarrollador. Cuando ese ancho de banda se consume en tareas que no son de programación, su capacidad para enfocarse en la resolución de problemas complejos disminuye.

A menudo, los desarrolladores deben cambiar entre docenas de herramientas, paneles y archivos de configuración diferentes solo para implementar un simple cambio. Cada cambio de contexto obliga al cerebro a cargar un nuevo conjunto de información, lo que es mentalmente agotador. Este constante manejo de diferentes herramientas y procesos aumenta la carga cognitiva, lo que puede provocar agotamiento, más errores y una innovación más lenta.

El rol de la ingeniería de plataformas

La ingeniería de plataformas es la disciplina de diseñar, crear y mantener una plataforma interna para desarrolladores. Piensa en esto: si la IDP es el producto, entonces el equipo de ingeniería de plataformas es el equipo de producto responsable de su ciclo de vida. Sus clientes son los desarrolladores de la organización.

Este enfoque significa que la plataforma se trata como cualquier otro producto de software. El equipo de ingeniería de plataformas es responsable de comprender las necesidades de los desarrolladores, definir una hoja de ruta y proporcionar un conjunto de herramientas confiable, seguro y fácil de usar.

Plataforma interna para desarrolladores versus portal interno para desarrolladores

Una pregunta frecuente es la distinción entre una plataforma y un portal. Si bien los términos a veces se usan indistintamente, representan diferentes capas de la experiencia del desarrollador. Piensa en la plataforma interna para desarrolladores (IDP) como el motor completo, que abarca todas las herramientas, flujos de trabajo e infraestructura que impulsan tu ciclo de vida de desarrollo.

Por otro lado, el portal interno para desarrolladores es el panel de ese motor. Es la interfaz gráfica de usuario (GUI) que les proporciona a los desarrolladores un lugar único y centralizado para acceder a las funciones de la plataforma. Un portal para desarrolladores puede ayudar a los desarrolladores a descubrir y usar herramientas, consultar documentación, aplicar andamiaje a nuevos servicios y verificar el estado de sus compilaciones sin necesidad de comprender la compleja maquinaria que se ejecuta en segundo plano. Si bien una IDP integral suele incluir un portal para desarrolladores para mejorar la usabilidad y la visibilidad, la plataforma en sí es el conjunto completo de tecnologías subyacentes y procesos automatizados.

Componentes clave de una IDP

Si bien las necesidades de cada empresa son diferentes, la mayoría de las IDP se basan en algunos componentes principales que trabajan en conjunto. Estos componentes se enfocan en crear una ruta optimizada, segura y eficiente desde el desarrollo hasta la producción.

La experiencia de los desarrolladores es la interfaz central que abstrae la complejidad subyacente de la infraestructura. A menudo, es un portal para desarrolladores o una interfaz de línea de comandos (CLI) que les da acceso de autoservicio a las herramientas, la documentación y los recursos que necesitan. Por ejemplo, los complementos de IDE como Cloud Code ayudan a los desarrolladores a escribir y depurar código directamente en las herramientas que les resultan familiares, mientras que los portales creados con soluciones como Backstage en Google Cloud proporcionan una vista única y consolidada de todo su ecosistema de software.

Las plantillas de apps, a veces llamadas rutas doradas, les proporcionan a los desarrolladores una estructura predefinida de prácticas recomendadas para las aplicaciones nuevas. Estas plantillas pueden incluir código estándar, canalizaciones de CI/CD configuradas, archivos de infraestructura como código y paneles de supervisión. Recursos como App Design Center pueden ayudar a los equipos a crear y administrar un catálogo de estas plantillas, lo que garantiza que las prácticas recomendadas sean fáciles de descubrir y reutilizar. Este enfoque acelera la incorporación de desarrolladores y crea coherencia entre los servicios.

Este componente integra la seguridad directamente en el flujo de trabajo de desarrollo. Automatiza la aplicación de políticas de seguridad, como la administración de identidades y accesos (IAM), el control de acceso basado en roles (RBAC), las políticas de red, el análisis de vulnerabilidades y el endurecimiento de la infraestructura. Cuando se incorpora la seguridad en la base de la plataforma, los equipos pueden "implementar la seguridad de manera temprana" y abordar los posibles problemas en las primeras etapas del ciclo de vida del desarrollo. Esto evita que la seguridad se convierta en un cuello de botella justo antes de la producción.

Una base centrada en la aplicación crea una capa de abstracción estandarizada sobre la infraestructura subyacente. Proporciona un modelo unificado para las principales preocupaciones operativas, ya que ofrece un único enfoque para las redes, la seguridad y la observabilidad que funciona en todos los entornos. Esta coherencia simplifica la administración y reduce la carga cognitiva de los desarrolladores, que no necesitan preocuparse por los detalles únicos de cada destino de implementación, como una configuración específica de clústeres de Google Kubernetes Engine (GKE).

Una IDP administra los entornos de ejecución de aplicación en los que se ejecuta el código. Estos entornos de ejecución pueden ser plataformas de organización de contenedores como GKE, plataformas sin servidores como Cloud Run o cualquier otro entorno de procesamiento. La IDP automatiza el aprovisionamiento, la configuración y el mantenimiento de estos entornos de ejecución. Esto permite que los desarrolladores implementen sus aplicaciones de forma rápida y confiable sin necesidad de tener experiencia en los servicios de procesamiento subyacentes.

La plataforma de aplicaciones en la nube es el conjunto integrado de servicios en la nube que sirve como la columna vertebral de toda la IDP. Reúne procesamiento, almacenamiento, redes, APIs de Cloud, herramientas de CI/CD y observabilidad en un sistema cohesivo. Crear una IDP en una base integral como Google Cloud puede permitir que los equipos aprovechen servicios administrados y potentes para acelerar el desarrollo, mejorar la confiabilidad y garantizar que la plataforma pueda escalar para satisfacer la demanda.

Beneficios de las IDP

Adoptar una plataforma interna para desarrolladores puede ofrecer ventajas significativas para las organizaciones de ingeniería.

Experiencia mejorada para los desarrolladores

Con la reducción de la carga cognitiva y la provisión de flujos de trabajo de autoservicio simples, las IDP pueden ayudar a mejorar la experiencia de los desarrolladores.

Tiempo más rápido de salida al mercado

La automatización y la estandarización pueden ayudar a acelerar el proceso de creación e implementación de software, lo que les permite a los equipos entregar valor a los clientes con mayor rapidez.

Mayor confiabilidad y coherencia

Las IDP pueden ayudar a aplicar prácticas recomendadas a través de rutas doradas y pueden llevar a implementaciones de aplicaciones más coherentes y confiables.

Seguridad y cumplimiento mejorados

Las políticas de seguridad se pueden integrar directamente en las plantillas de la plataforma y los flujos de trabajo automatizados, lo que garantiza que todos los servicios nuevos cumplan con los requisitos de cumplimiento desde el principio.

Mayor autonomía de los desarrolladores

Centralizar la administración de la plataforma puede liberar a los desarrolladores para que se enfoquen en las funciones y les da la autonomía para administrar el ciclo de vida de sus aplicaciones.

Cómo un IDP conecta tu pila existente

Para ver cómo funciona un IDP en la práctica, veamos un ejemplo común de plataforma interna para desarrolladores con Google Cloud. Imagina que un desarrollador necesita crear un nuevo microservicio que requiere su propia base de datos y canalización de CI/CD.

Sin una IDP

El desarrollador tendría que crear manualmente un Cloud Source Repository, escribir un módulo de Terraform para aprovisionar una base de datos de Cloud SQL, crear y configurar un archivo de implementación de Google Kubernetes Engine (GKE) (YAML), configurar un nuevo activador en Cloud Build y administrar los permisos de IAM para todo. Esto podría tardar días y requerir la participación de varios equipos.

Con una IDP

El proceso es mucho más sencillo.

Solicitud desde el portal: El desarrollador accede al portal para desarrolladores y encuentra una plantilla prediseñada para un “microservicio de Python con una base de datos de Cloud SQL”.

Entradas simples: Completa un formulario corto con el nombre del servicio y el nombre de su equipo.

Comienza la organización: El desarrollador hace clic en "Crear" y el organizador de la plataforma toma el control.

Acciones automatizadas: En segundo plano, el orquestador realiza una serie de tareas automatizadas con APIs de Google Cloud:

  • Crea un nuevo repositorio en Cloud Source Repositories a partir de la plantilla.
  • Ejecuta un plan de Terraform para aprovisionar una nueva instancia de Cloud SQL para PostgreSQL.
  • Crea los manifiestos necesarios y los aplica al clúster de Google Kubernetes Engine (GKE) para crear un nuevo entorno de implementación.
  • Configura una nueva canalización de CI/CD en Cloud Build para compilar e implementar el servicio automáticamente.

Finalización: En cuestión de minutos, el proceso se completa. El desarrollador recibe una notificación con vínculos a su nuevo repositorio, su aplicación en ejecución en el entorno de etapa de pruebas de GKE y las credenciales de la base de datos, todo sin escribir una sola línea de configuración.

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.
¿Qué problema intentas resolver?
What you'll get:
Guía paso a paso
Arquitectura de referencia
Soluciones previamente compiladas disponibles
Este servicio se creó con Vertex AI. Debes ser mayor de 18 años para usarlo. No ingreses información sensible, confidencial ni personal.

Recursos adicionales

Para obtener más información sobre los conceptos y las tecnologías que componen una plataforma interna para desarrolladores, consulta estos recursos adicionales:

  • Ingeniería de plataformas en Google Cloud: Aprende sobre la disciplina de diseñar y crear las cadenas de herramientas y los flujos de trabajo que permiten el autoservicio de los desarrolladores
  • DevOps: Conoce en detalle la cultura, las prácticas y las herramientas que ayudan a las organizaciones a entregar aplicaciones y servicios a alta velocidad

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