Despliega y actualiza el control de versiones en un solo paso
Salesforce se ha convertido en una plataforma de desarrollo popular, pero implementar el control de versiones puede ser un desafío. Blue Canvas ofrece una solución.
Por Randalyn Hill-Coffer·Revisado por el equipo de Blue Canvas··5 min de lecturaCon este artículo, conoce la importancia de implementar el control de versiones en el desarrollo de Salesforce y los desafíos que implica. También descubrí cómo Blue Canvas resuelve estos desafíos al registrar automáticamente los cambios en tiempo real y vincular los despliegues con el control de versiones.
Estas son nuestras 5 conclusiones clave:
1. Salesforce se ha convertido en una plataforma de desarrollo completa, y el control de versiones ahora se reconoce ampliamente como una prioridad clave para las empresas.
2. Git y Salesforce presentan un desafío fundamental porque Git acepta casi todo, mientras que Salesforce no.
3. Blue Canvas resuelve este desafío al registrar automáticamente los cambios en tiempo real y vincular los despliegues con el control de versiones.
4. Implementar el control de versiones puede ahorrarles a los equipos medianos entre $250k-$750k al año en costos ocultos y pérdida de productividad.
5. Tener una fuente de referencia para Salesforce es el primer paso para mejorar la experiencia de los usuarios finales y desarrolladores.
Durante la última década, Salesforce se ha consolidado como la principal herramienta para desarrollar aplicaciones empresariales. No necesariamente se diseñó con ese propósito desde el principio: simplemente ocurrió a medida que Salesforce respondió a las necesidades de sus clientes. Por eso, las mejores prácticas de desarrollo de software, como control de versiones nunca han sido una gran prioridad para los equipos. Pero a medida que se creaban más aplicaciones para Salesforce y participaban equipos cada vez más grandes, quedó claro que Salesforce se había convertido en una plataforma de desarrollo completa. Los equipos migraban rápidamente desde .NET y otras plataformas gracias a la seguridad, la confiabilidad, la compatibilidad con versiones anteriores y las opciones de desarrollo de bajo código de Salesforce.
En 2018, muchos equipos todavía están trabajando para implementar el control de versiones, pero ya se reconoce ampliamente como una prioridad clave para las empresas. Cada vez más equipos de Salesforce ven el valor de invertir tiempo y dinero en establecer un buen proceso de control de versiones para Salesforce. Gran parte de esto se debe a Salesforce DX, que insiste en que el control de versiones es ahora la «fuente de referencia» para Salesforce.
Sin embargo, existe un desafío fundamental que enfrenta casi todo equipo de desarrollo de Salesforce al configurar el control de versiones.
Salesforce es como una fiesta exclusiva de Dreamforce
Un problema importante entre Git y Salesforce es que Git acepta casi todo, mientras que Salesforce no. Git fusionará sin problemas casi cualquier envío de cambios. Git comprueba si hay conflictos de fusión, pero está completamente desvinculado de los despliegues y las dependencias de Salesforce. Puedes enviar a Git una gran cantidad de sintaxis incorrecta y cambios completamente incompatibles con Salesforce sin recibir ninguna advertencia. Git aceptará tus cambios con los brazos abiertos. Será rápido. Te sentirás bien. ¡Estás usando el control de versiones! ¿Qué tiene eso de malo? Para bien o para mal, Salesforce es un poco más selectivo. Es como una fiesta exclusiva de Dreamforce: entrar puede ser algo complicado. Debes tener la sintaxis correcta y todas las dependencias alineadas.
Si no tienes cuidado, el código y los metadatos de configuración que no se pueden desplegar en Salesforce pueden terminar en Git. Así, en muy poco tiempo, tu repositorio Git y tus organizaciones de Salesforce quedan desincronizados y muestran cosas completamente diferentes. DX insiste en que el control de versiones sea tu fuente de referencia, pero ¿qué pasa si la organización muestra algo diferente? ¿Cuál es la verdadera fuente de referencia? Si necesitas hacer una auditoría de Salesforce, ¿cuál tomas como referencia? Probablemente la organización, ¿verdad? Eso es lo que tus usuarios finales realmente ven y con lo que interactúan.
Este problema se agrava con el tiempo. Cuanto más tiempo pases enviando cambios a Git sin una validación adecuada de Salesforce, más se alejará tu repositorio Git de tus organizaciones. Y más difíciles serán los despliegues porque tu control de versiones no es preciso. Esto solo aumenta la probabilidad de que tu organización y el control de versiones se desincronicen. Y eso dificulta aún más los despliegues. Es un círculo vicioso.
Blue Canvas resuelve este dilema de dos maneras:
Commits automatizados en tiempo real para Salesforce
Primero, registramos automáticamente todo lo que hay en la organización en Git en tiempo real. Esto garantiza que el repositorio siempre refleje el estado actual de la organización, ya sea un sandbox o un entorno de producción. ¿Hiciste un cambio rápido en producción? Se registra automáticamente en Git. ¿Alguien de operaciones de ventas actualizó una plantilla de correo electrónico a la que hace referencia una clase? Todo está conectado con Git. Cada cambio se registra en tiempo real con el nombre de usuario real de quien lo realizó.
Puedes conectar esto fácilmente con repositorios Git externos para que, como mínimo, tu base de código en Git siempre esté sincronizada con tus metadatos de Salesforce. Recomendamos a nuestros clientes que comiencen al menos con esto porque ayuda a resolver el problema de la fuente de referencia en Salesforce con solo 4 clics de configuración.
Vinculación automática de despliegues con el control de versiones
Segundo, Blue Canvas vincula los despliegues con el control de versiones como ninguna otra herramienta. Con Blue Canvas, enviar cambios al control de versiones es un paso automático que forma parte del proceso de despliegue. Blue Canvas tiene un concepto llamado Solicitudes de despliegue. Son como las solicitudes de incorporación de cambios en el modelo de Git. Conceptualmente, la solicitud de despliegue es como un conjunto de cambios excepto que todo está automatizado y es mucho más fácil de usar.
Cuando creas una solicitud de despliegue, Blue Canvas realiza automáticamente una fusión de prueba en Git para asegurarse de que no haya conflictos. Si los hay, te avisaremos de esta manera:

Si hay conflictos de fusión (porque otro miembro del equipo ha enviado cambios a la organización), recibirás una notificación, en lugar de que el código se sobrescriba a ciegas. Hemos creado un servicio inteligente que puede determinar la intención de tu código. Así, si haces un cambio declarativo, sabemos cuál es su propósito. Sabemos si es un cambio real o solo una reorganización arbitraria del XML que Salesforce realiza de vez en cuando.
Nuestro segundo paso es ejecutar una validación de Salesforce. Esta realiza todas las comprobaciones de sintaxis y el análisis de dependencias. Por ejemplo: ¿estás desplegando una clase que hace referencia a un objeto que no existe en la organización de destino? Detectaremos estos problemas y te avisaremos.

Nuestro tercer y último paso es fusionar los cambios de código en Git y desplegarlos en Salesforce al mismo tiempo. Este sencillo paso automatizado es fundamental para resolver el problema de la fuente de referencia. Garantiza que lo que ves en Git refleje con precisión lo que ves en la organización. No desplegaremos si no puedes fusionar, y no fusionaremos si no puedes desplegar. Esto garantiza que Git sea tan exclusivo como Salesforce, lo que hace que todo tu proceso de desarrollo sea mucho más sencillo y menos propenso a errores.
¿Por qué es importante?
Parte de esto puede parecer un poco arbitrario e innecesario. «Después de todo, nuestro proceso de Salesforce funciona bien», podrías decir. Sin embargo, es importante por varias razones. En primer lugar, no implementar el control de versiones puede costarte entre $250k-$750k al año en costos ocultos y pérdida de productividad si tu equipo es mediano. Además, si te interesa cumplir con SOX, debes asegurarte de contar con una verdadera fuente de referencia para poder auditar tu código y tus metadatos de configuración.
Por último, Salesforce es una verdadera plataforma de desarrollo. Has contratado un equipo o consultores para crear personalizaciones de los procesos críticos de tu negocio. Vale la pena invertir en que esta experiencia sea fluida, segura y confiable. Tener una fuente de referencia para Salesforce es el primer paso para mejorar la experiencia de tus usuarios finales y desarrolladores, ya que permite despliegues más rápidos, menos errores y un proceso más ágil e iterativo.



