Какой инструмент / технология: Управление системой для баз данных и зависимых сервисов
Продолжение по этому вопросу управления системой:
Поскольку я, вероятно, не получу много отзывов о сбое сервера, я попробую здесь.
Моя главная задача - отразить зависимости между базами данных, службами и задачами / заданиями, которыми мне придется управлять.
Помимо рассмотрения Powershell, я даже подумывал об использовании MSBuild, потому что он позволит моделировать зависимости и повторно использовать цели конфигурации.
Другими словами: какую технологию я должен использовать для разработки гибкого решения, которое позволит мне останавливать службы A, B и C на машине D в правильном порядке и отключать задачу E на машине F при удалении базы данных X?
... и я хотел бы повторно использовать часть для остановки службы B и C при удалении базы данных Y.
1 ответ
Если вы знакомы с PowerShell и хотите работать с зависимостями, попробуйте psake. На что это похоже:
psake script.ps1:-------
properties {
$dbServer = 'sqlexpress'
...
}
task default -depend StopServer1, StopServer2
task StopS1 -depend MakeS1Backup, StopSqlServer1 {
...
}
task MakeS1Backup {
... make backup
}
task StopSqlServer1 {
stop-service ...
}
# and anything similar to StopServer2
Тогда вы можете назвать это так (есть еще варианты):
Invoke-Psake script.ps1
#or
Invoke-Psake script.ps1 -task StopS1 #calls only StopS1 task and all other scripts it depends on
#or
Invoke-Psake script.ps1 -task MakeS1Backup #only backups S1, it doesn't depend on anything else
Что он делает - он останавливает сервер 1 (задача StopS1) и до этого обрабатывает все задачи, от которых зависит StopS1. Поэтому перед остановкой S1 выполняется резервное копирование S1, сервер Sql 1 останавливается и так далее.
Мне она нравится намного лучше, чем конфигурация msbuild, которая очень многословна и безобразна (хотя и очень мощна).