¿Qué es una “buena” ingeniería de plataformas?

Un enfoque de ingeniería de plataforma ahorra tiempo a los desarrolladores y los equipos pueden eliminar categorías enteras de solicitudes rutinarias de los desarrolladores.

Traducido de Ingeniería de plataformas: ¿Cómo se ve lo "bueno"?, autor Dormain Drewitz.

Para mejorar la experiencia del desarrollador, cada vez más organizaciones buscan la ingeniería de plataformas para reducir el trabajo tedioso y centrarse en funciones e innovación que generen ingresos.

La ingeniería de plataformas aporta dos beneficios principales. La primera es la introducción de capacidades de autoservicio que permiten a las personas de la organización probar software nuevo. El segundo es la incorporación de operaciones de infraestructura automatizadas para garantizar que los experimentos se realicen en un entorno bien gestionado.

Los beneficios son tan significativos que Gartner estima que para 2026, el 80% de las grandes organizaciones de ingeniería de software tendrán equipos de ingeniería de plataformas . Pero, ¿qué hay detrás de tanta exageración?

¿Qué es la ingeniería de plataformas?

Un enfoque de ingeniería de plataforma complementa DevOps . La "plataforma" es un entorno interno creado para que los desarrolladores creen y ejecuten software (como aplicaciones, herramientas y flujos de trabajo) en un entorno seguro y compatible.

El objetivo principal de la ingeniería de plataformas es escalar de manera eficiente el trabajo de los desarrolladores y al mismo tiempo mitigar los riesgos de seguridad y disponibilidad. Las plataformas de desarrollo abordan los enormes costos y complejidades que pueden surgir con el desarrollo a gran escala. La razón más común de estos costos es que los desarrolladores crean entornos separados para cada proyecto (o incluso casos de prueba individuales dentro de un proyecto). Otro beneficio es la mayor probabilidad de poder trabajar a escala debido a la capacidad de automatizar procesos operativos que funcionan dentro de una plataforma unificada.

Para que este enfoque tenga éxito, el software debe implementarse dentro de la misma plataforma. A primera vista, esto puede hacer que un enfoque de ingeniería de plataforma parezca una limitación de productividad, pero en realidad puede liberar la creatividad de los desarrolladores y reducir significativamente el tedioso trabajo diario.

Construir versus comprar: ¿Cómo lo implementan las organizaciones?

Para que un proyecto de plataforma tenga éxito, la plataforma debe implementarse correctamente. Dado que las organizaciones requieren personalización de sus plataformas, no es posible simplemente comprar productos disponibles en el mercado. Al mismo tiempo, hay una gran cantidad de productos puntuales y proyectos de código abierto disponibles para abordar la gran cantidad de infraestructura, CI/CD, seguridad y otros “trabajos por hacer” que surgen al implementar y ejecutar software en producción.

Esto significa que, en cambio, las organizaciones necesitarán realizar algún trabajo de ingeniería en los productos que compren o en el software de código abierto que hayan adoptado. Pero la pregunta es: ¿cuánto de su propio diseño es apropiado? La ingeniería de plataformas puede distraer la atención de los objetivos comerciales en lugar de impulsar lo que diferencia a estas organizaciones.

La solución a este problema es que las organizaciones construyan la plataforma más sencilla posible. Los equipos de ingeniería de plataformas no deberían construir desde cero; las plataformas deberían construirse sobre otras plataformas. Las organizaciones no esperan que sus equipos de software hagan de todo, desde conectar servidores hasta entregar productos, y ciertamente no deberían esperar que los equipos de ingeniería de plataformas implementen completamente una plataforma desde cero.

En cambio, estos equipos necesitan construir sobre los hombros de gigantes. Para impulsar este enfoque, las organizaciones deben comprar tantas herramientas de plataforma como servicio (PaaS) y software como servicio (SaaS) como sea posible y agruparlas para construir una plataforma terminada y viable. Hay suficiente trabajo para mantener, integrar y actualizar la experiencia de plataforma más básica. Esto incluye la creación de interfaces y API que utilizarán los ingenieros internos, lo que puede mitigar la dependencia del proveedor.

En este modelo, la plataforma de cada organización se construye a medida, pero se ubica sobre las herramientas existentes, compatibles y adquiribles. Con este enfoque, las organizaciones pueden escapar del dilema construir versus comprar y concentrarse en ajustar su plataforma para satisfacer las necesidades de su organización.

¿Qué tiene que pasar para que se convierta en la norma?

Muchas organizaciones tienen dificultades a la hora de adoptar DevOps porque las funciones y responsabilidades pueden parecer abrumadoras. Si los desarrolladores son responsables de todo lo que hay en su pila, en producción todos los días, pueden estancarse en un trabajo tedioso que no proporciona valor comercial. Pero los equipos tradicionales de arquitectura y operaciones a menudo no miden la efectividad de los desarrolladores, por lo que los desarrolladores solo pueden enviar tickets y esperar.

Para que la ingeniería de plataformas tenga éxito, se requiere el apoyo total de la organización. Para crear una mejor experiencia para los usuarios internos, es necesario eliminar los silos. La ingeniería de plataformas requiere su propio equipo para tener éxito; no puede verse simplemente como una extensión de TI.

Además de los cambios operativos, la ingeniería de plataformas requiere un cambio cultural en los equipos de desarrollo para priorizar los requisitos no funcionales, como la usabilidad y la seguridad, además de las características individuales. La plataforma debería ayudar a facilitar lo correcto, pero la responsabilidad debe compartirse entre el equipo de la plataforma lean y sus usuarios (el equipo de desarrollo de software).

Como siempre ocurre cuando una organización revisa sus procesos de trabajo, hacer las cosas a medias no es suficiente. Las empresas no pueden implementar con éxito la ingeniería de plataformas sin el apoyo total de todos los desarrolladores de la organización, así como la aceptación de los miembros superiores del equipo.

¿Por qué debería importarles a los desarrolladores?

Es fácil para las grandes organizaciones de ingeniería de software tener pilas de tecnología grandes y complejas. Esto puede hacer que el mantenimiento sea una pesadilla y provocar ciclos de lanzamiento largos y lentos e interrupciones estresantes. La adopción de la ingeniería de plataforma cambia la complejidad por una pila mucho más eficiente, eliminando partes sin importancia o engorrosas. Los tomadores de decisiones no deben tener miedo de desmantelar herramientas o cerrar entornos que no necesitan, incluso automatizar este proceso una vez que los desarrolladores confíen en la plataforma que están utilizando. De hecho, la automatización puede hacer que el desmantelamiento forme parte del ciclo de vida de la plataforma, integrándola en los procesos existentes para ahorrar tiempo y dinero.

Un enfoque de ingeniería de plataforma también puede ahorrar mucho tiempo a los desarrolladores, así como a los equipos de infraestructura y operaciones. Estos equipos pueden eliminar categorías enteras de solicitudes rutinarias de los desarrolladores. Los equipos de plataforma automatizan tareas rutinarias y repetitivas, como lanzar nuevos entornos, administrar infraestructura, crear y configurar repositorios y manejar canales de CI/CD para suavizar los ciclos de desarrollo y reducir el trabajo tedioso.

Los desarrolladores pueden ahorrar tiempo y esfuerzo descargando trabajo a la plataforma, lo que puede proporcionar un incentivo importante para migrar aplicaciones existentes a la plataforma. Estos beneficios también pueden generar importantes ahorros de costos para las empresas a medida que los desarrolladores se vuelven más productivos, eliminando la necesidad de contratistas y personal adicionales para aumentar los servicios.

Ingeniería de plataformas para el futuro

En última instancia, el objetivo de la ingeniería de plataformas es alentar a los desarrolladores, independientemente de su equipo o función, a utilizar la plataforma en lugar de experimentar fuera de ella. Cuando trabajan dentro del marco de esta configuración con cadenas de herramientas y flujos de trabajo completamente implementados, los desarrolladores pueden concentrarse en la codificación sin preocuparse por la infraestructura. Esto reduce en gran medida su carga de trabajo diaria, lo que les permite prosperar en lugar de simplemente sobrevivir.

Este artículo se publicó por primera vez en Yunyunzhongsheng ( https://yylives.cc/ ), todos son bienvenidos a visitarlo.

Un programador nacido en los años 90 desarrolló un software de portabilidad de vídeo y ganó más de 7 millones en menos de un año. ¡El final fue muy duro! Los estudiantes de secundaria crean su propio lenguaje de programación de código abierto como una ceremonia de mayoría de edad: comentarios agudos de los internautas: debido al fraude desenfrenado, confiando en RustDesk, el servicio doméstico Taobao (taobao.com) suspendió los servicios domésticos y reinició el trabajo de optimización de la versión web Java 17 es la versión Java LTS más utilizada. Cuota de mercado de Windows 10. Alcanzando el 70%, Windows 11 continúa disminuyendo. Open Source Daily | Google apoya a Hongmeng para hacerse cargo de los teléfonos Android de código abierto respaldados por Docker; Electric cierra la plataforma abierta Apple lanza el chip M4 Google elimina el kernel universal de Android (ACK) Soporte para la arquitectura RISC-V Yunfeng renunció a Alibaba y planea producir juegos independientes para plataformas Windows en el futuro
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/6919515/blog/11086682
Recomendado
Clasificación