1
00:00:00,000 --> 00:00:07,000
Hello there. Here we are at Microsoft TechEd IT Forum 2007 in Barcelona, Spain.

2
00:00:07,000 --> 00:00:11,000
And we've got a nice guest here. We're going to talk about some exciting stuff.

3
00:00:11,000 --> 00:00:13,000
Would you like to introduce yourself?

4
00:00:13,000 --> 00:00:18,000
Sure. I'm Barry Shilmover. I'm a Senior Program Manager in the System Center Operations Manager group.

5
00:00:18,000 --> 00:00:21,000
First off, for people who don't know, what is that group?

6
00:00:21,000 --> 00:00:24,000
What do you guys do if we start at the top and eat our way down?

7
00:00:24,000 --> 00:00:26,000
It's the group that owns Operations Manager.

8
00:00:26,000 --> 00:00:30,000
So it's the group that designs it, develops it, and checks the product tests it.

9
00:00:30,000 --> 00:00:32,000
So you're sort of in the development wing of things.

10
00:00:32,000 --> 00:00:34,000
I'm more on the program management side.

11
00:00:34,000 --> 00:00:39,000
More on the specifications of what the product will do rather than the actual code behind it.

12
00:00:39,000 --> 00:00:41,000
And then Operations Manager was formerly called MOM, right?

13
00:00:41,000 --> 00:00:42,000
Correct.

14
00:00:42,000 --> 00:00:43,000
Microsoft Operations Manager.

15
00:00:43,000 --> 00:00:45,000
Now it's System Center Operations Manager.

16
00:00:45,000 --> 00:00:49,000
The thing we were going to talk about was there's this component, and correct me if I'm wrong,

17
00:00:49,000 --> 00:00:52,000
in the Operations Manager world called Manager Impact.

18
00:00:52,000 --> 00:00:53,000
Correct.

19
00:00:53,000 --> 00:00:55,000
That are basically a way of extending the functionality of operating.

20
00:00:55,000 --> 00:00:56,000
Right.

21
00:00:56,000 --> 00:00:58,000
So you can think of Operations Manager as a platform.

22
00:00:58,000 --> 00:00:59,000
Right.

23
00:00:59,000 --> 00:01:02,000
Without the Management Packs, the platform really does nothing.

24
00:01:02,000 --> 00:01:03,000
It doesn't know how to discover SQL.

25
00:01:03,000 --> 00:01:04,000
It doesn't know how to discover Windows.

26
00:01:04,000 --> 00:01:09,000
Adding the Management Packs allows customers to start discovering other things.

27
00:01:09,000 --> 00:01:15,000
Because it's a platform, the technology and the tools that are used to build Management Packs by us,

28
00:01:15,000 --> 00:01:17,000
are available to our partners and our customers.

29
00:01:17,000 --> 00:01:18,000
Right.

30
00:01:18,000 --> 00:01:27,000
So partners can build Management Packs for things that we do not ship, like other databases or other operating system or other web server technologies.

31
00:01:27,000 --> 00:01:32,000
Also, customers that have custom applications can actually use those tools because they're writing the product.

32
00:01:32,000 --> 00:01:35,000
And the ones that are external are readily available.

33
00:01:35,000 --> 00:01:38,000
They can build Management Packs for their own custom built applications.

34
00:01:38,000 --> 00:01:39,000
Right.

35
00:01:39,000 --> 00:01:43,000
So if I build one that is a customer and an ingrown application, I can just simply go and write a Management Packs.

36
00:01:43,000 --> 00:01:46,000
How many Management Packs do you say are written outside of Microsoft?

37
00:01:46,000 --> 00:01:53,000
I know that for MOM 2005, I'm not sure what the numbers are, for 2007, we had well over 200 Management Packs.

38
00:01:53,000 --> 00:01:54,000
Right.

39
00:01:54,000 --> 00:01:56,000
Probably about 50 of those were Microsoft Management Packs.

40
00:01:56,000 --> 00:02:00,000
So there's quite a large number of third-party Management Packs up there.

41
00:02:00,000 --> 00:02:01,000
Right.

42
00:02:01,000 --> 00:02:04,000
They cover pretty much everything that the customer would have in their self.

43
00:02:04,000 --> 00:02:07,000
What we do is we build Management Packs for our applications.

44
00:02:07,000 --> 00:02:08,000
Yes.

45
00:02:08,000 --> 00:02:09,000
So SQL, Exchange, IAM.

46
00:02:09,000 --> 00:02:12,000
And those are readily available and they're shipped with the product.

47
00:02:12,000 --> 00:02:17,000
Plus we have a catalog online for customers to actually go and search for the specific management

48
00:02:17,000 --> 00:02:18,000
that they care about.

49
00:02:18,000 --> 00:02:22,000
And they'll link them either to the Microsoft ones if they're available or to the third-party

50
00:02:22,000 --> 00:02:23,000
websites.

51
00:02:23,000 --> 00:02:24,000
So let's say I had to build a Management Pack.

52
00:02:24,000 --> 00:02:25,000
Okay.

53
00:02:25,000 --> 00:02:26,000
What are the different components of it?

54
00:02:26,000 --> 00:02:29,000
So really a Management Pack is built up of two major components.

55
00:02:29,000 --> 00:02:32,000
There's a discovery component and then there's the monitoring.

56
00:02:32,000 --> 00:02:36,000
They're built, it's an XML document.

57
00:02:36,000 --> 00:02:41,000
You can build it using the Operations Manager Operations Console.

58
00:02:41,000 --> 00:02:47,000
You can also use, right now we've released, I believe it's an RC build which is the Offering

59
00:02:47,000 --> 00:02:48,000
Console.

60
00:02:48,000 --> 00:02:50,000
Or you can just use a plain XML editor.

61
00:02:50,000 --> 00:02:51,000
Like Notepad.

62
00:02:51,000 --> 00:02:52,000
Notepad.

63
00:02:52,000 --> 00:02:53,000
The favorite thing of the keynote.

64
00:02:53,000 --> 00:02:54,000
Right.

65
00:02:54,000 --> 00:02:55,000
Or even Visual Studio.

66
00:02:55,000 --> 00:02:56,000
Right, right.

67
00:02:56,000 --> 00:03:01,000
So you simply, the discovery part will just tell Operations Manager and the agents how

68
00:03:01,000 --> 00:03:04,000
to discover whatever you're trying to monitor.

69
00:03:04,000 --> 00:03:08,000
So if you're trying to monitor an application, how do I find the application, whether the application

70
00:03:08,000 --> 00:03:10,000
is installed, and what version is installed.

71
00:03:10,000 --> 00:03:16,000
If I'm looking at a device, you know, like I'm trying to discover a specific piece of hardware,

72
00:03:16,000 --> 00:03:20,000
how does I find out whether or not that piece of hardware is in the system.

73
00:03:20,000 --> 00:03:21,000
And it can be done in multiple ways.

74
00:03:21,000 --> 00:03:22,000
Right.

75
00:03:22,000 --> 00:03:23,000
I can look at specific files in the file system.

76
00:03:23,000 --> 00:03:25,000
I can look in the registry.

77
00:03:25,000 --> 00:03:29,000
I can write pretty much any script, whether it's a VV script or whatever, to actually go

78
00:03:29,000 --> 00:03:32,000
out there and try to discover that component.

79
00:03:32,000 --> 00:03:36,000
And once I discover it, I'll create an instance of that component.

80
00:03:36,000 --> 00:03:39,000
And I can associate properties and populate those properties during discovery.

81
00:03:39,000 --> 00:03:40,000
Right.

82
00:03:40,000 --> 00:03:44,000
Once I've done discovery, it goes to the second part, which is made up of smaller parts.

83
00:03:44,000 --> 00:03:47,000
It includes things like monitors.

84
00:03:47,000 --> 00:03:52,000
So actually, it's trying to get the health of the specific object I'm looking for.

85
00:03:52,000 --> 00:03:56,000
And within the monitor, it'll let me know what the different health states are, whether

86
00:03:56,000 --> 00:03:59,000
it's healthy or unhealthy, whether it's unmonitored.

87
00:03:59,000 --> 00:04:03,000
And then on top of that, one of the things that I can do is I can then generate alerts.

88
00:04:03,000 --> 00:04:08,000
The alerts will be tied back to the monitors and an alert will be thrown should the monitor

89
00:04:08,000 --> 00:04:10,000
switch its state.

90
00:04:10,000 --> 00:04:13,000
And I can also add knowledge to it, which is really the strength of operations managers,

91
00:04:13,000 --> 00:04:15,000
the embedded knowledge.

92
00:04:15,000 --> 00:04:18,000
Within that knowledge, I can say, here's what I found.

93
00:04:18,000 --> 00:04:19,000
Here's the problem.

94
00:04:19,000 --> 00:04:21,000
Here's what might have caused the problem.

95
00:04:21,000 --> 00:04:23,000
And here's some potential resolutions.

96
00:04:23,000 --> 00:04:26,000
And link to web pages on Microsoft.com or third parties.

97
00:04:26,000 --> 00:04:32,000
And so for SQL MPs, for example, they'll tell you to go to www.microsoft.com/sql.

98
00:04:32,000 --> 00:04:35,000
The other things that I can do with it, I can do things like tasks.

99
00:04:35,000 --> 00:04:38,000
So actually perform tasks on those objects.

100
00:04:38,000 --> 00:04:43,000
Looking at the SQL example, if the SQL database is taken offline, within the knowledge there'll

101
00:04:43,000 --> 00:04:47,000
be a link that I just simply click on, which will bring that database back online.

102
00:04:47,000 --> 00:04:49,000
I'd have to know what object it is.

103
00:04:49,000 --> 00:04:53,000
I don't have to have the permissions because the permissions are embedded within operations.

104
00:04:53,000 --> 00:04:57,000
Beyond that, I've got things like diagnostic and recovery tasks.

105
00:04:57,000 --> 00:05:04,000
So diagnostics will actually go out and get information for me after it detects the problem.

106
00:05:04,000 --> 00:05:05,000
Recovery will actually try to fix it.

107
00:05:05,000 --> 00:05:06,000
Right.

108
00:05:06,000 --> 00:05:07,000
So there's lots of things like that.

109
00:05:07,000 --> 00:05:10,000
There's different types of tasks.

110
00:05:10,000 --> 00:05:12,000
But in a nutshell, that's really what imagined that thing.

111
00:05:12,000 --> 00:05:13,000
Right.

112
00:05:13,000 --> 00:05:18,000
It sounds like there's discovery which finds instances and then you model, I always call

113
00:05:18,000 --> 00:05:20,000
them parameters, but you model the different metrics, right?

114
00:05:20,000 --> 00:05:21,000
Correct.

115
00:05:21,000 --> 00:05:24,000
And then the metrics have thresholds or alarms that if they go out of that state, something

116
00:05:24,000 --> 00:05:25,000
happens.

117
00:05:25,000 --> 00:05:26,000
Correct.

118
00:05:26,000 --> 00:05:27,000
So you can attach diagnostics to it.

119
00:05:27,000 --> 00:05:32,000
And if an alarm goes wrong and hopefully you can run a recovery or manually you can run

120
00:05:32,000 --> 00:05:33,000
a task or something.

121
00:05:33,000 --> 00:05:34,000
That's right.

122
00:05:34,000 --> 00:05:36,000
What's kind of the model that runs through all of that?

123
00:05:36,000 --> 00:05:41,000
And for example, I mean, in other worlds, in other worlds, in other management models,

124
00:05:41,000 --> 00:05:43,000
you know, there's the idea of the generic thing you're monitoring.

125
00:05:43,000 --> 00:05:45,000
And then kind of like you're saying there's an instance of that thing.

126
00:05:45,000 --> 00:05:46,000
Yes.

127
00:05:46,000 --> 00:05:48,000
And then, you know, just so forth and so on down, a hierarchy of things.

128
00:05:48,000 --> 00:05:49,000
Yeah.

129
00:05:49,000 --> 00:05:50,000
So we can build relationships within that.

130
00:05:50,000 --> 00:05:51,000
Right.

131
00:05:51,000 --> 00:05:54,000
So if you look at SQL, SQL is not just a database.

132
00:05:54,000 --> 00:05:57,000
It's got services and components that make up that database.

133
00:05:57,000 --> 00:05:58,000
Right.

134
00:05:58,000 --> 00:05:59,000
So there's a database engine.

135
00:05:59,000 --> 00:06:01,000
That database engine then hosts multiple databases.

136
00:06:01,000 --> 00:06:02,000
Sure.

137
00:06:02,000 --> 00:06:05,000
So all the discovery and the relationship is all in the discovery model.

138
00:06:05,000 --> 00:06:09,000
So when I discover all the instances, I also discover the relationships to other instances

139
00:06:09,000 --> 00:06:12,000
and other objects.

140
00:06:12,000 --> 00:06:17,000
And all of that is modeled on something we call the service definition model or SDM.

141
00:06:17,000 --> 00:06:22,000
And we've taken SDM and we're working with a working group called the service monitoring

142
00:06:22,000 --> 00:06:26,000
language, the service monitoring language for SML or SML.

143
00:06:26,000 --> 00:06:27,000
Right.

144
00:06:27,000 --> 00:06:32,000
So we've actually donated the SDM version 3 to that working group as a basis for SML.

145
00:06:32,000 --> 00:06:33,000
Right.

146
00:06:33,000 --> 00:06:36,000
So all of our management patterns are built on that model.

147
00:06:36,000 --> 00:06:41,000
And the idea is that moving forward, as more and more people build models based on that,

148
00:06:41,000 --> 00:06:43,000
we'll just be able to consume that.

149
00:06:43,000 --> 00:06:44,000
Right.

150
00:06:44,000 --> 00:06:45,000
So let's say we're using the database example.

151
00:06:45,000 --> 00:06:46,000
Right.

152
00:06:46,000 --> 00:06:48,000
Let's say we've discovered some things in our database.

153
00:06:48,000 --> 00:06:51,000
But there's some other way of discovering code or a task that we need to run.

154
00:06:51,000 --> 00:06:52,000
Then we have to write some custom code.

155
00:06:52,000 --> 00:06:53,000
Right.

156
00:06:53,000 --> 00:06:56,000
Something that just isn't out of the box that we can't express in SML.

157
00:06:56,000 --> 00:06:57,000
So, I mean, how would we go about doing that?

158
00:06:57,000 --> 00:07:01,000
So you can pretty much, if you can write scripts.

159
00:07:01,000 --> 00:07:02,000
Right.

160
00:07:02,000 --> 00:07:03,000
Right.

161
00:07:03,000 --> 00:07:07,000
We have API interfaces back into operations management.

162
00:07:07,000 --> 00:07:13,000
So you can simply run a script on the management server or on the agent monitoring server.

163
00:07:13,000 --> 00:07:14,000
Right.

164
00:07:14,000 --> 00:07:18,000
And then the output that you get, you simply convert to XML.

165
00:07:18,000 --> 00:07:23,000
And then once you convert it to XML, you can just have operations managers consume it,

166
00:07:23,000 --> 00:07:25,000
because it understands the model that we're giving you.

167
00:07:25,000 --> 00:07:26,000
Right.

168
00:07:26,000 --> 00:07:30,000
So, I mean, the simplest one, if you look at some of the samples that we've built,

169
00:07:30,000 --> 00:07:35,000
we were able to just take a file system, a directory with multiple files in it,

170
00:07:35,000 --> 00:07:38,000
and by discovering the names of the files and the objects within the files,

171
00:07:38,000 --> 00:07:40,000
the lines within the files, we could create objects.

172
00:07:40,000 --> 00:07:41,000
Right.

173
00:07:41,000 --> 00:07:43,000
And you could create a hierarchy of discovered things.

174
00:07:43,000 --> 00:07:46,000
You could create different levels and, you know, going across and up and down.

175
00:07:46,000 --> 00:07:49,000
So, pretty much if you can write a script to discover it, you can discover it.

176
00:07:49,000 --> 00:07:52,000
It sounds like you can shell out, if you will, or go to some script,

177
00:07:52,000 --> 00:07:56,000
and you just build up the model that you pass back, the SDML model or whatever.

178
00:07:56,000 --> 00:07:57,000
SDML.

179
00:07:57,000 --> 00:07:58,000
The SDM model.

180
00:07:58,000 --> 00:08:00,000
I'm throwing an extra L in there, right?

181
00:08:00,000 --> 00:08:01,000
That's okay.

182
00:08:01,000 --> 00:08:04,000
You build up the SDM model and you just pass it back to the discovery component of the management

183
00:08:04,000 --> 00:08:05,000
attack.

184
00:08:05,000 --> 00:08:06,000
Right.

185
00:08:06,000 --> 00:08:07,000
And then it takes off from there.

186
00:08:07,000 --> 00:08:08,000
Yep.

187
00:08:08,000 --> 00:08:09,000
And it just creates the object in the database.

188
00:08:09,000 --> 00:08:10,000
Right.

189
00:08:10,000 --> 00:08:11,000
It creates a relationship.

190
00:08:11,000 --> 00:08:14,000
So, your script will actually build all of those relationships.

191
00:08:14,000 --> 00:08:15,000
You're building these packs.

192
00:08:15,000 --> 00:08:17,000
I mean, one of the challenges of management is always scaling it up, right?

193
00:08:17,000 --> 00:08:18,000
Right.

194
00:08:18,000 --> 00:08:22,000
And are there, I mean, are there sort of guidance or tools in there to help you scaling things

195
00:08:22,000 --> 00:08:26,000
up so that you don't, you know, discover 10,000 elements at once and try to pass them all

196
00:08:26,000 --> 00:08:27,000
back to, or things at once?

197
00:08:27,000 --> 00:08:28,000
I don't know if there's anything like that.

198
00:08:28,000 --> 00:08:29,000
Okay.

199
00:08:29,000 --> 00:08:30,000
Okay.

200
00:08:30,000 --> 00:08:31,000
Built into the product right now.

201
00:08:31,000 --> 00:08:33,000
The author and console, I don't believe, has that.

202
00:08:33,000 --> 00:08:38,000
I believe that there are some documents out there to tell you about sizing for ops managers.

203
00:08:38,000 --> 00:08:39,000
Right.

204
00:08:39,000 --> 00:08:40,000
But I'm not sure about the management pack.

205
00:08:40,000 --> 00:08:46,000
So, once we have the management pack built, how do you package it up and deploy it?

206
00:08:46,000 --> 00:08:47,000
Yeah.

207
00:08:47,000 --> 00:08:50,000
So, when you build the management pack, really, management packs come in one of two ways.

208
00:08:50,000 --> 00:08:53,000
Either just signed or unsigned.

209
00:08:53,000 --> 00:08:54,000
Right.

210
00:08:54,000 --> 00:08:55,000
So, it's sealed or unsealed.

211
00:08:55,000 --> 00:09:00,000
And the difference is, sealed is a binary form of ops.

212
00:09:00,000 --> 00:09:01,000
Okay.

213
00:09:01,000 --> 00:09:05,000
And it really, what it does is it tells operations managers, this is a management pack that you

214
00:09:05,000 --> 00:09:06,000
shouldn't change.

215
00:09:06,000 --> 00:09:07,000
Right.

216
00:09:07,000 --> 00:09:11,000
So, if I build a management pack and then I give it to my administrators to use, I don't

217
00:09:11,000 --> 00:09:14,000
necessarily want them to go and edit the management.

218
00:09:14,000 --> 00:09:15,000
So, I seal it.

219
00:09:15,000 --> 00:09:20,000
But to get my management, once I build it in operations manager, if I do it in the admin

220
00:09:20,000 --> 00:09:24,000
console, I simply export it out and it exports an XML file.

221
00:09:24,000 --> 00:09:25,000
Right.

222
00:09:25,000 --> 00:09:27,000
I can then edit it with an XML editor.

223
00:09:27,000 --> 00:09:28,000
Okay.

224
00:09:28,000 --> 00:09:33,000
Or I can use the author and console to bring it in and add more information to it, more

225
00:09:33,000 --> 00:09:34,000
null.

226
00:09:34,000 --> 00:09:35,000
Right.

227
00:09:35,000 --> 00:09:37,000
And then once I've done that, I've got that XML file.

228
00:09:37,000 --> 00:09:41,000
There is a little program that ships with the product called MpSeal.

229
00:09:41,000 --> 00:09:44,000
And it just seals that management pack.

230
00:09:44,000 --> 00:09:50,000
It creates an XML file, it's a .mp file, which can then be imported by operations.

231
00:09:50,000 --> 00:09:53,000
And does that suck in the custom DLLs and things like that?

232
00:09:53,000 --> 00:09:54,000
No.

233
00:09:54,000 --> 00:09:57,000
So, if you've got custom DLLs, you'd have to build an installer around it that will install

234
00:09:57,000 --> 00:09:58,000
the DLL.

235
00:09:58,000 --> 00:09:59,000
Right.

236
00:09:59,000 --> 00:10:02,000
But you could have a headless installer that you can install whatever to install this.

237
00:10:02,000 --> 00:10:03,000
That's a lot of hassle.

238
00:10:03,000 --> 00:10:04,000
Yeah.

239
00:10:04,000 --> 00:10:05,000
Right.

240
00:10:05,000 --> 00:10:06,000
So once you upload it into operations manager, right?

241
00:10:06,000 --> 00:10:08,000
Operations manager takes care of sending it out to all the agents.

242
00:10:08,000 --> 00:10:11,000
What it will do is it will take the discovery and it will push the discovery out to all the

243
00:10:11,000 --> 00:10:12,000
agents.

244
00:10:12,000 --> 00:10:13,000
Right.

245
00:10:13,000 --> 00:10:14,000
The agents on the network will then run the discovery.

246
00:10:14,000 --> 00:10:16,000
And if they find instances, they'll start monitoring those instances.

247
00:10:16,000 --> 00:10:17,000
If they don't find instances, they won't.

248
00:10:17,000 --> 00:10:18,000
Right.

249
00:10:18,000 --> 00:10:19,000
Nothing to monitor, right?

250
00:10:19,000 --> 00:10:20,000
Right.

251
00:10:20,000 --> 00:10:24,000
But they will continue to run the discovery on a regular basis in case you install that

252
00:10:24,000 --> 00:10:25,000
application on a later date.

253
00:10:25,000 --> 00:10:26,000
Right.

254
00:10:26,000 --> 00:10:27,000
It just automatically discovers it.

255
00:10:27,000 --> 00:10:31,000
So if you install SQL on a brand new server that's never had SQL before, SQL just appears.

256
00:10:31,000 --> 00:10:32,000
Right.

257
00:10:32,000 --> 00:10:33,000
So we've got our management pack.

258
00:10:33,000 --> 00:10:35,000
And does that work all up and down?

259
00:10:35,000 --> 00:10:38,000
The systems manager, like in Essentials and Operations manager?

260
00:10:38,000 --> 00:10:43,000
It will work with Essentials and Operations manager because they do use the same core infrastructure.

261
00:10:43,000 --> 00:10:44,000
Right.

262
00:10:44,000 --> 00:10:45,000
For the monitoring center.

263
00:10:45,000 --> 00:10:48,000
But it's just those two products that handle the manager.

264
00:10:48,000 --> 00:10:49,000
Thanks a lot.

265
00:10:49,000 --> 00:10:51,000
That sounds like an exciting tour of management packs by me.

266
00:10:51,000 --> 00:10:52,000
It is.

267
00:10:52,000 --> 00:10:53,000
It is.

268
00:10:53,000 --> 00:10:54,000
Thanks.

269
00:10:54,000 --> 00:10:54,000
You bet.
