Perspective

Gestión del control de las fuentes (SCM)

Migración SCM 101

Victor Rinaldo S K,

Arquitecto asociado,
Global Capabilities & Soluciones tecnológicas para la automatización de la ingeniería

 

Publicado: marzo 31, 2022

Resumen de la migración a SCM

Gestionar y controlar las versiones del código fuente y los activos es esencial para acelerar la entrega a través de DevOps para una empresa. Existen varias plataformas de control de versiones distribuidas, por lo que migrarlas es un reto sin un plan adecuado. Algunos de los aspectos comunes que se pasan por alto durante las migraciones son las integraciones de la gestión de control de fuentes (SCM), es decir, la integración con las herramientas de construcción, las herramientas de despliegue, los artefactos y otras herramientas del ciclo de vida del desarrollo de software (SDLC).

La migración del SCM no consiste únicamente en cambiar de un sistema de control de versiones a otro. Es una oportunidad para corregir viejas inconsistencias o desafíos e implementar flujos de trabajo modernos y colaborativos para facilitar el trabajo del desarrollador. En este blog hemos cubierto los aspectos clave de la migración a SCM para ayudarle a planificar su migración a SCM sin problemas.

Preparación de la migración

La preparación de la migración revisa la estrategia de ramificación existente y evalúa el ecosistema de herramientas y las integraciones de herramientas SCM. Antes de migrar, es esencial analizar los siguientes pasos y planificar si es necesario realizar algún cambio:

  • Planificación de la estructura de directorios y normas: analizar si es necesario reestructurar el directorio de código, lo que podría ayudar en la integración con las herramientas de construcción
  • Proceso de lanzamiento: revisar el proceso de lanzamiento y disponer de puertas de calidad si es necesario
  • Limpieza de repositorios y ramas: rastrear, analizar y limpiar los repositorios y ramas no utilizados
  • Abordar los retos actuales de SCM: una solución anterior resuelve la limitación actual de SCM aprovechando las características del rastreador de información global (GIT)
  • Elección de la herramienta/scripts de migración: analizar las herramientas de migración disponibles que se adaptan a la migración o planear desarrollar los scripts personalizados
  • Formación y transición: planificar los horarios para formar a los desarrolladores en el uso de la plataforma GIT

Lista de comprobación de la migración

Las empresas deben identificar los proyectos y las categorías que desean migrar. Además, incluso antes de identificar un repositorio para migrar, las organizaciones deben estar seguras de lo siguiente:

  • ¿Vamos a migrar un repositorio entero?
  • ¿Vamos a migrar hasta una revisión específica?
  • ¿Estamos migrando desde toda una historia intacta?
  • ¿Vamos a migrar sólo las etiquetas y las ramas?

Es esencial tener claras estas especificaciones, ya que la migración tiene funciones y permisos, que también deben ser migrado, como el control de acceso basado en roles (RBAC), el protocolo ligero de acceso a directorios (LDAP) y el directorio activo (AD). Por último, las empresas deben establecer usuarios y grupos de usuarios e integraciones SCM para la migración.

Diversas fases de la migración a SCM y aspectos clave a tener en cuenta

Descubrir

Inventario

  • Repositorio
  • Infraestructura
  • Proyectos
  • Integración/Dependencias

Realizar la evaluación

  • Identificar lagunas
  • Identificar las necesidades / áreas de solución

Plan

Crear un plan

  • Herramientas de inventario y activos conectados a SCM
  • Crear una estrategia de migración de la plataforma de herramientas
  • Unificar a los administradores de SCM
  • Integrar a los usuarios en el proceso de desarrollo

Crear un plan de reutilización de procesos

  • Definir “código activo”
  • Planificar los scripts de migración
  • Planificar las prácticas de SCM

Establecer un plan comunitario

  • Bloquear los repositorios migrados
  • Permitir la búsqueda, el descubrimiento y la reutilización de los activos SCM
  • Establecer informes y visibilidad en toda la empresa

Migración de códigos

Establecer el espacio de trabajo del proyecto

  • Integración de herramientas
  • Flujo de trabajo
  • RBAC (controles de acceso basados en roles)

Formar a usuarios

  • Administradores de proyectos
  • Miembros del equipo
  • Gestores del lanzamiento

Migrar datos

  • Finalizar scripts
  • Migrar el código activo y los datos relacionados

Firma del equipo

  • Verificar los datos migrados
  • Analizar otras necesidades
  • Desarrollo a través del despliegue

Sostenimiento y mejora

Impulsar la gestión comunitaria

  • Incorporación de nuevos usuarios
  • Incorporación de nuevos proyectos
  • Nuevas buenas prácticas
  • Reutilización y colaboración
  • Medir las métricas de la empresa

Mantenimiento de la plataforma GIT

  • Actualización de la plataforma
  • Actualizaciones de herramientas
  • Integración de herramientas

Realizar la evaluación

  • Identificar lagunas
  • Identificar las necesidades / áreas de solución

 

Mejores prácticas para la migración

Para cualquier actividad de migración, es crucial seguir y adoptar las mejores prácticas. A continuación se presenta la lista de las mejores prácticas de migración de SCM que le ayudarán a planificar su migración de SCM con menos inconvenientes:

  1. Capacitación de los usuarios
    El cambio es difícil, sobre todo si las empresas no están predispuestas a ello. Sin embargo, se puede facilitar siguiendo un plan de acción adecuado. La mayor parte de la plataforma GIT ofrece una página de preguntas frecuentes en la que se detallan las ventajas de migrar a GIT. Los usuarios deberían aprovechar las opciones de formación complementaria de GIT.

    Antes de iniciar la migración al SCM, un desarrollador debe tener claro: la limpieza y confirmación de las ramas, las fechas de migración, el soporte posterior a la migración, etc. Por lo tanto, la planificación y realización de sesiones de formación para los desarrolladores con el fin de establecer las expectativas correctas sobre el apoyo necesario para la migración del SCM es de suma importancia.

  2. Coordinación con los usuarios/equipos
    Como ya se ha dicho, los cambios pueden ser difíciles de aplicar. Sobre todo, los que cogen a la gente por sorpresa y suscitan resistencia. Aunque el cambio a GIT tiene como objetivo mejorar la vida de los desarrolladores, es necesario comunicar con exactitud a los equipos implicados. Una comunicación clara y consistente sobre el proceso de migración, incluyendo fechas o ventanas exactas, puede dar a todos mucho tiempo para adaptarse y prepararse.

  3. Migrar de forma iterativa
    Debido al historial, al flujo de trabajo actual y a los proyectos en curso, determinados repositorios y equipos son más fáciles de migrar. Por lo tanto, no hay que forzar a los equipos de migración a cambiar bruscamente, especialmente cuando no están preparados. Siempre es mejor desplegar el enfoque piloto de la migración con grupos seleccionados o usuarios ya familiarizados con GIT.

  4. Seguir las mejores prácticas de GIT para mantener los repositorios
    Congelar los repositorios de fuentes (lo que significa impedir que se envíen nuevos cambios a esos repositorios) con una fecha de congelación comunicada puede ayudar a reducir la posibilidad de que la información se pierda. Además, los repositorios más pequeños facilitan la migración: lo ideal es 1 GB o menos. Puedes utilizar las herramientas GIT-filter-branch y BFG repo cleaner para eliminar los archivos grandes o rastrearlos con GIT-large file storage (LFS).

  5. Probar
    No debería haber sorpresas con extensas ejecuciones de práctica durante la migración real. Aunque no podemos garantizar nada, realizar pruebas con antelación y frecuencia y, sobre todo, documentar los procesos administrativos y de usuario durante las pruebas puede reducir los dolores de cabeza más adelante.

  6. Tener en cuenta las integraciones
    Un error común que se comete durante las migraciones es dejar de lado las integraciones. Con tantas cosas que hay que portar, incluyendo repositorios, equipos, y más, las integraciones pueden ser fáciles de olvidar, incluso si son componentes vitales como las herramientas de SDLC, herramientas de construcción, herramientas de despliegue, Artifactory, etc.

    La migración está incompleta sin la integración de las herramientas mencionadas a GIT y podría incluso impactar en la entrega y los lanzamientos si no se planifica.

    El análisis del panorama de herramientas y las herramientas integradas con el SCM actual deben ser evaluadas y planificadas para la migración. Además, una auditoría exhaustiva de los elementos a migrar puede ayudar a prevenir esto.

  7. Medir el éxito de la migración y las métricas
    Una migración no termina cuando el último equipo se une a su instancia de GIT. Garantizar que cada equipo y proyecto prospere en GIT pasa por mediciones continuas que muestren en qué aspectos el proyecto tiene éxito y en cuáles no. Aunque los indicadores de rendimiento varían, aquí hay algunas ideas para empezar: 
    1. Porcentaje de equipos notificados migrados 
    2. Satisfacción de los equipos con el proceso de migración 
    3. Métricas de uso de GIT
    4. Tiempo medio de migración en días
       
  8. Migración mediante importadores
    Existen importadores/herramientas de migración específicas para cada plataforma GIT que pueden importar rápidamente los repositorios a GIT.

    Estos importadores no solo importan el código, sino también los commits y las revisiones del historial. El uso de estas herramientas ayudará a conseguir una migración limpia. 

Reflexiones finales

La planificación es la clave del éxito de la migración. La sección anterior abarca todos los aspectos clave que deben tenerse en cuenta, incluidos los preparativos para la migración, las listas de comprobación y las mejores prácticas para la migración de SCM que pueden ayudar a las empresas a planificar una migración de SCM sin riesgos.

Contenido relacionado