Mostrando entradas con la etiqueta Azure. Mostrar todas las entradas
Mostrando entradas con la etiqueta Azure. Mostrar todas las entradas

domingo, 28 de febrero de 2016

Creación de un Worker Role de Azure conectado con Dynamics CRM Online

Hola, hoy voy a cambiar un poco la línea de mis últimos “posts”, para empezar a meterme un poco mas en el mundo de Azure.
Como todos saben, Azure es una de las áreas de mayor inversión por parte de Microsoft y semanalmente tenemos noticias de nuevas funcionalidades en el Cloud.
Hoy, quiero hablar de lo que se llaman “Worker Role” de Azure.
Para la descripción de los Worker Roles, cito la siguiente información:
<inicio de la cita>
La arquitectura de un servicio alojado en Windows Azure se basa en componentes auto-contenidos desarrollados típicamente con código .NET. Estos componentes son conocidos en Windows Azure como roles.
El siguiente diagrama explica su arquitectura:

Existen dos tipos de roles en Windows Azure:
  • Web rol: Un ‘web rol’ es una aplicación basada en web accesible mediante HTTP o HTTPS. Un web rol es alojado en un entorno de ejecución que soporta un subconjunto bastante amplio de ASP.NET y Windows Comunication Foundation.
  • Worker rol: Un ‘worker role’ es un proceso que corre en segundo plano. Sería el equivalente a un servicio de Windows en la plaforma Windows Azure. Un worker rol se puede comunicar con los servicios de almacenamiento y de colas de Windows Azure, incluso puede comunicarse directamente con otros roles.
(fuente de esta descripción: http://www.estoyenlanube.com/recursos/windows-azure/arquitectura-de-una-aplicacion-windows-azure/)
<fin de la cita>
En este caso, lo que voy a hacer, es crear un “Worker Role”, enfocado en la realización de tareas contra un Dynamics CRM Online, en este caso, la creación de una Cuenta, cada 10 segundos. Es algo simple, pero que puede enseñar fácilmente como funciona.
Los pasos a seguir para el desarrollo de este servicio en la nube son los siguientes:
Creación del proyecto “Servicio de nube Azure”:
SNAGHTML29446e52
Seleccionamos el tipo de Worker Role:
SNAGHTML29452aad
En el proyecto de tipo worker role (que es una dll), primero añadimos las librearías de la SDK de CRM que vamos a utilizar y luego desarrollamos dentro del método “RunAsync” la lógica de negocio que queremos que se ejecute. En este caso, nuestro código se conecta con un CRM Online, y crea una cuenta, luego espera 10 segundos, y se volverá a ejecutar, igual que como funciona un servicio de Windows.
SNAGHTML2946fde7
Una vez desarrollado, podemos depurarlo en local, o podemos publicarlo. Para publicar el servicio en Azure, hacemos click derecho en el proyecto de Cloud Service y le damos a publicar:
SNAGHTML294a1d95
Nos pedirá autenticarnos con nuestro usuario de Azure:
SNAGHTML294a85e4
Definimos una serie de parámetros en el segundo paso:
SNAGHTML294aef5c
y confirmamos y todo se despliega “mágicamente” en la nube:
SNAGHTML294b2939
En mi CRM Online, ya puedo ver que se empiezan a crear nuevas cuentas:
SNAGHTML294c8474
Dentro de mis servicios en la nube, además puedo ver como va de rendimiento, y consultar su uso mediante muchas métricas de CPU, red, disco, etc.:
SNAGHTML294ea223
Excelente! he tardado solo 5 minutos y ya he publicado un servicio en mi cuenta de Azure, que se ejecuta constantemente allí, de forma igual a la que funciona un servicio de Windows.
Este tipo de servicios, pueden ser muy útiles en implantaciones de CRM Online, para ejecutar procesos constantes por ejemplo de sincronización de información, o de comunicaciones.
Espero les haya gustado, y les pueda dar ideas para nuevas implementaciones en la nube Winking smile
un saludo
@demian_rasko

domingo, 4 de octubre de 2015

Creando un Servicio WCF en Azure conectando con Dynamics CRM Online

Buenas a todos. A pesar que aún quedan algunos proyectos que irremediablemente van a seguir siendo en versiones Onpremise de Dynamics CRM, cada vez más y más clientes optan por entornos de Dynamics CRM Online.

Microsoft esta impulsando la nube con una fuerza sin precedentes, y la estrategia de la compañía por ejemplo en otros productos como Sharepoint o Exchange cuyo roadmap es puramente Online, nos indica que Dynamics CRM será similar.

Dado este escenario, creo que debemos enfocarnos cada vez mas a implementaciones que no tendrán servidores montados en los clientes, sino que estarán en la nube. Esto implica unos grandes beneficios pero también grandes retos.

El primero y el que me voy a enfocar hoy, es el de como crear servicios web que conecten con Dynamics CRM Online. Es un escenario muy habitual que en implementaciones de CRM se tengan que desarrollar servicios web que conecten con CRM para hacer integraciones con otras plataformas.

En un entorno Onpremise, donde ya se dispone de servidores, es fácil crear un nuevo sitio web, y añadir allí nuestros web services. Pero en una implementación en la nube, no parece tener mucho sentido el pedirle al cliente que nos provea de una servidor fisico con IIS configurado para montar nuestros servicios web.

Para esto hoy en día tenemos los web sites de azure (https://azure.microsoft.com/en-us/services/app-service/web/). Básicamente consiste en una plataforma PaaS (Plataforma como Servicio) donde poder montar nuestras aplicaciones web (y web services) en la nube, de forma sencilla, segura, escalable, etc…

Lo que hoy os voy a enseñar es como paso a paso, he creado un servicio web en Azure, que conecta con mi Dynamics CRM Online y creo una cuentas, luego como poder ejecutarlo desde una aplicación de consola local, y como poder monitorizar el funcionamiento del servicio web.

En este ejemplo “paso a paso” voy a utilizar Visual Studio 2015 Enterprise.

Lo primero que hay que hacer es descargar la SDK de Azure para Visual Studio 2015 (https://azure.microsoft.com/en-us/downloads/)

SNAGHTMLe6f7c5f

Y luego instalarlo:

SNAGHTMLe6f9f97

Luego vamos a crear un nuevo proyecto de tipo “Aplicación web ASP.NET”:

SNAGHTMLe70d930

En este caso vamos a crearlo vacío:

SNAGHTMLe70fff2

Y seleccionamos los datos de Azure donde vamos a desplegar nuestro servicio web:

SNAGHTMLe712711

Y esperamos a que se configure todo:

SNAGHTMLe714d66

En nuestro proyecto vacío vamos a añadir un servicio Web WCF:

SNAGHTMLe716850

Y luego vamos a NuGet para añadir las referencias a la SDK de Dynamics CRM:

SNAGHTMLe718975

Instalamos Microsoft.Crm.Sdk.CoreAssemblies:

SNAGHTMLe71d831

Y Microsoft.Crm.Sdk.Extensions (para utilizar la conexión simplificada):

SNAGHTMLe71f648

Desarrollamos el Web Service, en este caso muy simple, conectamos con Dynamics CRM Online, y luego creamos una Cuenta:

SNAGHTMLe724a92

Ahora vamos a desplegar en Azure. Botón derecho y Publicar:

SNAGHTMLe72704b

Validamos la conexión:

SNAGHTMLe72874d

Siguiente:

SNAGHTMLe72a5c2

Verificamos que todo esta bien:

SNAGHTMLe72bcc5

Cuando acaba el despliegue, no enseña una página de confirmación como esta:

SNAGHTMLe72d492

Verificamos en la consola de salida que todo haya ido bien:

SNAGHTMLe72e982

Y verificamos en el portal de Azure, que el sitio web se ha creado correctamente:

SNAGHTMLe730027

Ahora que ya tenemos nuestro servicio web WCF que conecta con CRM publicado en Azure, vamos a crear una aplicación de Consola nueva, para conectarnos y probar nuestro servicio web. Una vez creada esta aplicación, vamos a añadir una referencia a nuestra servicio WCF en Azure:

SNAGHTMLe731871

Introducimos la URL de nuestro servicio web WCF en Azure:

SNAGHTMLe733010

Y luego instanciamos el mismo y lo ejecutamos, y depurando podemos verificar que todo va bien:

SNAGHTMLe7346e4

Una vez ejecutado, vamos a nuestro Dynamics CRM Online, y vemos que funciona! se ha creado una nueva Cuenta:

SNAGHTMLe7365f5

Finalmente y luego de hacer muchas otras pruebas, podemos ir a nuestro portal de Azure, y entrando a nuestro Web Site, poder supervisar como esta funcionando, para decidir si hay que escalar el mismo por ejemplo:

SNAGHTMLe737c7b

Hermoso, simple y genial. Sinceramente, este tipo de cosas a los desarrolladores nos abre mundos increíbles, ya que podemos desarrollar de todo, sin tener en cuenta infraestructuras, servidores ni nada. Es increíble como ha evolucionado la tecnología para poder “abstraernos” tanto de todo lo que hay de sistemas por abajo, de cara a desarrollar este tipo de integraciones.

Espero que les haya gustado, un abrazo…

@demian_rasko

domingo, 10 de noviembre de 2013

Instalación de Dynamics CRM 2013 en Azure

Hola a todos, hoy voy a intentar contar paso a paso toda mi experiencia en la migración de un CRM 2011 a la nueva versión 2013. En esta experiencia me han surgido temas que iré destacando para que todos los tengan en cuenta.

Yo tenía una máquina virtual en Azure con Windows Server 2012 y Dynamics CRM 2011 y decidí migrar la misma. Antes de empezar simplemente quiero destacar que lo que estoy haciendo no está soportado y solamente lo utilizo para pruebas, ya que no está soportado a día de hoy el instalar Dynamics CRM en servidores virtuales de Azure.

Mi experiencia personal está mas enfocada en temas de desarrollo, consultaría y gestión de proyectos, mas que en la parte de sistemas, pero quiero destacar que con la poca experiencia que tengo de la parte de sistemas, he conseguido hacerlo todo solo.

Azure es un entorno que nos permite crear máquinas virtuales a golpe de click, y seleccionando incluso plantillas preconstruidas. Una vez creadas las máquinas virtuales, con todos los prerrequisitos necesarios para CRM (AD, SQL Server, Reporting, etc.) simplemente se pueden arrancar o detener desde un sitio de administración que es el siguiente (Facilísimo!):

10-11-2013 0-04-21 

Una vez arrancada la máquina, he decidido descargarme la última versión de Dynamics CRM 2013 y comenzar con la instalación “in place”, es decir encima de la máquina virtual con CRM 2011 que ya tenía con anterioridad.

Los pasos que seguí con sus capturas de pantalla son los siguientes:

08-11-2013 21-50-0508-11-2013 21-50-1408-11-2013 21-51-5108-11-2013 21-52-0908-11-2013 21-52-31

Upps, error. esto me ocurre porque la versión que tenía previamente de Dynamics CRM estaba en español, y ahora estoy instalando en inglés. Como no quiero descargarme la versión de Dynamics CRM 2013 en español, lo que voy a hacer es desinstalar CRM 2011:

 

08-11-2013 21-53-3508-11-2013 21-53-5408-11-2013 21-54-0708-11-2013 21-54-3508-11-2013 21-56-5708-11-2013 21-58-23

Ok, ahora ya tengo “limpio” el entorno y vuelvo a ejecutar el instalador de CRM 2013:

 

09-11-2013 8-14-2909-11-2013 8-14-4309-11-2013 8-17-3609-11-2013 8-17-5309-11-2013 8-18-4709-11-2013 8-19-0309-11-2013 8-19-2709-11-2013 8-19-5309-11-2013 8-20-3509-11-2013 8-20-4809-11-2013 8-21-0409-11-2013 8-22-4509-11-2013 8-22-5709-11-2013 8-23-1209-11-2013 8-23-2609-11-2013 8-23-54

De nuevo, errores. Me avisa que ya existe una base de datos con el nombre “TEST_MSCRM” ya que previamente tenia una organización con ese nombre. Entonces vuelvo para atrás y modifico el nombre de la organización y además elimino la base de datos “MSCRM_CONFIG”:

09-11-2013 8-24-2509-11-2013 22-46-46

Y con estas dos cosas modificadas, ya puedo seguir adelante:

09-11-2013 23-38-0809-11-2013 23-38-2209-11-2013 23-38-3509-11-2013 23-38-5709-11-2013 23-50-2009-11-2013 23-58-30

y listo, ya tengo mi CRM en Azure!

Mi experiencia en la utilización de Azure y la instalación de CRM 2013 es muy satisfactoria y sencilla (salvo la configuración del directorio activo, que ahí he necesitado algo de ayuda).

Espero les sirva como experiencia.

saludo,