Integración Continua en Salesforce (4): Orquestación y visión completa

Hemos visto en las entradas previas, varias necesidades para implementar el proceso de integración contínua automatizado en Salesforce.

Requiere mínimamente:

  1. Herramienta de Control de versiones para los artefactos, mayoritariamente ficheros XML de la Metadata (de momento no abordamos ni datos maestros, ni gestión de elementos no soportados por la Metadata, etc.)
    1. Además se requiere de un procedimiento, como podría ser GitFlow, para coordinar a los equipos de desarrollo con una única metodología
  2. Herramienta de Despliegue (Force.com Migration Tool)
    1. Para ello requerimos de Conocimientos de ANT y Scrpting para su utilización
  3. Programación para llevar a cabo el Despliegue por diferencias
    1. El lenguaje de programación o el scripting que utilicemos, debe recorrer estructuras de directorios y comparar ficheros de forma eficiente, para generar  nuevas estructuras y ficheros XML (pakage y destructive)
  4. Herramienta de Orquestación para llevar a cabo

Analizo un poco más en detalle el punto 4.

Esto NO es todo amigos: Orquestación

Toda esta orquestación habitualmente se lleva a cabo con una herramienta conocida como Jenkins/Hudson  o similares.

Orquestar el despliegue en Salesforce
Credito para Warner Brothers

El enfoque podría ser algo parecido al siguiente flujo:

  1. En cada Push sobre la rama Develop, o un Merge/Commit al resto de ramas, deber lanzarse una tarea de Hudson/Jenkins que desencadena todo el proceso.
    1. En cada push puede ser excesivo, por lo que podemos forzar cierta nomenclatura en las etiquetas que nos permitan discernir.
    2. Deben poder ejecutarse tareas de HouseKeeping
  2. Como primer paso es obtener el contenido de la rama de Bitbucket
  3. A continuación, debe obtener toda la Metadata existente en la Sandbox Destino
  4. A continuación, ejecutar el proceso de comparación para búsqueda de ficheros nuevos, modificados y eliminados. Debemos crear las estructuras futuras, que conformaran el ZIP de despligue, y los correspondientes package.xml y destructive-*.xml
  5. A continuación, ejecutar tarea sf:deploy con checkOnly=”true” indicando a Salesforce que debe “simular” el despliegue y obtener los resultados.

<target name=” despliegueSimulado”>

<sf:deploy username=”${sf.username}” password=”${sf.password}” sessionId=”${sf.sessionId}” serverurl=”${sf.serverurl}” maxPoll=”${sf.maxPoll}” zipFile=”${sf.zipFile}” pollWaitMillis=”1000″ checkOnly=”true” testLevel=”RunLocalTests” rollbackOnError=”true”/>
</target>

  1. Informar mediante email, de los resultados de la simulación, a ciertos destinatarios principales, como podrían ser el Release Manager y el Responsable del Proyecto.
  2. Estos resposanbles, habiendo evaluado el resultado de la simulación deberán indicar de alguna manera a la herramienta la ejecución “real” del despliegue. El target podria ser tal que:

<target name=” despliegueReal”>

<sf:deploy username=”${sf.username}” password=”${sf.password}” sessionId=”${sf.sessionId}” serverurl=”${sf.serverurl}” maxPoll=”${sf.maxPoll}” zipFile=”${sf.zipFile}” pollWaitMillis=”1000″ rollbackOnError=”true”/>

</target>

Al finalizar la ejecución, se enviarán/notificarán los resultados nuevamente a los Responsables que actúan en consecuencia: confirmando el despliegue correcto al resto de los equipos técnicos y/o funcionales y a la dirección del proyecto, y se ejecturan nuevamente tareas de Housekeeping.

El proceso podría ser mucho más complejo pero creo que estos 8 pasos, son los mínimos a llevar a cabo.

Conclusiones

Es decir, nuevamente, en la herramienta de orquestación también se requieren parametrizaciones, algunas de ellas triviales, otras mediante plugins  adicionales, y otras incluso requerirán de programación adicional.

Por tanto, aunque estamos en el Valle, y me doy cuenta, que el proceso de Integración Continua Automatizado en Salesforce en modo DIY, ya tengo claro, que es un proceso complejo, y que me va a requerir herramientas, procesos, equipos y programación.

En la última y siguiente entrada, conclusiones finales.

One response to “Integración Continua en Salesforce (4): Orquestación y visión completa

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.