Vuelvo en este blog de nube híbrida con un artículo de arquitectura híbrida para ahondar en el mundo de soluciones que nos abre el establecer, en este caso con CRM Online, una conexión a nuestros entornos OnPremise, de manera que podamos explotar los recursos que proporcionan las versiones online de nuestras aplicaciones y que no están disponibles en sus versiones OnPremise con la información alojada en el resto de nuestras aplicaciones LoB (Line of Business) sin realizar grandes cambios a nuestra infraestructura, y optimizando el balance de esfuerzo y beneficios esperados.
Como ejemplo de esta integración, vamos a repasar a alto nivel como realizaríamos la hibridación haciendo uso de un Service Bus Relay de Azure.
Lo primero, la seguridad
Como en todos los casos de hibridación, las primeras preguntas a responder serán aquellas relacionadas con la seguridad de la implantación. En este caso, vamos a considerar la seguridad a dos niveles: físico (canal) y lógico (autenticación).
A nivel físico, la seguridad la vamos a confiar a una VPN (canal seguro) o bien a una conexión express route, puesto que ambas nos garantizan el uso de un canal seguro. Desde el punto de vista lógico, el mecanismo a utilizar, a día de hoy, será a través de un Service Bus Relay
El Service Bus Relay es un servicio basado en nube que permite alojar un endpoint en la nube. Azure usara “Port Forwarding” para enviar los mensajes recibidos a/desde el cliente al servicio de escucha normalmente alojado OnPremise. Este servicio está dirigido para hacer de puente desde cualquier aplicación alojada en la nube o en un datacenter lejano hacia/desde los servicios OnPremise y permite el uso del ACS (Access Control Service) para proporcionar seguridad de acceso.
Usar ACS implica que el cliente necesita ser capaz de obtener un token ACS vía bindings WCF (Windows Communication Foundation) o servicios REST. Algunos de los escenarios comunes donde un cliente expondría servicios WCF al Azure Service bus Relay también incluyen el usar el servicio de routing de WCF para actuar como el listener OnPremise que abre una conexión a la nube a través de los bindings del WCF Relay. Esto significa que el usuario no necesita modificar sus servicios WCF para incluir los nuevos bindings, sino que puede usar el servicio de enrutamiento para incluirlo.
Una vez hecho esto, el listener puede enrutar las peticiones a múltiples aplicaciones OnPremise según la acción SOAP. Este es un buen patrón para ofrecer de forma sencilla servicios, pero también se puede expandir para el uso de varias aplicaciones sin conectarlas a la nube directamente.
Conexión basada en Eventos
Es posible conectar Microsoft Dynamics CRM Online 2015 a la plataforma Azure, y a través de ella con la plataforma OnPremise, acoplando la pipeline de ejecución de eventos CRM al Azure Service Bus. Esta conexión permite que los datos que están siendo procesados como parte de la operación de CRM sean publicados hacia el bus. Las soluciones de Azure Service Bus son “CRM-Aware”, y pueden escuchar y leer los datos que publica CRM. Los datos publicados son almacenados en la instancia de la clase RemoteExecutionContext, que es una versión extendida de la clase ExecutionContext que es pasada en ejecución a los plugins asíncronos de Dynamics CRM.
Esta conexión proporciona un canal seguro para comunicar los datos en ejecución de CRM a aplicaciones LoB a través de la nube.
Para hacer esta conexión, una vez establecida la conexión desde CRM con el Service Bus (el detalle de esta conexión lo veremos en próximos artículos, más dirigidos a un nivel técnico), será necesario programar un listener que será en encargado de recibir los datos y enviarlos a las aplicaciones LoB, o bien, si lo colocamos en el entorno de nube, de recibir los datos enviados desde el entorno OnPremise para hacerlos extensivos, a CRM, o a Office 365.
Traduciéndolo a cristiano…
Hasta ahora hemos estado hablando de cómo conectar nuestro CRM Online con nuestro entorno OnPremise (o al revés, dependiendo del punto de vista del narrador), pero…
- ¿Para qué vamos a hacer el esfuerzo de esta integración?
- ¿Qué ventajas competitivas me representa como organización?
En la actualidad todas las medianas y grandes corporaciones disponen de mecanismos de evaluación del desempeño de las diferentes ramas o departamentos que componen la organización, de forma que disponen de fuentes de datos heterogéneas, y en muchas ocasiones de cuadros de mandos y de sistemas de Business Intelligence y/o Big Data que les permiten evaluar y corregir, incluso en ocasiones anticiparse, a los problemas que pueda tener el desempeño en el mercado. La capacidad de integrar todas las capacidades de CRM (recordemos, un sistema enfocado a la gestión del trato con los clientes) con estas aplicaciones ya establecidas LoB, muchas de ellas basadas en sistemas estándar de mercado como SAP, de una forma sencilla, nos da una ventaja importante.
Veamos esto en un caso práctico
Imaginemos que un cliente MUY descontento con nuestro producto (si seguimos el ejemplo clásico de Microsoft. Pongamos que fabricamos bicicletas) publica un tweet con una queja. Automáticamente, nuestro CRM Social Listening avisará a nuestro Community Manager, y este conocimiento se enviará, desde CRM, a nuestra aplicación interna de control de calidad en el entorno OnPremise. Al llegar al departamento de Quality Control, este detectará un error en una terminación del producto, y se enviará a las máquinas de línea de producción un nuevo diseño con el error corregido. Esta nueva versión entrará en producción en horas, en lugar de en semanas, por lo que se minimizan las pérdidas, y adicionalmente, el Community Manager puede escribir una respuesta al usuario molesto, indicando que, en agradecimiento por haber detectado el defecto, se le enviará una unidad nueva gratis… todo esto en horas, en lugar de en días o semanas, y generando un enorme impacto positivo en la imagen de atención al cliente.
Si tenéis dudas sobre la hibridación del CRM Online, y queréis estudiar los casos reales de vuestra organización, no dudéis en contactar con nosotros 😉