Empoderar a los ingenieros a través de plataformas de producto primero

En WP Engine, nuestra organización de Producto e Ingeniería aplica un proceso de mejora continua para mantener un nivel élite de desarrollo de software y rendimiento de entrega.

Esto incluye un enfoque láser en la agilidad, representado por Investigación y evaluación de DevOps (DORA) métricas de velocidad, estabilidad y calidad.

Para lograr sus objetivos, nuestros colegas de ingeniería cuentan con la plataforma de entrega de software Catalyst (SDP) interna de WP Engine, y con nosotros, el equipo dedicado de Catalyst, que desarrolla y mantiene esa plataforma, para proporcionar una base unificada para el desarrollo, lanzamiento y administración de productos. .

El objetivo de Catalyst SDP es reducir la carga operativa y cognitiva en nuestros equipos internos al tiempo que mejora significativamente la observabilidad del servicio, la seguridad y la velocidad de entrega. A medida que el valor de la plataforma para los usuarios se ha profundizado en los últimos dos años, la variedad de cargas de trabajo se ha ampliado para incluir más de 30 aplicaciones y servicios. Los nuevos equipos y productos continúan a bordo cada pocas semanas.

Sin embargo, en los primeros días del SDP, los ingenieros que implementaron con éxito los servicios de producción en la plataforma también tuvieron problemas con la administración de la configuración de la aplicación. Si bien el equipo de Catalyst se había decidido por un flujo de trabajo que usaba herramientas de configuración declarativas, no habíamos logrado el equilibrio adecuado entre flexibilidad y facilidad de uso.

Necesitábamos evaluar los desafíos de los usuarios de SDP más de cerca y tomar medidas. Cuando nos relacionamos con los ingenieros, aprendimos que el desarrollo de aplicaciones se ralentizaba por la complejidad de las herramientas de configuración; específicamente, a los usuarios les resultó difícil crear configuraciones de Kubernetes que cumplieran con los requisitos de seguridad de WP Engine.

Entendimos su carga de usar múltiples herramientas, scripts personalizados y parches de configuración complejos para personalizar los recursos, según lo requiere nuestra solución de administración de configuración. También reconocimos el esfuerzo duplicado entre los equipos para resolver de forma independiente los puntos débiles comunes.

Para restaurar el enfoque de los equipos de productos en el mejor desarrollo y entrega de software de su clase, teníamos un trabajo que hacer. También teníamos una reputación que mantener como ganadores de Premio DevOps 2021 de Google por “Liberar todo el poder de la nube”!

Exploremos los cambios que introdujimos en el flujo de trabajo de administración de configuración en SDP, nuestro enfoque de implementación y el impacto que estos cambios tuvieron en la experiencia de ingeniería.

Índice de contenidos
  1. Complejidad reducida
  2. Funciones compartidas
  3. Ejemplos documentados
  4. Seguridad por defecto
  5. Versionado y Pinning
  6. Conciencia del cambio
  7. Participación del usuario y resultados
  8. ¿Qué hay por delante?

Complejidad reducida

Para eliminar la necesidad de patrones superpuestos, parches complejos o secuencias de comandos personalizadas, consolidamos las herramientas necesarias para operar en configuraciones. Los ingenieros ahora pueden abordar casos de uso básicos con una sola herramienta, Capitánque simplifica los cambios de configuración funcional a través de su paradigma Configuration as Data.

Funciones compartidas

Nuestro producto más impactante fue una biblioteca de definiciones de recursos de Kubernetes reutilizables como funciones kpt. Los ingenieros ahora pueden crear aplicaciones con unidades de configuración funcionales interoperables y pueden aprovechar las configuraciones k8s empaquetadas y probadas, lo que reduce la duplicación de código y aumenta la capacidad de mantenimiento.

Ejemplos documentados

Para agilizar aún más la implementación de casos de uso funcionales comunes, como configurar y autenticar una base de datos, brindamos ejemplos documentados para invocar nuestras funciones kpt. Con la ayuda de un punto de partida coherente y fiable, los ingenieros pueden proceder con confianza y rapidez a su trabajo de valor añadido.

Seguridad por defecto

Para casos de uso estándar, como exponer una aplicación a Internet o enrutar el tráfico entre servicios dentro de la malla, empaquetamos el cumplimiento de la seguridad corporativa básica en las propias funciones de kpt. Al aplicar nuestras funciones a sus casos de uso, los equipos de productos se benefician de la postura de seguridad de "cierre predeterminado" y "privilegio mínimo" que aplicamos, logrando una seguridad de aplicación mejorada sin gastos generales de ingeniería.

Versionado y Pinning

Aplicamos el control de versiones semántico a nuestros generadores de nube Catalyst y funciones kpt. Ahora los ingenieros pueden anclar sus versiones de imagen y seleccionar automáticamente nuestros últimos cambios sin interrupciones sin necesidad de comprender los detalles de cada modificación.

Conciencia del cambio

Como parte del lanzamiento de nuestra nueva solución de administración de configuración, proporcionamos una utilidad para describir las diferencias lógicas entre la configuración anterior del usuario y la nueva configuración introducida por las funciones de kpt. Usando la utilidad, los ingenieros pueden comprender fácilmente los cambios funcionales en sus aplicaciones.

Participación del usuario y resultados

Nos asociamos con equipos de aplicaciones para implementar estos cambios en 30 cargas de trabajo en SDP. Después de realizar las actualizaciones iniciales directamente en las canalizaciones de los usuarios en un entorno de desarrollo, invitamos a los propietarios de las aplicaciones a aprobar nuestras solicitudes de incorporación de cambios y luego probar sus aplicaciones con las actualizaciones.

Los comentarios directos sobre estos cambios indican que hemos abordado con éxito problemas significativos en la administración de la configuración y que la transición hacia una seguridad y confiabilidad mejoradas requirió un esfuerzo mínimo por parte de los ingenieros. A su vez, nuestros colegas ingenieros han apreciado nuestros esfuerzos para simplificar su trabajo fundamental y restaurar su enfoque en la creación de productos valiosos.

“Usar las nuevas herramientas de administración de configuración con kpt ha sido una gran mejora, es mucho más fácil”, dijo Adam Lassek, ingeniero de software sénior de WP Engine.

"Pusimos en funcionamiento todo un entorno dentro de un sprint, lo que nunca hubiera esperado que fuera posible antes".

El ingeniero de software Piotr Purwin también elogió los cambios y señaló que la plataforma permitió a su equipo implementar las mejores prácticas de kubernetes con menos líneas de código.

“A veces tenemos ganas de cocinar algo elegante, que por supuesto requiere utensilios de cocina básicos, pero también herramientas más complejas y sofisticadas que pueden no estar disponibles para todos en casa”, dijo Purwin.

“Trabajar en el SDP es como entrar en una cocina grande y totalmente equipada y simplemente disfrutar del proceso de preparación del plato”.

¿Qué hay por delante?

Podemos hacer más para optimizar la administración de la configuración de aplicaciones para nuestros usuarios. Continuaremos desarrollando funciones kpt para casos de uso de configuración comunes, como agregar una capa de almacenamiento en caché a una aplicación. También queremos mejorar la experiencia del usuario en otras áreas, incluida la observabilidad.

Si bien las innovaciones de entrega de software se implementan en nuestros equipos internos a través del SDP, el beneficio llega a los clientes de WP Engine a través de una entrega más rápida de nuevos productos.

Nuestra visión de SDP es amplia y profunda, y los líderes de nuestra organización de ingeniería tienen grandes expectativas para su uso futuro. Con más software reutilizable, capacidades listas para usar para aplicaciones y mejoras de la plataforma, Catalyst SDP continuará aumentando la velocidad del equipo de ingeniería y ayudando a los clientes de WP Engine a ganar en línea todos los días.

Motor WP Sr. El ingeniero de software Rahul Dhir contribuyó a este artículo.

Te podría interesar...

Deja una respuesta

Subir