sergey vasin

The IT blog

Когда Windows PowerShell встречает WorkFlow – Windows PowerShell Blog

leave a comment »

Встречайте: Windows PowerShell Workflow (PSWF) – новичок в семействе Windows PowerShell.

01

Давайте сначала разберемся с предысторией решения интегрировать Workflows (рабочие процессы) в Windows PowerShell. Это берет свое начало от облачных вычислений и Windows-датацентров. Облачные вычисления предоставляют набор высокодоступных, масштабируемых сервисов, полагающихся на компоненты большой емкости (серверы, диски, память и т.д.). Эти компоненты менее надежны, чем их соседи 1 уровня, но даже они подвержены сбою. Основа облачных вычислений – это возможность использования ПО для предоставления надежных сервисов вне зависимости от сбоев. Это та область, где используются workflow.

Автоматизация – это ключевой фактор в создании и поддержке высокомасштабируемых частных публичных облаков. Автоматизируя административные задачи, вы уменьшаете стоимость и увеличиваете надежность, качество и возможности аудита и журналирования. Это позволяет вам увеличить соотношение сервер/администратор, расширять бизнес и увеличивать ценность сотрудников, освобождая их время для выполнения более значимых задач. В качестве примера приведем слова Erin Chapple:

«Server Manager соответствует этой идеологии, полагаясь на WMI, Windows PowerShell и рабочие процессы Windows PowerShell, позволяющие управлять множеством машин. Практически каждая операция, выполняемая в Server Manager может быть выполнена через PowerShell».

При создании Windows PowerShell Workflow, мы воспользовались масштабируемостью и зрелостью Windows Workflow Foundation 4.0 (WF) для привнесения в PowerShell таких вещей как надежность и возможность работы в течение долгого времени.

Если сказать одной строкой, то Windows PowerShell Workflow это:

Надежное выполнение долгосрочных задач на множестве компьютеров, устройств или IT-процессов.

До появления Windows PowerShell 3.0, основным подходом к проблеме было объединение Windows PowerShell и Windows Workflow Foundation при помощи частных имплементаций. В качестве одной из частей нашего процесса планирования, мы общались с большим числом заказчиков и обнаружили, что многие из них совмещали PowerShell и WF. В течение этого процесса приходилось принимать сотни архитектурных решений, так что отдельные внедрения не могли работать с другими. Мы же решили интегрировать эти две технологии, чтобы они могли использоваться в решениях третьих фирм. Например мы внедрили в наше решение точки расширения, что позволяет приложениям использовать наш движок в отказоустойчивой, масштабируемой конфигурации с возможностью детального аудита. Цель – это предоставить сообществу возможность создавать рабочие процессы при помощи нашего решения «из-коробки», которые будут полностью поддерживаться решениями сторонних производителей.

Мы внедрили Windows PowerShell Workflow в Windows 8, преследуя две цели:

  • Минимизация сложности при внедрении автоматизации на большом числе устройств в облаке или датацентре.
  • Создание экосистемы, где независимые разработчики и партнеры могут строить решения на базе Windows PowerShell Workflow, а также артефактов, которые могут использоваться сообществом в любом решении.

Для достижения этих целей мы решили инвестировать в следующие области нашего первого релиза PSWF:

  • Упрощенное создание рабочих процессов
  • Использование уже приобретенных вами знаний
  • Надежное выполнение рабочих процессов
  • Производительность и масштабируемость

Упрощенное создание рабочих процессов

Windows PowerShell Workflow позволяет IT-специалистам и разработчикам создавать последовательности активностей, которые могут быть долгосрочными, повторяющимися, параллельными, непрерываемыми, приостанавливаемыми и перезапускаемыми, как рабочие процессы.

Workflow – это набор активностей. Активность – это отдельная шаг в составе workflow, который выполняет определенную задачу, например получает список виртуальных машин на компьютере.

Использование уже приобретенных вами знаний

Мы разрабатывали PSWF придерживаясь, следующей позиции:

Мы уважаем ваши вложения в изучение PowerShell и будем снова и снова использовать эти концепции, чтобы изучение PowerShell стало наилучшей вещью из всех что вы когда либо делали.

Для нас очень важно, чтобы вы получили наибольшую отдачу от изучения PowerShell, вместо того чтобы, заставлять вас изучать новый язык для написания рабочих процессов.

Поэтому, вместо того чтобы создавать новые абстракции рабочих процессов, мы разработали абстракции PowerShell с использованием семантики рабочих процессов.

В то же время мы хотим продолжать работать в существующей экосистеме Windows Workflow Foundation. Именно поэтому у вас есть два способа для написания Windows PowerShell Workflow:

  • PowerShell Workflow на основе скриптов: если вы знаете как написать скрипт на PowerShell, вы можете использовать эти знания и выучить несколько новых конструкция для создания рабочих процессов. Например:

•workflow

•inlinescript { }

•foreach –parallel

•parallel { }

•sequence { }

  • XAML: если вы использовали WF или XAML-workflows, написанные сообществом, эти рабочие процессы также будут работать в PSWF.

Мы проанализируем эти новые конструкции в будущих постах, для того чтобы вы быстро смогли начать ими пользоваться.

Надежное выполнение рабочих процессов

Windows PowerShell Workflow позволяет вам управлять (orchestrate) надежным выполнением рабочих процессов на множестве компьютеров c Windows и стандартных поддерживаемых устройствах IT-среды.

Для того, чтобы повысить надежность ваших рабочих процессов, мы внедрили следующие функции:

  • Активность Checkpoint-Workflow
  • Параметр PSPersist
  • Переменную $PSPersistPreference
  • Активность Suspend-Workflow

Производительность и масштабируемость

В дополнение к вышеперечисленному, мы серьезно инвестировали производительность и масштабируемость PSWF-движка. Используя PSWF вы можете управлять рабочими процессами на тысячах узлов. Основные функции, позволившие сделать это возможным:

  • Параллельное выполнение задач (parallel, foreach –parallel)
  • Регулирование числа рабочих процессов
  • Регулирование числа подключений
  • Объединение подключений в пул
  • Интеграция с функцией отключенных сессий (Disconnected Sessions)
  • API расширения PSWF

В ряде будущих постов каждая из этих функций будет описана более подробно.

Установка PSWF и поддержка более ранних систем

После рассказа об этой функциональности нашим Windows PowerShell MVP мы получили от них ряд вопросов, среди которых были и следующие: «Как я могу установить PSWF?» и «могу ли я использовать это на более ранних системах?». Хорошая новость заключается в том, что Windows PowerShell Workflow является частью Windows PowerShell 3.0, и присутствует везде, где он установлен. Это касается и варианта установки Server Core, в котором PowerShell доступна «из коробки». Также PSWF доступна для инсталляций Windows Server 2008 R2, Windows Server 2008 и Windows 7 в составе Windows Management Framework 3.0.

Рабочий процесс или скрипт… Вот в чем вопрос

Этот пост касается нескольких наиболее частых вопросов, но Топ-5 их не будет полным без следующего:

Когда мне лучше написать рабочий процесс, а когда скрипт?

Этот вопрос требует более глубокого анализа, поэтому мы полностью рассмотрим его в отдельной статье. Однако, существуют некоторые основные причины для написания рабочего процесса, поэтому мы поможем вам размышлять в этом направлении.

Для «надежного выполнения долгосрочных задач на множестве компьютеров, устройств или IT-процессов» вам обычно требуется:

  • Надежность (постоянство, возможность приостановки и возобновления, отслеживаемое выполнение)
  • Широкий набор инструментов и возможностей (встроенная библиотека задач управления, встроенные параметры для управления множеством машин, написание рабочих процессов как скриптов, управление рабочими процессами при помощи командлетов или API)
  • Масштабируемость (параллельное выполнение, повторные попытки подключений и действий и т.д.)

Если вам нужно что-то из вышеперечисленного, вы можете рассмотреть возможность написания рабочего процесса вместо скрипта. Больше об этом вы сможете узнать в будущем эпизоде Workflow awesomeness…

Show me the Money!

Я знаю, что вам не терпится начать. Ниже приведен один из простейших рабочих процессов:

01

Итак… Как его найти? Как его запустить? Как для него получить справочную информацию? Так много вопросов, так мало времени. Мы бы хотели, чтобы ответы были максимально простыми и наиболее соответствовали вашим знаниям:

Рабочие процессы ведут себя точно так же как и любая другая команда PowerShell.

Как его найти?

Get-Command Test-Workflow

Get-Command Test-Workflow –Syntax

Как правильно называть рабочие процессы?

Глагол-существительное, как и в случае с любым другим командлетом PowerShell. Не забывайте использовать только принятые глаголы.

Как его запустить?

Test-Workflow

Как для него получить справочную информацию?

Get-Help Test-Workflow

Как его запустить на других компьютерах?

Test-Workflow –PSComputerName ManagedNode1, ManagedNode2

Будет ли ISE Intellisense работать с рабочими процессами?

Это было бы достаточно правильным, верно. Как говорил Cato – «Терпение – величайшая из добродетелей»

Но подождите, это еще не все. В будущих постах мы рассмотрим такие параметры рабочих процессов, как PSConuterName и PSCredentials (ключи от королевства в вопросе запуска рабочих процессов в среде со множеством машин), а также Windows PowerShell jobs и инфраструктуру модулей для выполнения рабочих процессов. Это только начало!

Здесь приводится краткий обзор того, чтоб будет рассмотрено в следующих постах. Эти примеры используют некоторые из концепций, которые будут более детально рассмотрены в течение нескольких следующих недель.

02

We Want You!

Теперь, когда вы знаете основы, мы хотим услышать ваше мнение!

Вы можете отправить отзыв напрямую команде Windows PowerShell Workflow используя сайт Windows PowerShell Connect — http://connect.microsoft.com/powershell. Мы разбираем присланные баги несколько раз в неделю, и имеет смысл добавить комментарий для каждого из этих багов.

Пока вы ожидаете появления нашего следующего поста, можно ознакомиться со следующими ресурсами о Windows PowerShell 3.0 и Windows PowerShell Workflows:

PowerShell v3: Workflow is the Flagship Feature (Don Jones – PowerShell MVP)

Rocking the Windows Server 8 Administrative Experience

TechNet docs on the Workflow module

Writing a Windows PowerShell Workflow in the Visual Studio Designer

SDK/MSDN documentation

Мы надеемся вам понравилась новая функциональность Windows PowerShell Workflow в Windows 8.

Автор:

Mir Rosenberg [MSFT]

Senior Program Manager

Windows PowerShell

Оригинал:

http://blogs.msdn.com/b/powershell/archive/2012/03/17/when-windows-powershell-met-workflow.aspx


Страницы в социальных сетях:

Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell


Реклама

Written by Сергей Васин

Ноябрь 7, 2012 в 09:25

Опубликовано в PowerShell, WindowsPowerShellBlog

Tagged with

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s