Tech and Solve

Genera tu estrategia de versionamiento para DevOps

Por Didier Franco
DevOps surge de la necesidad de tener mecanismos de integración de cambios y liberaciones más estables y continuas. Alrededor de esta necesidad han surgido herramientas que brindan soluciones con alcance en planeación, metodología, calidad, seguridad e inclusive rollback automáticos de versiones.
En este sentido, lo que logremos con DevOps es tan grande como lo imaginemos y el camino para esto es la automatización de procesos, sin dejar de lado que el versionamiento es un punto fundamental desde el momento de su implementación.
Seguro te preguntarás,
¿Qué es lo que debo versionar?
¿Cuáles son las buenas prácticas?
¿Qué estructuras de versionamiento debo utilizar?
La respuesta puede ser diferente según tu modelo de solución. Por eso, te compartimos algunos contextos en los que es indispensable versionar para plantear tu modelo de solución:
  1. En el código fuente de tu aplicativo, ¡así siempre tienes un punto de regresión en el tiempo!
  2. Versiona tu infraestructura, ¡así tendrás claridad de tu requerimientos de hardware!
  3. No te olvides de versionar las pruebas unitarias, de integración, funcionales, de seguridad, de performance, etcétera
  4. Hazlo también con tus artefactos liberados, así tienes todas tus versiones liberadas siempre disponibles en caso de requerir una regresión.
  5. Tu documentación.
Realmente no hay una única forma de versionar código que apalanque procesos DevOps: todo depende de la complejidad de tu solución. En este punto debes tomar en consideración lo siguiente:
  1. Un pipeline por lo general toma como punto de partida uno o varios repositorios de código, y con ellos inicia todo un ciclo de ejecución.
  2. Entre más repositorios tengas, es más probable tener que configurar ciclos de ejecución adicionales. Así, a mayor cantidad de repositorios, mayor cantidad de automatizaciones a mantener.
  3. ¿Cuántos equipos de trabajo interactúan con tu código?
  4. Los equipos que interactúan con tu código, ¿lo hacen en todos los niveles como infraestructura, pruebas, desarrollo, etcétera, o sólo se encargan de una pequeña parte?
  5. ¿Deseas liberar todo un aplicativo con el menor de lo cambios, o deseas liberar solo cambios específicos en algunas partes de la solución?
Después de resolver estos interrogantes y aplicar estos tips, tienes una base para generar tu estrategia de versionamiento DevOps.