ТЕХНОЛОГИЯ
System Center Orchestrator

Введение

System Center Orchestrator (ранее известный как Opalis Integration Server) – это решение для управления процессами в центрах обработки данных и других ИТ-инфраструктурах. Orchestrator позволяет практически полностью автоматизировать центры обработки данных, объединить множество составляющих их систем с различных уровней (от оборудования до пользователей) и зачастую создавать решения, которые были бы невозможными или нецелесообразными при иных способах.

Автоматизация

Orchestrator часто в шутку называют «PowerShell с графическим интерфейсом» или «Visio, в котором картинки работают». В каждой шутке есть доля правды – Orchestrator действительно во многом схож с PowerShell по своей структуре, а его автоматизированные процедуры выглядят (да и создаются) очень похоже на диаграммы Visio. Но в отличие от PowerShell, Orchestrator является действительно промышленным решением автоматизации для серьезных систем среднего и крупного бизнеса. Это связано с большей управляемостью, журналированием, системой разрешений, возможностью построения кластеров серверов, выполняющих сценарии и т.д. Но и возможности PowerShell не забыты. Сценарии PowerShell очень часто применяются как элементы процедур Orchestrator для повышения гибкости системы, использования дополнительных возможностей  интеграции и просто для сохранения уже вложенных в разработку сценариев ресурсов.

Координация (Orchestration)

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

От серверов и сетевого оборудования до веб-сайтов и систем управления услугами, Orchestrator возможно интегрировать практически со всем. Базы данных, системы мониторинга и управления, почта, системы управления исходными кодами – всё может участвовать в процессах, объединяющих действия, логику и данные на всех уровнях.

Интеграция

Как уже было сказано, возможности интеграции Orchestrator весьма велики. Полный список готовых пакетов интеграции приведён в разделе «Пакеты интеграции», однако это далеко не все возможности.

Во-первых, данные пакеты продолжают появляться в большом количестве, причем их авторами являются не только Microsoft и партнёры, но и большое сообщество профессионалов. Это возможно благодаря удобству разработки таких пакетов и растущей как снежный ком популярности продукта.

Во-вторых, если нужного вам пакета интеграции нет в списке готовых пакетов, это не значит, что вы не можете интегрировать вашу систему с Orchestrator и, через него, с другими системами. Просто процесс будет несколько более сложным, чем простое перетаскивание кубиков-активностей и настройка их свойств. Но ничего невозможного в этом нет. Orchestrator позволяет интегрироваться с системами не только через готовые пакеты интеграции, но и просто с помошью популярных в индустрии протоколов и методов, таких как утилиты командной строки, веб-сервисы, WMI, конфигурационные файлы и т.д.

Гетерогенность

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

Вполне понятно, что сложно построить центр обработки данных, да и вообще сложную инфраструктуру на технологиях только одного производителя. Но тем не менее, нужно иметь возможность связывать все эти системы друг с другом для того, чтобы действительно эффективно управлять ими. Microsoft понимает это, поэтому приобретённые вместе с Opalis пакеты интеграции для продуктов конкурентов сохраняются, поддерживаются и развиваются. Так что неважно, какая система виртуализации используется у вас в компании – Hyper-V, VMware, или обе сразу; не важно, какая система управления услугами и заявками привычна вашим пользователям – HP Service Manager, Microsoft Service Manager, разработка, базирующаяся на SharePoint, или даже полностью своё решение, Orchestrator всё равно поможет вам в наведении порядка в любой инфраструктуре.

Возможности

В этом разделе кратко описаны основные технические возможности Orchestrator и его компонентов.

Архитектура

Architecture

Архитектура Orchestrator состоит из нескольких элементов, которые можно как объединить на одном сервере, если нет большой критичности и нагрузки, так и разнести по различным серверам и дублировать/кластеризовать все более-менее важные компоненты.

Графический дизайнер процедур (Runbook Designer)

Runbook designer

Дизайнер процедур представляет собой основной интерфейс настройки и управления Orchestrator. Именно в нём создаются и отлаживаются автоматизированные процедуры, которые затем будут выполняться на серверах процедур. Дизайнеров процедур может быть столько, сколько необходимо. Причем одновременная работа нескольких специалистов не нарушит работу системы – предусмотрены механизмы Check-In/Check-Out процедур, журнал аудита изменений и гибкая система разрешений.

Кроме того, консоль дизайнера процедур содержит полезный компонент Runbook Tester, играющий роль удобного отладчика процедур при их разработке.

Веб-портал (Orchestration Console)

Веб-портал – это единственный интерфейс для конечного пользователя процедур, поставляемый вместе с Orchestrator. Портал позволяет запускать процедуры вручную, передавая им необходимые параметры, и контролировать их выполнение. Хотя этот портал, возможно, менее удобен, чем специализированный портал на базе системы управления услугами или SharePoint, он, тем не менее, вполне может удовлетворить потребности многих организаций.

Кроме портала, поставляется веб-сервис, позволяющий управлять процедурами из других систем. Например, Microsoft Service Manager использует его для синхронизации и запуска процедур.

Сервер управления (Management Server)

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

База данных (Orchestration Database)

Orchestrator использует обычную базу данных SQL Server. Так как это один из самых важных компонентов системы, его можно кластеризовать. Для этого используются стандартные механизмы SQL Server.

Сервер процедур (Runbook Server)

Самый главный компонент системы – сервер, непосредственно выполняющий автоматизированные процедуры. Для работы ему необходимо высокоскоростное подключение к серверу баз данных. В процессе работы сервер процедур подключается к управляемым системам. Orchestrator не использует «агенты», поэтому подключения производятся непосредственно с сервера процедур.

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

Процедуры

Runbook

Основной элемент, который делает Orchestrator таким ценным – это процедуры. Процедура является автоматизированным процессом, который либо выполняется постоянно, либо запускается по условию или таймеру. В процессе работы процедуры вызывают активности и другие вложенные процедуры, выполняют проверки условий и передают данные.

Активности

Активность – это тот самый базовый кубик, из которых состоят процедуры и который выполняет основную работу. Примеры активностей: «Запустить команду», «Выполнить запрос SQL» или «Получить запросы Service Manager, удовлетворяющие условию». В стандартной поставке Orchestrator уже присутствует более четырёх десятков стандартных активностей, а пакеты интеграции добавляют еще больше.

Условия переходов и циклы

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

Шина данных

В отличие от многих подобных систем и даже от языков сценариев, у Orchestrator есть интересная особенность, называющаяся «Шина данных» (Data Bus). Суть её в том, что все данные, полученные от активностей на каком-либо этапе работы процедуры, доступны другим активностям, выполняющимся после, без необходимости сохранять эти данные в переменные. Эта возможность существенно упрощает и ускоряет процесс разработки процедур.

Многопоточность

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

Пакеты интеграции

Несмотря на то, что Orchestrator достаточно молод, продукт обзавёлся уже немалым количеством готовых пакетов интеграции. Причём подавляющее большинство (в том числе все пакеты от Microsoft) из них бесплатны и не требуют дополнительных лицензий.

Самый главный набор пакетов – это, конечно, пакеты для интеграции с другими компонентами System Center, все они выпускаются Microsoft:

  • Service Manager
  • Virtual Machine Manager
  • Configuration Manager
  • Operations Manager
  • Data Protection Manager

Кроме того, Microsoft выпустила пакеты и для других систем:

  • Active Directory
  • Exchange Admin (управление административными элементами)
  • Exchange Users (управление почтой, календарями и т.п.)
  • FTP
  • HP iLO and OA
  • HP Operations Manager
  • HP Service Manager
  • IBM Tivoli Netcool/OMNIbus
  • REST (веб-сервисы)
  • Windows Azure
  • VMware vSphere

Актуальную информацию и документацию по пакетам интеграции Microsoft можно получить в TechNet.

Кроме Microsoft, разработкой пакетов занимается и сообщество профессионалов энтузиастов и партнёры компании. Например, доступны следующие пакеты интеграции:

  • Microsoft SharePoint
  • Microsoft Team Foundation Server
  • Microsoft Forefront Identity Manager
  • Cisco UCS
  • NetApp
  • SAP
  • F5 Big-IP LTM
  • 1E Wake On Lan (включение/выключение компьютеров с использованием WOL-пакетов)
  • System Center Orchestrator Webservice (удобное управление другими, независимыми, инфраструктурами Orchestrator через веб-сервисы)
  • Zip (архивация и распаковка файлов)
  • Port Query (проверка доступности портов)
  • Active Directory (дополнительные активности, расширяющие возможности стандартного пакета от Microsoft)
  • SQL (улучшенная версия стандартной активности)
  • Configuration Manager 2007 (дополнительные активности, расширяющие возможности стандартного пакета от Microsoft)
  • Exchange Mail (дополнительные активности, расширяющие возможности стандартного пакета от Microsoft)
  • Exchange Management (дополнительные активности, расширяющие возможности стандартного пакета от Microsoft)
  • Exchange Calendaring (управление календарями)
  • Local Security (управление локальными учетными записями)
  • Scheduled Tasks (управление запланированными заданиями)
  • Utilities (компоненты, облегчающие работу с реестром Windows, текстом, и т.п.)
  • VMware (дополнительные активности, расширяющие возможности стандартного пакета от Microsoft)
  • SCCM Client Center (управление агентами System Center Configuration Manager)
  • PowerShell 2 (улучшенная версия стандартных активностей)
  • RoboCopy
  • Variables (управление переменными)
  • Social Media (Twitter, Yammer)
  • IP for Standard Logging (расширение возможностей журналирования и возобновления процедур)

Если нет пакета интеграции

Но что делать, если пакета интеграции для вашей системы пока нет или вообще не предвидится (если это ваша внутренняя система)? У Orchestrator достаточно и других возможностей для работы с системой и без готового пакета управления. Практически все ИТ-системы обладают хоть каким-нибудь, а то и несколькими стандартными интерфейсами, которые может использовать для взаимодействия и Orchestrator, например:

  • Утилиты командной строки
  • Веб-сервисы
  • SSH (Системы *-nix, оборудование)
  • SNMP
  • WMI
  • SQL (Microsoft SQL, Oracle, даже Access)
  • PowerShell

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

Примеры сценариев

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

  • Связывание различных систем для передачи данных или синхронизации.
  • Автоматизация рутинных, повторяющихся, долгих ИТ-процессов для снижения зависимости от персонала и загруженности специалистов.
  • Делегирование полномочий. Orchestrator позволяет делегировать полномочия на любую операцию и использовать практически любой набор проверок. Например, возможно дать право на перезагрузку контроллера домена по выходным с 23:00 до 05:00, при условии что остаются включенными минимум два контроллера, не предоставляя никаких административных прав на этих серверах.
  • Автоматизация решения проблем. Решение многих рутинных задач зачастую может быть автоматизировано. Например, перезапуск сервисов в определенной последовательности на разных серверах, проверка журналов, очистка кэша, выполнение дополнительных действий.
  • Связующее звено между уровнями безопасности. Две независимых системы Orchestrator могут работать в инфраструктурах разной защищённости (например, рабочая сеть и изолированный сегмент), используя для коммуникации любое решение, например, общую папку с текстовыми файлами или даже usb-диски, и выполняя проверку получаемых данных.
  • Управление виртуализацией. Orchestrator используется для управления виртуализацией и сопутствующими системами на самых различных уровнях, от нескольких серверов Hyper-V до решений публичного облака масштабов страны.
  • Депозитарий сценариев автоматизации. В конце концов, Orchestrator принесёт пользу, даже если просто перенести в него уже имеющиеся сценарии автоматизации, например, на PowerShell. Это позволит консолидировать разрозненные механизмы и существенно облегчить их мониторинг и поддержку.