paint-brush
Una guía detallada de las plataformas internas para desarrolladores (IDP)por@guhans
3,229 lecturas
3,229 lecturas

Una guía detallada de las plataformas internas para desarrolladores (IDP)

por Guhan Sundar8m2023/04/28
Read on Terminal Reader

Demasiado Largo; Para Leer

Las plataformas internas para desarrolladores (IDP) son plataformas que los desarrolladores pueden aprovechar para crear e implementar sus aplicaciones en uno de los entornos. La plataforma puede construirse internamente, por lo general, una adaptación de una oferta de código abierto o comprada, como una plataforma como servicio (PaaS) El informe State of Platform Engineering 2023 de Puppet encuentra que más del 51% de las empresas que han adoptado Plataformas de desarrollador internas lo han hecho en los últimos tres años.
featured image - Una guía detallada de las plataformas internas para desarrolladores (IDP)
Guhan Sundar HackerNoon profile picture
0-item

¿Qué son las plataformas de desarrolladores internos (IDP)?

Las plataformas internas para desarrolladores (IDP) son plataformas que los desarrolladores pueden aprovechar para crear e implementar sus aplicaciones en uno de los entornos. Su propósito principal es aumentar el ritmo de desarrollo y reducir la dependencia del desarrollador de los ingenieros de DevOps y Plataforma a través de la automatización y el autoservicio del desarrollador. La plataforma puede construirse internamente, por lo general, una adaptación de una oferta de código abierto o comprada, como una plataforma como servicio (PaaS).


La adopción ha sido reciente y rápida. La encuesta sobre el estado de la ingeniería de plataformas de Puppet revela que más del 51 % de las empresas que han adoptado plataformas internas para desarrolladores lo han hecho en los últimos tres años. Y una abrumadora mayoría de los encuestados (93%) declaró que la adopción de desplazados internos es un paso en la dirección correcta.


Las plataformas de desarrollo internas son buenas para ayudar al equipo a administrar las aplicaciones y la infraestructura desde un solo lugar, brindando una estrecha integración con las herramientas y servicios existentes, y brindando a los desarrolladores capacidades de autoservicio y colaboración.

Beneficios de los desplazados internos

Los desplazados internos ofrecen varios beneficios a las organizaciones que los utilizan. El primero se relaciona con las mejoras en la infraestructura y la gestión de TI, como una mayor productividad derivada de la reducción de los tiempos de comunicación entre los desarrolladores y los equipos de infraestructura. En segundo lugar, reducen la complejidad de la nube y facilitan que las personas de su organización adopten las mejores prácticas establecidas por su equipo. En organizaciones más grandes, también pueden ser una manera fácil de administrar RBAC para implementaciones, creación y administración de infraestructura, y más.


Las respuestas del informe State of Platform Engineering 2023 de Puppet también muestran cómo IDP ha mejorado los KPI de DevOps :


  • Un aumento en la velocidad de desarrollo (68%)
  • El 42% dice que la velocidad de desarrollo ha mejorado "mucho" desde que comenzaron a hacer ingeniería de plataformas.
  • Productividad mejorada (59%)
  • Fiabilidad del sistema mejorada (60 %)
  • Seguridad mejorada (55%)

Componentes de los desplazados internos

Profundicemos en los componentes de los IDP y analicemos qué partes del proceso de administración de aplicaciones e infraestructura mejoran.


  1. Integración con herramientas y servicios existentes Los IDP se construyen mediante la integración con el conjunto existente de herramientas y servicios que la empresa utiliza actualmente. Estos pueden ser sus sistemas de control de código fuente (p. ej., GitHub, GitLab), canalizaciones de integración continua e implementación continua (CI/CD) y herramientas de observación, como sistemas de seguimiento y registro.

    Además, también pueden incluir alguna forma de control de acceso, tableros de observabilidad y un conjunto de mejores prácticas para que las usen los desarrolladores.


  2. Gestión de aplicaciones e infraestructura

    Los IDP se pueden usar para automatizar gran parte de las molestias de la implementación. Al configurar IDP con las mejores prácticas de GitOps, los usuarios pueden implementar automáticamente cambios de aplicaciones e infraestructura con cada compromiso con el código de Git. La gestión de múltiples entornos es otro caso de uso popular de los desplazados internos. Pueden ser efectivos para crear, brindar acceso selectivo y administrar el uso de múltiples entornos diferentes, como desarrollo, prueba, preproducción y producción. Varias herramientas configuran entornos de vista previa sobre la marcha. Su capacidad para monitorear y ver implementaciones en todos los entornos ayuda a las organizaciones a escalar dinámicamente para cambiar las cargas de trabajo y mantener un rendimiento constante en toda su infraestructura.


  3. Capacidades de autoservicio para desarrolladores Los IDP capacitan a los desarrolladores con capacidades de autoservicio al ofrecer una interfaz centralizada y fácil de usar para acceder a herramientas, recursos y servicios bajo demanda. Estas capacidades facilitan ciclos de desarrollo más rápidos, reducen la dependencia de los equipos de operaciones y permiten una mayor autonomía para crear, probar e implementar aplicaciones sin inconvenientes.

    El flujo de trabajo optimizado también hace que sea considerablemente más fácil para los nuevos empleados comenzar con su pila sin sumergirse en el funcionamiento interno. Algunas herramientas también agregan una capa de colaboración en la parte superior que permite que diferentes miembros de un equipo trabajen juntos fácilmente y revisen los cambios antes de implementar el código.


  4. Funciones de colaboración y gobernanza Los IDP pueden lograr una mayor seguridad y cumplimiento al proporcionar controles de acceso basados en roles (RBAC), asegurando que cada miembro del equipo tenga los permisos adecuados para acceder a recursos específicos y realizar ciertas acciones. En general, esto minimizó el riesgo de acceso no autorizado o cambios accidentales al mismo tiempo que promovió la colaboración y los flujos de trabajo eficientes entre equipos multifuncionales.

    Los IDP ayudan a los equipos de desarrolladores a mantener la transparencia, la responsabilidad y la trazabilidad durante todo el proceso de desarrollo al proporcionar registros de auditoría y seguimiento del historial. Esto permite una identificación y resolución de problemas más sencilla, así como también garantiza el cumplimiento de los requisitos normativos y organizativos para el manejo de datos y la gestión de cambios.

ingeniería de plataformas

Las empresas que deciden construir su propia plataforma suelen contratar ingenieros de plataforma, que son profesionales especializados responsables de la creación y mejora continua del IDP. Trabajan para implementar y mantener herramientas, servicios y mejores prácticas que agilicen los procesos de desarrollo, asegurando un flujo de trabajo fluido y eficiente para los desarrolladores de la organización.


La ingeniería de plataforma es el proceso de diseño, construcción y mantenimiento de un IDP que proporciona una infraestructura centralizada, escalable y eficiente para los desarrolladores dentro de una organización. Un IDP simplifica y estandariza el desarrollo, la implementación y la administración de aplicaciones, lo que permite una entrega de software más rápida y confiable.

Tendencias de desarrollo de software que son catalizadores para la adopción de IDP

  1. Transformación digital: a medida que las empresas de todo el mundo adoptan cada vez más la transformación digital, existe una necesidad creciente de procesos de desarrollo de software eficientes y sólidos. Los desplazados internos desempeñan un papel crucial para permitir que las empresas se mantengan ágiles y se adapten rápidamente al dinámico panorama digital.


  2. Necesidad de una entrega de software más rápida: en el entorno empresarial acelerado de hoy, las organizaciones deben entregar nuevas funciones y aplicaciones a una velocidad sin precedentes. Los IDP proporcionan una plataforma estandarizada, automatizada y centralizada que acelera los ciclos de desarrollo, lo que permite a las empresas mantenerse competitivas y receptivas a los cambios del mercado.


  3. La creciente complejidad de las arquitecturas de software: con el auge de los microservicios, los contenedores y las tecnologías nativas de la nube, la gestión y la implementación del software se han vuelto cada vez más complejas. Los IDP ayudan a simplificar esta complejidad al proporcionar una plataforma unificada donde los desarrolladores pueden crear, probar e implementar aplicaciones con facilidad, independientemente de la arquitectura subyacente.


  4. Demanda de prácticas DevOps y CI/CD: La necesidad de IDP crece a medida que más organizaciones adoptan prácticas DevOps e Integración continua/Implementación continua (CI/CD). Los IDP permiten una colaboración fluida entre los equipos de desarrollo y operaciones, automatizando muchas tareas manuales y asegurando transiciones fluidas a lo largo del ciclo de vida del desarrollo de software.


  5. Escalabilidad y flexibilidad: los IDP ofrecen una solución escalable que puede adaptarse a las crecientes necesidades de las organizaciones, independientemente de su tamaño. Proporcionan una plataforma flexible que se puede personalizar y adaptar fácilmente para satisfacer los requisitos únicos de diferentes equipos y proyectos.


  6. Colaboración entre regiones: con empresas que operan en múltiples geografías, la necesidad de una plataforma que admita la colaboración entre regiones es esencial. Los desplazados internos empoderan a los equipos de desarrollo repartidos por todo el mundo para que trabajen juntos sin problemas, lo que permite compartir conocimientos de manera eficiente y fomentar una cultura de innovación.


En resumen, la creciente popularidad de los IDP en empresas de todos los tamaños y regiones en todo el mundo se puede atribuir a su capacidad para optimizar los procesos de desarrollo de software, simplificar arquitecturas complejas, admitir prácticas DevOps y CI/CD, y facilitar la colaboración entre regiones. A medida que la demanda de digitalización y agilidad sigue creciendo, los desplazados internos están preparados para desempeñar un papel fundamental en la configuración del futuro del desarrollo de software.

Plataformas internas para desarrolladores disponibles comercialmente

  1. ¡ Argonaut es una plataforma de automatización de DevOps que ayuda a la ingeniería a administrar tanto la aplicación como el lado inferior de las cosas y enviar más rápido! Construido con las mejores prácticas de GitOps en mente, Argonaut reduce las complejidades de crear y mantener configuraciones en la nube. Ya sea que se trate de la implementación de aplicaciones de Kubernetes en AWS o GCP, hay varios tiempos de ejecución, entornos, regiones, integraciones y tipos de aplicaciones para elegir.


  2. Mia Platform ofrece una forma sencilla de desarrollar y operar aplicaciones modernas en la nube en Kubernetes. Se puede adoptar como una opción autohospedada o PaaS. También hay un mercado con complementos, plantillas y aplicaciones esenciales que facilitan el comienzo. Sus características benefician no solo a los desarrolladores sino también a los ingenieros de plataforma y CIO.


  3. Humanitec es una plataforma interna para desarrolladores que brinda simplicidad, automatización, reutilización y autoservicio. Actúa como un orquestador de plataforma que permite a los equipos de ingeniería eliminar cuellos de botella al permitirles crear rutas doradas basadas en código (archivos de configuración ejecutables y plantillas) para desarrolladores. Se puede utilizar a través de la CLI o la interfaz de usuario.


  4. Opslevel proporciona a los equipos de ingeniería acceso de autoservicio a herramientas e información. Ayuda a los desarrolladores a garantizar la excelencia operativa en todos los servicios con sus integraciones que se pueden configurar de manera segura y compatible.


  5. Shipa es una plataforma de administración de aplicaciones de Kubernetes que permite procesos de implementación eficientes. Los desarrolladores pueden aprovechar sus definiciones de políticas y aplicaciones estandarizadas que son independientes de la plataforma. También tiene un portal basado en GUI para administrar aplicaciones después de la implementación y obtener visibilidad de las canalizaciones para operaciones más fluidas.


  6. Port proporciona un catálogo de software rico en contexto con cuadros de mando de madurez y calidad. También admite acciones integrales de autoservicio para desarrolladores al tiempo que proporciona controles de acceso basados en roles (RBAC) adicionales. Su libre para siempre proporciona muchas características clave y lo convierte en un competidor digno.


  7. Upbound , con tecnología de Crossplane, ofrece una solución de plano de control de nivel empresarial para entornos híbridos y de múltiples nubes, lo que permite una gestión eficiente de la infraestructura de la nube. La línea de comando Up y el mercado Upbound hacen que sea más efectivo y fácil comenzar.


  8. DevOpsBox es una plataforma DevOps todo en uno que agiliza el proceso de implementación de aplicaciones. Proporciona un conjunto completo de funciones de forma modular que permite a los equipos centrarse por completo en la funcionalidad empresarial.

Evaluación de plataformas internas para desarrolladores

A pesar de su gran cantidad de beneficios, las plataformas internas para desarrolladores no tienen sentido para todos los equipos. Pueden terminar siendo excesivos para ciertos tipos de equipos de ingeniería y una carga para construir y mantener para empresas con equipos más pequeños.

Cuando no tienen sentido

  1. Tiene procesos existentes que son eficientes. No compliques las cosas demasiado pronto. Las empresas que actualmente usan PaaS u otras ofertas administradas deben continuar haciéndolo durante el mayor tiempo posible.


  2. Recursos limitados y tamaño del equipo. Esto también podría significar que su equipo es pequeño, y la mayoría de su equipo es senior y se siente cómodo escribiendo guiones y administrando la infraestructura.


  3. Hay baja complejidad de desarrollo. Si solo tiene una aplicación con una configuración simple de una sola nube. Y, si su aplicación es monolítica y no hace uso de la arquitectura de microservicio, hay pocos beneficios al crear un IDP.


  4. Cultura organizacional incompatible. Si la cultura de una organización se resiste al cambio o no fomenta la colaboración y la comunicación, la implementación de un IDP podría no tener éxito e incluso podría conducir a una disminución de la eficiencia y la productividad.

cuando tienen sentido

  1. Planea comenzar a usar Microservicios. Por lo general, esto también significa un tamaño creciente del equipo de desarrollo o la complejidad de los proyectos que maneja.


  2. Tiene un equipo pequeño y no todos se sienten cómodos con las implementaciones, las secuencias de comandos y la infraestructura, y aún no ha contratado a un DevOps dedicado.


  3. Las dependencias de otros colegas están bloqueando a sus desarrolladores.


  4. El costo de su configuración existente (como PaaS) es demasiado alto. Lo cual es inevitable una vez que comienza a escalar para cumplir con los nuevos requisitos.


  5. Tiene planes de utilizar varias nubes, adoptar servicios en la nube más modernos y escalar geográficamente.


  6. Desea aumentar la estandarización y la coherencia entre sus equipos. Un IDP puede ayudar a reducir los errores, mejorar la calidad del código y garantizar que todos los desarrolladores trabajen con el mismo conjunto de herramientas y sigan las mismas mejores prácticas.


También publicado aquí.