Política de cookies

Utilizamos cookies propias y de terceros con la finalidad de mejorar el rendimiento del sitio web y de evaluar el uso que se hace del mismo. Si continúa navegando, entendemos que acepta su uso. Puede cambiar la configuración y obtener más información aquí.

Salesforce DevOps Center:
Gestión de cambios, versiones y promociones para todos

Salesforce ha llegado a ser el líder de los CRM por muchas razones. Una de ellas es ofrecer la capacidad de personalizar la propia plataforma, permitiendo una adaptación total a las necesidades del cliente. Estos desarrollos personalizados han permitido dar información a Salesforce para que pueda mejorar su tecnología. Ahora, una de sus grandes novedades es Salesforce DevOps Center, y desde S4G Consulting te descubrimos que funciones y usos puedes darle para sacarle el máximo rendimiento.

¿Qué es Salesforce DevOps Center?

Es un producto nuevo de Salesforce que mejora el proceso de gestión de cambios y versiones al desarrollar con Salesforce. Además, ayuda a aprovechar las buenas prácticas de DevOps a través de una interfaz centralizada y fácil de usar.

Funciones clave de DevOps Center

  • Los equipos pueden realizar seguimiento y despliegue de los cambios asociados a una funcionalidad específica en pocos clics, gracias al nuevo objeto Work Items. Estos se pueden operar con Salesforce Flows y otras operaciones de la plataforma.

Salesforce DevOps Center pipeline

  • A medida que los equipos realizan cambios en sus sandboxes, estos se rastrean automáticamente. DevOps Center nos facilita una interfaz para visualizar una lista de los componentes de metadatos modificados, así como la opción de seleccionar los que queremos promocionar o descartar.

Salesforce DevOps Center registration flow

  • Crear etapas intermedias de integración, validación y ensayo para garantizar la calidad y eficiencia de las nuevas versiones del producto.
  • Integración sencilla con GitHub (plataforma de control de versiones Git) para centralizar los cambios de código fuente desarrollados por perfiles técnicos o funcionales, ya que lo hace de una manera amigable para aquellos que no tienen experiencia con Git, gestión de ramas, o Pull Requests.
  • Proporciona herramientas visuales centralizadas y fáciles de usar para seguir las buenas prácticas de DevOps tanto a nivel técnico como a nivel funcional.

Beneficios

El beneficio principal que nos ofrece DevOps Center es minimizar la dependencia de perfiles funcionales con los perfiles técnicos. Es decir, no es un requisito tener conocimientos de Salesforce CLI ni de Git para gestionar cambios, versiones o promociones de funcionalidades personalizadas de Salesforce.

Este beneficio es aprovechado por los líderes de equipo que utilizan prácticas actuales de DevOps para aumentar la frecuencia de implementación, reducir el tiempo medio de resolución de incidencias y minimizar el índice de fallos en los cambios.

Otro beneficio que nos ofrece DevOps Center es proporcionar a los equipos tecnológicos un proceso de desarrollo sencillo y transparente, lo que promueve una mayor visibilidad y trazabilidad a lo largo del ciclo de vida de los cambios de las funcionalidades a promocionar.

¿Por qué Salesforce ha creado DevOps Center?

La personalización dentro de la plataforma de Salesforce ha ido mejorando gracias a la implementación de Salesforce DX (SFDX), así como Salesforce CLI. Todo ello ha permitido que pueda integrarse con Git gradualmente y, al mismo tiempo, ha cambiado el paradigma de “fuente de verdad”. Es decir, ha evolucionado de Salesforce sandbox a Repositorio Git.

Salesforce CLI y Git fueron desarrollados para perfiles técnicos, los cuales son independientes para gestionar cambios, versiones y promociones. Sin embargo, existen perfiles funcionales que en cierta medida dependen de los técnicos para promocionar sus cambios si no quieren replicarlos en cada entorno superior.

Hoy en día, muchos proyectos siguen usando ChangeSets por motivos de precio o porque no tienen excesiva complejidad. El uso de ChangeSets se ha extendido por mucho tiempo y los funcionales están formados o se realizan para promocionar sus cambios a entornos superiores. Ahora bien, los mismos proyectos evolucionan pero ChangeSet se queda corto y en muchas ocasiones no llega a cubrir las necesidades del proyecto.

Por tanto, DevOps Center se desarrolló con los propósitos generales de:

  • Reducir la complejidad de implementación colaborativa en tiempo real.
  • Hacer de puente entre los desarrolladores técnicos y los funcionales, es decir, minimizar las dependencias con los desarrolladores técnicos para trabajar con Repositorio Git y Salesforce CLI.
  • Evolucionar ChangeSets para cubrir las necesidades complejas de proyectos.
  • Acelerar los desarrollos y sus entregas manteniendo las buenas prácticas de la metodología DevOps.

¿Cómo funciona DevOps Center?

DevOps Center se compone de tres bases.

  1. Sigue una metodología Agile que se basa en historias de usuario, la cual puede contener N líneas de desarrollo.
  2. Cada línea de desarrollo estará asociada directamente con un entorno Salesforce de origen.
  3. Se tiene un entorno Salesforce de destino, donde se promocionan dichas líneas de trabajo.

Cada desarrollador, técnico o funcional, puede trabajar aisladamente en su copia de sandbox de PROD y, tras finalizar sus cambios, promocionarlos automáticamente sin escribir ningún comando SFDX o Git.

Cuando un desarrollador trabaja en su sandbox de desarrollo, sus cambios son exclusivos y pueden sincronizarse automáticamente con Git pulsando botones desde la interfaz que ofrece DevOps Center. Las acciones que desencadenan dichos botones son:

  • Crear rama feature.
  • Guardar los cambios en rama feature (commit).
  • Publicar rama feature con cambios en repositorio (push).
  • Tras finalizar la línea de desarrollo, puede promocionar sus cambios, lo que por detrás genera una Pull Request hacia rama de destino.
  • Al promocionar cambios, DevOps Center está sincronizando rama destino (merge) y desplegando los metadatos en entorno Salesforce destino. Todo ello de forma automática y transparente para el desarrollador.

La esencia de DevOps Center es ofrecer la capacidad de extraer todos los cambios de los entornos nominales al repositorio de Git sin la necesidad de comandos Git, así como desplegar dichos cambios en un entorno Salesforce destino sin necesidad de comandos SFDX. Esto facilita la independencia de los desarrolladores funcionales, es decir, declarativos.

¿Cómo interactúa con un desarrollador?

Un desarrollador puede ser técnico o funcional. Pero para DevOps Center esta distinción es mínima, ya que proporciona todas las herramientas necesarias para seguir las buenas prácticas de DevOps.

Observemos en la imagen que en ambos casos (funcional o técnico) se cumplen las pautas que debe seguir una metodología DevOps.

DevOps metodology

En función de en qué pauta nos encontremos, podremos ejecutar las siguientes funcionalidades que nos facilita DevOps Center:

Work Item: Define el requisito del cambio que se va a realizar y efectúa un seguimiento de los archivos de origen de metadatos asociados a lo largo del ciclo de vida de la versión. Los Work Items aumentan la visibilidad con respecto a dónde residen los cambios en cada etapa de la canalización.

Gestión de conflictos: Identifica los elementos de trabajo que tienen conflictos con otros elementos de trabajo de la cadena de producción. Proporciona información para ayudarnos a resolver el conflicto.

Sincronización del entorno de desarrollo: Detecta cuándo un entorno de desarrollo está desactualizado, lo que nos obliga a actualizarnos y asegurarnos que estamos trabajando con la última fuente de verdad. Nos informa de las diferencias y nos permite sincronizar para evitar futuros conflictos.

Historial de actividad: Proporciona una mayor visibilidad, auditabilidad y seguimiento de errores en la vista de Work Items.

Posibilidad de eliminar metadatos: Nos permite suprimir componentes en el entorno Salesforce de destino, evitando conflictos o errores de validación o deploy.

Despliegues solo de validación: Permite ejecutar un despliegue de solo validación y, más adelante, realizar un despliegue rápido.

¿Cómo instalar DevOps Center?

Actualmente está disponible para entornos productivos PE/EE/UE. Esto significa que toda la gestión se ejecuta desde PROD y por tanto todos los usuarios desarrolladores deben tener acceso al mismo.

Para instalarlo, basta con activar la opción “Enable DevOps Center”, instalar el paquete y configurar los roles de desarrollador y de Release Manager. Tal y como lo explican en la guía oficial.

Salesforce DevOps Center view

¿Cuándo usar Salesforce DevOps Center?

Depende de varios factores y los más importantes para decidir si usar DevOps Center o no es:

  • Analizar la madurez del equipo con la metodología de DevOps: ya que algunos proyectos pueden tener mucha carga de funcionalidades muy complejas que DevOps Center no puede gestionar.
  • Valorar si los cambios que se ejecutan en el código fuente se corresponden con ficheros complejos: como Profiles, Flows, PermissionSets, Layouts o CustomLabel. Los ficheros mencionados tienen probabilidad alta de tener conflictos, los cuales no se pueden gestionar por DevOps Center y el motivo principal de que no lo pueda gestionar es que no ofrece una interfaz para prevenir el conflicto.
  • Analizar en qué plataforma Git existe o se desarrollará el proyecto Salesforce, ya que actualmente DevOps Center trabaja con la plataforma GitHub.

¿Qué opciones existen si no puedo utilizarlo?

Actualmente existen varias herramientas de mercado como Copado, GearSet, etc. Sin embargo, en ocasiones no necesitamos todas las funcionalidades cerradas de las herramientas de mercado disponibles, lo que significa ahorrar costes.

En S4G tenemos experiencia con la metodología DevOps, lo cual nos ha permitido desarrollar nuestra propia herramienta de despliegues Salesforce llamada “DevKops CI/CD” que cubre nuestras necesidades, las cuales son las más comunes en proyectos Salesforce. Pero si aun así sigues teniendo cualquier duda sobre las novedades que trae DevOps Center, no dudes en ponerte en contacto con nuestro equipo.


Fernando Pacheco.
Senior Salesforce Developer