Una de las palabras de moda populares en los círculos de desarrollo en los últimos años ha sido”implementación a escala”. Ahora, si bien es bueno tener un término universalmente reconocido, las opiniones sobre lo que realmente significa la implementación a escala tienden a variar.

Entonces, ¿qué significa exactamente’a escala’en la comunidad de desarrollo y cómo pueden las empresas definir su enfoque propio? Hablamos con Adam Frank, vicepresidente de productos y marketing de Armory.io, para averiguarlo.

BN: Comencemos volviendo a lo básico, ¿qué constituye una’implementación’?

AF: una implementación en el contexto de la implementación continua y la tecnología es cuando el código o los cambios de configuración se confirman o”implementan”automáticamente.’en producción. La implementación continua garantiza la implementación sin afectar negativamente la experiencia del usuario mediante la orquestación del ciclo de vida de la promoción del entorno y las pruebas, mientras se utilizan estrategias progresivas como canary y blue/green con análisis de impacto automatizado y reversiones continuas.

BN: ¿Cómo es la implementación? afectado por el entorno empresarial?

AF: El entorno empresarial crea complejidad con su tamaño, inconsistencias y una miríada de partes móviles. La implementación de software a escala en el entorno empresarial puede ser inmensamente desafiante, engorrosa, lenta y costosa. Los otros aspectos de la escala que no podemos olvidar son las personas y los aspectos del proceso también. Los equipos de toda la empresa van a tener diferentes procesos, objetivos, prioridades y mandatos. Las personas, los procesos y la tecnología a escala empresarial a menudo conducen a la complejidad.

BN: ¿Dónde traza la línea entre implementación y mantenimiento? ¿Cómo encaja esto con el concepto de implementación continua?

AF: No hay una línea definida entre implementación y mantenimiento, ni debería haberla. Algunos códigos pueden ofrecer nuevas funciones, mientras que otros pueden proporcionar una corrección de errores o limpiar el código existente y la deuda tecnológica. De cualquier manera, todos deben pasar por el proceso de implementación para garantizar la funcionalidad y reducir las fallas en los cambios.

BN: Entonces, ¿cómo se pueden escalar las implementaciones?

AF: Dos palabras: Orquestación. Automatización. Los ingenieros de plataforma y los profesionales de DevOps dedican mucho tiempo a crear y mantener canalizaciones y procesos de implementación, cuya complejidad aumenta el tiempo entre lanzamientos y disminuye la probabilidad de una implementación exitosa. Las herramientas locales carecen de escalabilidad en los tres aspectos: personas, procesos, tecnología. Quiere que su gente se concentre en su ventaja competitiva; enfocados en tu valor diferenciador. No construir y mantener infraestructuras. Quiere que su proceso sea automatizado, de extremo a extremo. Para escalar las implementaciones de manera eficiente, los equipos deben hacer que todo el proceso sea sencillo, confiable y repetible. La implementación continua organiza las pruebas, el escaneo de seguridad, el ciclo de vida de la promoción en cada clúster y entorno, independientemente de cuántos clústeres y entornos pueda tener, y lo que es más importante, reduce el riesgo de afectar negativamente la experiencia del cliente. Ya sea que vaya de 10 a 1000 desarrolladores o 1000 o 10 000 y más, un buen flujo de trabajo de implementación continua sigue siendo fácil de mantener, eficiente y efectivo.

BN: ¿Qué papel tienen las tecnologías como la contenedorización? para jugar?

AF: Los contenedores virtualizan las capas de software por encima del nivel del sistema operativo, lo que los convierte en paquetes de software livianos que contienen todas las dependencias necesarias para ejecutar el software contenido. Debido a que son livianos, son muy rápidos de modificar e iterar. Esto los hace perfectos para la implementación continua. Una vez que el proceso de integración continua se haya completado con éxito y haya un nuevo artefacto; una nueva imagen de contenedor, el flujo de trabajo de implementación continua toma el control y organiza la implementación en todos los entornos. Esto garantiza que el artefacto llegue a la producción de forma segura.

Crédito de la imagen: Elnur_/depositphotos.com

By Henry Taylor

Trabajo como desarrollador back-end. Algunos me habréis visto en la conferencia de desarrolladores. Últimamente he estado trabajando en un proyecto de código abierto.