Microsoft System Center Orchestrator es un producto de automatización de workflows que permite a un administrador automatizar el seguimiento y la implementación de los recursos del centro de datos.

Se introdujo como parte de la suite Microsoft System Center 2012, sustituyendo a Opalis vNext (que era su anterior marca). Mediante una interfaz gráfica basada en el “drag and drop” Orchestrator nos permite crear de una manera sencilla e intuitiva diferentes workflows.

Orchestrator traduce estas representaciones gráficas en scripts .NET, PowerShell o comandos SSH para automatizar estos flujos de trabajo. Es capaz de gestionar múltiples SO y también workflows basados en VMWare y Citrix.

Microsoft ofrece complementos para Orchestrator que ayudan a extender su funcionalidad, incluyendo Integration Toolkit y Integration Pack.
En este artículo nos vamos a centrar en desarrollar una nueva Activity custom.

Pero… ¿Qué es una Activity?

Como hemos dicho, Orchestrator utiliza una interfaz gráfica basada en “Drag and Drop” para crear las automatizaciones. Los items indispensables con los que el administrador trabaja para crear los workflows se llaman Activities.
Se utiliza el runbook designer para arrastrar y organizar las activities, darles un orden de ejecución enlazándolas unas con otras, haciéndolas ramificar aplicando lógica de decisión, etc.

Existen dos tipos básicos de Activities:
• Monitoring Activity: se invoca desde una fuente externa y se utiliza para iniciar los runbooks.
• Action Activity: se invoca por otras activities y realizan las acciones especificadas (cualquier cosa, desde reiniciar un servicio, como llamar a un WCF).

Veamos un ejemplo de un Workflow con tres Activities:

alt text

En la ilustración anterior vemos tres Activities:

• La primera indica que cada día se iniciará la ejecución del RunBook.
• La segunda realiza una llamada a un WCF.
• La tercera recibe la respuesta del WCF y levanta una alerta si la ejecución ha fallado.

Una Activity se compone de una serie de parámetros de entrada, una función que ejecuta la funcionalidad de la Activity y de un parámetro de salida.

A continuación veremos un ejemplo de la activity de Orchestrator para llamar a WebServices.

alt text

Vemos que la Activity Invoke Web Services tiene tres parametros de entrada. El WSDL, el nombre del servicio y los parámetros de entrada del método del webservice.

¿Cómo creo una Activity nueva?

Como hemos explicado en el apartado anterior, las Activities se componen de parámetros de entrada, de salida y un método que se ejecuta cuando la Activity se pone en marcha.

Pasos para crear una activity

  1. Creamos un proyecto en Visual Studio con la plantilla Class Library
  2. Importamos la librería Microsoft.SystemCenter.Orchestrator.Integration (para tenerla tenemos que instalarnos el Integration ToolKit)
  3. Dentro del proyecto creamos una clase que llamamos MyOwnActivity y lo decoramos con el atributo Activity

alt text

  1. Definimos los inputs. Nuestros inputs serán los dos valores que queremos sumar. Para indicar a Orchestrator que son inputs los decoramos con el atributo ActivityInput(NOMBRE)

alt text

  1. Definimos el output. En nuestro caso, el output será la suma de los dos valores pasados por el input. Para indicar a Orchestrator que es un Output lo decoramos con el atributo ActivityOutput(NOMBRE)

alt text

¡Ya tenemos nuestra Custom Activity!

Hemos visto que es muy sencillo crear custom activities (siempre que la lógica así lo permita).

Y ¿Cómo lo pruebo?

La manera más sencilla para probar nuestra Activity en Orchestrator es utilizar la Activity expuesta en Integration Toolkit llamada Invoke.Net.
Esta activity permite leer una dll y escoger una Activity dentro de esa dll. Orchestrator se encarga de mostrar los inputs y los outputs que nosotros hayamos declarado en nuestro código.

  1. Primero añadimos la activity al runbook

alt text

  1. Seleccionamos la dll y la Activity

alt text

  1. En el apartado Properties tendremos la pantalla para rellenar los inputs que hemos declarado.

alt text

  1. Le damos a Finish y ya tenemos nuestro RunBook listo para ejecutar
  2. Clickamos en el boton de RunBook Tester de la barra de herramientas

alt text

  1. Se nos abre la pantalla del Tester y le damos a Run

alt text

  1. Una vez ejecutado, podemos ver que tenemos un Output con la suma de los dos valores

alt text

Conclusiones

Orchestrator ofrece, de una manera sencilla e intuitiva, un sistema de extensibilidad de Activites muy útil que hace que la herramienta sea fácil de explorar y de extender.

Podemos encontrar problemas concretos donde la necesidad de crear un Activity personalizada sea la opción más inteligente. Hemos visto como, en unos sencillos pasos, podemos crear estas Acitivities sin invertir mucho esfuerzo.

En próximos artículos profundizaremos en diferentes modos de crear Activities y veremos cómo desplegar nuestras activities de manera elegante y corporativa.

Más información sobre Orchestrator

Visita nuestra site Raona