在微软私有云解决方案里,System Center是重要一环。System Center的各大组件相似于三权分立:SCSM是立法和审判机构(服务请求与审核),SCOM是监察机构(监控数据中心的性能和事件),而Orchestrator则是执法机构(负责驱动底层的组件)。html
在盆盆录制的这段视频里,描述了这样一段场景,分布式应用的Web前端过载时,会触发runbook新建变动请求;领导批准后,会触发另外一个runbook,或者新建结点以横向扩展/或者启动池中可用的节点,以应对业务系统访问量暴涨。前端
其中最关键的地方就是Orchestrator的Runbook,它能够根据SCOM监控的性能警报自动执行复杂的操做,如下是视频中所示的runbook。ios
因为视频里所示的demo相对复杂,须要引入SCSM,因此该runbook中的初始化数据和更新RB活动这两个Activity都和SCSM有关。shell
为方便描述,咱们将该runbook略做修改,如附图所示:分布式
该runbook能够实现的功能以下:ide
这里着重描述几个关键的Activity(括号内是来自VMM IP中的实际Activity Name): 性能
获取Web层信息(Get Tier) 编码
根据Member VM Instance Names来倒推计算机层的名称,如附图所示:spa
其中的Value采用了Orchestrator独特的所谓databus的技术,咱们能够右键单击,选择订阅前几个Activity所发布的数据。在活动一栏,选择第一个Activity(监控Web前端报警),而后选择其所发布的数据NetbiosComputerName。这代表咱们根据SCOM警报中显示的源计算机的名称,来查询其计算机层的名称。这样咱们就无需在runbook里采用硬编码,而根据前面Activity发布的动态数据做为变量,十分方便。3d
Web层有否未启动VM(Get VM)
查到该虚机所在Web层名称,就能够查询该计算机层中是否有未启动的虚机。
查询参数有两个:Comuter Tier和Status,表示所在的计算机层和运行状态。返回同时知足这两个条件的虚机。
其中Computer Tier的值能够订阅前一个Activity(获取Web层信息)发布在Databus上的数据(Tier Name)。
Status的值能够选择正在运行(注意中文版的VMM,必须输入正在运行,英文版的话,应该选择running)。
判断分支
若是实现后续的判断分支?咱们无需编写代码(尽管runbook能够直接使用powershell或者代码)。咱们别小看活动之间的链接线(smart link),这些链接线也能够进行自定义!
例如当Web层有否未启动VM返回空值时(下方的分支),咱们将链接线的属性值配置为返回对象数等于0。
在包括部分,单击添加,而后设置已发布数据为Number of Objects。
设置条件表达式为等于。数据值能够填0。
同理设置上方的分支为Number of Objects大于0
发送电子邮件
Runbook执行成功后,会自动发送电子邮件,报告给指定的人员,告知哪台虚机发生性能问题,而且已经执行了解决措施。
更有意思的是,邮件正文里涉及到的故障主机,也能够订阅databus上的数据!