Salesforce DX y organizaciones temporales
Salesforce DX promete facilitar la integración continua con las Scratch Orgs.
Por Randalyn Hill-Coffer·Revisado por el equipo de Blue Canvas··4 min de lectura
Uno de los conceptos más interesantes que surgieron de Salesforce DX es la Scratch Org. Según Salesforce:
Salesforce DX introduce un nuevo tipo de entorno de Salesforce: la scratch org, una implementación desechable de código y metadatos de Salesforce basada en código fuente. Las scratch orgs son totalmente configurables y permiten a los desarrolladores emular distintas ediciones con diferentes funcionalidades y preferencias, lo que contribuye de manera fundamental a impulsar su productividad y colaboración durante el proceso de desarrollo. También pueden usarse como parte de las pruebas automatizadas y de la implementación de un conjunto completo de herramientas de integración continua.
Configurar entornos de desarrollo adecuados para Salesforce puede ser un gran desafío. Los sandboxes de copia completa pueden tardar días en aprovisionarse, e incluso los sandboxes de copia parcial, más simples, pueden requerir mucho tiempo de configuración. Peor aún, no hay forma de crear un entorno sandbox de manera programática, algo clave para cualquier configuración de integración continua. Incluso si pudieras crear un entorno de desarrollo o un sandbox de manera programática en Salesforce, ¿cómo cargarías los datos? Basta decir que Salesforce históricamente ha dificultado la creación de entornos limpios para pruebas y desarrollo.
Mientras tanto, se está dando una revolución en el desarrollo de software y se llama Docker. Con Docker, puedes crear rápidamente pequeños contenedores virtuales (en lugar de máquinas virtuales completas, lentas y pesadas) que son perfectos para la CI. Por supuesto, no puedes usar Docker con Salesforce de esta manera, pero la promesa de las Scratch Orgs es que podrías hacer algo muy similar a Docker en el entorno de Salesforce.
ENTONCES, ¿QUÉ SON LAS SCRATCH ORGS?
Las Scratch Orgs están diseñadas para hacer que el desarrollo basado en código fuente y la CI en la plataforma Salesforce más parecida a la experiencia de CI que podrías tener al desarrollar con Node, Rails o Django con Docker. Están pensadas para ser temporales, no permanentes. Créalas rápidamente y elimínalas con la misma rapidez. ¿Tu organización quedó en un estado problemático? Elimínala y crea otra. Salesforce está considerando imponer algún tipo de límite al tiempo que puedes conservar una Scratch Org, aunque no creemos que ya lo haya decidido. Hemos oído plazos que van desde un día hasta dos semanas.
Un principio clave de las Scratch Orgs es que puedes crearlas rápidamente. Blue Canvas tiene la fortuna de participar en la versión preliminar para desarrolladores de Salesforce DX. Hasta ahora, siempre hemos podido crear Scratch Orgs rápidamente. Esto representa una gran mejora frente al tiempo que lleva crear otras organizaciones en Salesforce.
Las Scratch Orgs se pueden crear mediante la interfaz de línea de comandos (CLI). Esto es útil porque permite integrarlas fácilmente en un pipeline de CI usando Jenkins o Bamboo.
Salesforce DX también promete facilitar la carga de datos en tus Scratch Orgs. No podrás cargar todos los datos de tu aplicación en una Scratch Org, pero sí crear scripts para cargar datos automáticamente y no tener que hacerlo de forma manual cada vez que crees un entorno nuevo. Este es otro paso clave para facilitar la CI.
NUESTRAS EXPECTATIVAS PARA EL USO DE SCRATCH ORGS
¿Cómo imaginamos el uso de las Scratch Orgs? Supongamos que quieres desarrollar una funcionalidad. Primero, creas una rama de funcionalidad en Git. Luego puedes usar la CLI de Salesforce (que al parecer se actualizará con DX) para crear una Scratch Org en aproximadamente un minuto. Empiezas a programar tu nueva funcionalidad y a probarla manualmente en la organización temporal. Agregas algunas clases de Apex, una o dos páginas de Visualforce y listo: estás satisfecho con el resultado.
Después, haces commit del nuevo código en tu rama de funcionalidad y la fusionas con master. Normalmente, tu servidor de CI (ya sea Jenkins, Bamboo, TeamCity u otro) iniciará una compilación. Ya habrás agregado a tu tarea de CI un paso de compilación que use la CLI para crear otra Scratch Org. Una vez creada, puedes usar un script de Ant para implementar tu nuevo código en esa organización. Puedes usar la función de carga de datos de Salesforce DX para cargar los datos de prueba que necesites.
Ahora puedes ejecutar tus pruebas. Si pasan, puedes usar tu script de Ant para implementar tus cambios en el entorno de UAT. O algo por el estilo.
Todavía quedan muchas preguntas sin respuesta sobre las Scratch Orgs y Salesforce DX, pero ofrecen grandes posibilidades. A medida que Salesforce publique nueva información, actualizaremos este artículo. Las Scratch Orgs son, sin duda, un paso hacia convertir Salesforce en un entorno de desarrollo de primer nivel. ¡Esperamos poder probarlo el próximo verano!



