Consejo

El Flujo de trabajo y PowerShell v3

Una de las nuevas características más importantes e interesantes de Windows PowerShell v3 es el flujo de trabajo. A primera vista, quizá sea algo complicado encontrar ejemplos en el mundo real sobre los que usar esta opción. Pero mire con más detalle: es una característica de base que los próximos productos de Microsoft desarrollarán significativamente. De manera que en vez de tener equipos de producto quemando ciclos para desarrollar sus propios mecanismos de gestión de tareas administrativas de larga ejecución, ahora pueden confiar a PowerShell la gestión de esas funciones.

¿Qué es un “flujo de trabajo”?

Las características de flujo de trabajo de PowerShell están presentes en Windows Workflow Foundation, o WWF, una parte del entorno Microsoft .NET Framework desde la versión 3.5. Un flujo de trabajo se define como un juego de tareas que deben ser completadas siguiendo un cierto orden. Algunas de esas tareas pueden implicar un reinicio del equipo, como unir un equipo a un dominio, y el proceso completo puede necesitar sobrevivir a problemas intermitentes, como los fallos de conexión de red. Cada paso del flujo puede quedar registrado a efectos de seguridad y auditoría. WWF también ofrece funciones de programación para los flujos de trabajo, gestionando la ejecución del flujo entre tareas específicas del flujo de trabajo, entre otras cosas.

WWF usa su propia Interfaz de Programación de Aplicaciones, o API, lo que hasta el momento había estado en el dominio de los desarrolladores .NET. PowerShell v3 define un nuevo lenguaje, el “flujo de trabajo”, que se parece mucho a una función. PowerShell traduce los comandos y códigos de script de PowerShell al código WWF que usted necesita, en segundo plano, finalmente dando a los administradores una forma directa y relativamente fácil de crear flujos de trabajo.

Como una función… o casi

Debido a que el código de PowerShell en un flujo de trabajo debe traducirse a algo que entienda WWF, existen unas reglas para hacerlo. La mayoría de las veces, cualquier cosa que pueda ejecutar desde la consola de PowerShell o poner en un script de PowerShell funcionará dentro de un flujo de trabajo, con solo un par de excepciones.

La primera de ellas es la construcción del switch, que no tiene un equivalente en WWF y por tanto no puede usarse en un flujo de trabajo. La segunda es que WWF admite la ejecución en paralelo, lo que supone que puede usar una construcción foreach paralelo (es decir, un par de construcciones que funcionan juntas) especial para que PowerShell ejecute actividades multiproceso. Piense en ello, puede disponer de una gran colección de objetos con los que tratar y ahora puede hacerlos funcionar en paralelo. ¡Genial! Este paralelismo sólo funciona en un flujo de trabajo y no está soportado en otro lugar de PowerShell.

Hay otras restricciones, la mayor parte relativa a las diferencias entre PowerShell y WWF. Microsoft ofrece una lista completa de estas excepciones.

El atractivo de los flujos de trabajo

Quizá en general no le apasionan mucho las palabras, pero considere algunas de las palabras que han sido aplicadas al flujo de trabajo de PowerShell. El flujo de trabajo le permite crear tareas…

  • De larga ejecución
  • Repetibles
  • Frecuentemente ejecutadas
  • Paralelizables
  • Interrumpibles
  • Parables
  • Reiniciables

Piense en ello por un momento. Esto es importante. Imagine tener un servidor “estación base de flujo de trabajo” en su centro de datos, desde donde envía todas las tareas de flujo de trabajo de PowerShell. PowerShell pone en sus manos el código WWF, lo que asegura que las tareas se ejecuten en su orden correspondiente… con sus accesos… sin importar el qué. Puede pararlas, puede reiniciarlas y puede ejecutarlas en paralelo. Es un nuevo mundo por descubrir.

Bueno, ¿y cómo funciona?

Cuando crea un flujo de trabajo, básicamente está creando un nuevo comando en PowerShell. Puede pedir ayuda al respecto, listar los comandos que contiene y mucho más. Puede ser tan complejo como necesite. Cuando lo ejecuta, PowerShell traduce todos los comandos a WWF y le dice a WWF que los ejecute. Incluso puede ejecutar flujos de trabajo como parte de su trabajo en segundo plano –y usar los nuevos cmdlets Suspend-Job y Resume-Job para pausar y reiniciar la ejecución de esos flujos de trabajo.

PowerShell añade automáticamente un par de docenas de parámetros al flujo de trabajo, lo que permite conectar diferentes elementos, especificar información de configuración remota, proporcionar credenciales alternativas, nombres de equipos donde ejecutar el flujo de trabajo y mucho más. Toda esta capacidad se obtiene de forma libre, lo que significa que lo único que usted tiene que hacer es escribir los comandos para llevar a cabo cualquier tarea que quiera ejecutar.

Un flujo de trabajo incluso puede llamar a otro flujo de trabajo, abriendo un impresionante campo de para implementar módulos y reutilizarlos.

Déle una oportunidad

Nunca es demasiado pronto para empezar a trabajar con esta nueva tecnología. Empiece por descargar PowerShell v3 CTP #2, así como la documentación relativa a los flujos de trabajo de PowerShell (que incluye una gran cantidad de ejemplos interesantes). No cometa el error de ignorar esta tecnología: va a ser omnipresente dentro de unos años y siempre es mejor empezar a conocerla cuanto antes.

SOBRE EL AUTOR: Don Jones es socio y técnico principal de Concentrated Technology, LLC, una firma de consultoría estratégica y análisis. Contáctelo a través del sitio web de su empresa en http://ConcentratedTech.com.

Esto fue publicado por primera vez en noviembre 2012

Unirse a la conversación Comenta

Compartir
Comentas

    Resultados

    Contribuye a la conversacion

    Todos los campos son obligatorios. Los comentarios aparecerán en la parte inferior del artículo

    Aviso Legal: Nuestro Intercambio de Consejos es un foro para compartir asesoramiento técnico y conocimientos con sus compañeros y aprender de otros profesionales de TI . TechTarget proporciona la infraestructura para facilitar este intercambio de información. Sin embargo, no podemos garantizar la exactitud o validez del material presentado. Usted acepta que el uso del servicio de Preguntale al Experto su dependencia en las preguntas, respuestas, información u otros materiales recibidos a través de este sitio web está bajo su propio riesgo.