CTP3: Declarative Management Framework. Введение
Declarative Management Framework
Управление сервером баз данных можно разбить на два типа «жизненных циклов»: управление сервером и управление приложениями. Управление приложениями включает в себя все, что необходимо для поддержки работы приложений и сохранности и актуальности данных, хранимых на сервере.
Можно попробовать описать это следующими картинками:

SQL Server
Дистрибутив/ Upgrade/фиксы |
Рис.1 Жизненный цикл: управление сервером

Рис 2.Цикл: приложение.
Как видно из картинок, оба цикла подразумевают установку/обновление программ, наблюдение за их работоспособностью, поддержку в случае возникновения проблем и тьюнинг (или, как еще называют – тонкую настройку). Каждый из этих шагов может быть сложным и требовать достаточно глубоких знаний и некоторой работы руками..
Что это значит для администратора? Это означает, что он ежедневно должен управлять экземплярами сервера и некоторым количеством приложений, установленными на этом сервере. Это и называется цели управления (management target). Администратор обычно должен следить за тем, чтобы все находилось в состоянии или функционировало в соответствии с какими-то известными требованиями . Допустим, база должна быть восстанавливаема на случай если вдруг что-то завалится и данные должны быть не старше какого-то периода (неделя/день/час/минуты) . Эти требования можно назвать политиками управления (management policy).
На данный момент, это достигается достаточно низкоуровневыми действиями, связанными с настройкой системы и требует хорошего знания SQL Server, семантики установленного приложения и т.д. Требует различных механизмов уведомления ( ну, если администратор вдруг смог что-то автоматизировать). Самая большая проблема, что много действий приходится повторять в случае, если администратор работает с некоторым количеством серверов.
Это и есть базовая идея Declarative Management – абстрагировать управление сервером до уровня концепций, который сервером же и поддерживаются. Концептуальные действия позволяют определять (что идет от “declare” в названии технологии) политики управления и применения их к некоторым целевым объектам ( целям). Политики же будут «переводить» концепции в более низкоуровневые шаги по управлению серверами, наблюдению за ними и отчетам о состоянии серверов или объектов.
Политики можно описать в в следующих терминах: «Эта база данных должна восстанавливаться за 30 минут». И это в противоположность нынешнему: «создать job резервного копированияс 30 минутным графиком»
Все основные операции по администрированию политик должны производиться через SQL Server Management Studio. DMF управляет «сущностями» - логическими элементами, объектами, которыми, собственно, можно управлять. Сущностью являются объекты типа: экземпляр SQL Server, база данных, или другие объекты SQL Server.
Основные компоненты DMF:
- Управление политиками (Администратор политик создает их)
- Явное администрирование ( Explicit administration) ( Администратор выбирает несколько объектов и сам следит за соответствиями этих объектов политикам или «руками» приводит их в соответствие)
- Автоматизированное администрирование
Администраторы политик «включают» автоматизированное исполнение политик:
- Принудительно, используя DDL триггеры, чтобы предотвратить нарушения политик.
- Проверка Изменений, используя уведомления о событиях и, соответственно, проверяя не было ли чего-то нарушено.
- Проверка по графику, используя SQL Agent, чтобы периодически «прошерстить» сервер и поглядеть – может там кто-то чего-то..
Какие же основные термины, на которые опирается DMF?
Управляемая Declarative Management Framework цель (managed target):
Это сущности, которые управляются DMF, такие как: экземпляр SQL Server Database, база данных, таблица, индекс. Или иначе - это физические или логические объекты SQL Server. Можно создать набор целей, который будет состоять из различных целей, которые в свою очередь будут удовлетворять определенным признакам. Набор целей будет выбираться путем применения фильтра (набора признаков) ко всей иерархии целей на экземпляре SQL Server. Например: все таблицы базы данных, которые принадлежат схеме HumanResources.
Аспект (или особенность) управления Declarative Management Framework
Принимаю предложения по терминологии. Оригинальное название: management facet. Это набор логических свойств, которые описывают модель поведения или свойств т набора целей. Возьмем для примера построение индексированного представления. Это одна логическая концепция, которая , однако, подразумевает конфигурацию семи физических параметров.
Так вот аспект, фактически, будет описывать те «кнопки» которые должны быть нажаты. На примере индексированного представления: сказал – хочу представление, тогда аспект должен будет хранить модель описания того, какие настройки (ограничения) должны быть выполнены.
Набор свойств, встроенных в аспект управления, может изменяться только автором. К одной цели может быть применено несколько аспектов. Один тип целей (или целевой тип) может устанавливать несколько аспектов управления ( т.е. типов «реагирования» или поведения) и, с другой стороны, аспект управления может быть установлен несколькими типами целей.
Т.е по сути, у аспекта есть несколько свойств. Пример: сервисная запись SQL Server – ей свойственны параметры <имя пользователя> и <пароль>. Соответственно, есть смысл эти оба свойства использовать как часть одного аспекта.
Примеры аспектов, которые идут с СТР3

Условие Declarative Management Framework
Это просто логическое выражение, которое устанавливает набор разрешенных состояний цели по отношению к аспекту.

Политика Declarative Management Framework
Это условие и ожидаемое поведение. Пример: режим исполнения, фильтр целей и график. Политика может содержать только одно условие и может находиться во включенном или выключенном состоянии.

Группа политик Declarative Management Framework
Это определенная пользователем группа, которая должна помочь управлять политиками. Пользователь может определить политики в разные группы. Каждая политика в свою очередь может принадлежать только одной группе. «Хозяин» базы данных может решить, под какие группы подписаться (т.е какие из политик должны быть применимы к его базе). Соответственно, только те группы, на которые администратор подпишет базу, будут определять правила управления базой. Например: подпишется под политику, запрещающую создания таблиц с дополнительными полями – никто не сможет добавить поля. Все базы по умолчанию подписаны на группу Default.
Режим исполнения Declarative Management Framework
Описывает, как политика будет выполнена. Режимы спонтанного исполнения - Check и Configure. Режимы «автоматизированного исполнения» Check on Schedule, Check on Changes и Enforce.
Эффективная политика
Эффективные политики цели – это политики, которые применены к цели и управляют ею в данный момент. Политика только тогда может быть эффективной по отношению к цели, если:
- Политика «включена».
- Цель принадлежит группе целей, которым эта политика «предписана».
- Цель или предок цели (речь идет о иерархии ж ведь) подписан под группу политик, куда данная политика входит