>> Hey friends. When you have
one or two virtual machines in Azure,
it's not that complicated to tweak settings,
but what do you do when you have to manage
many thousands of VMs for
your company and it's you that has to make the changes?
Michael Greene is here to save the day with
a new Azure VM state configuration experience
today on Azure Friday.
Hey friends, I'm Scott Hanselman and it's
another episode of Azure Friday.
I'm here with Michael Greene
and he's going to talk to me about
Azure State Configuration experience. How are you sir?
>> I'm doing great. How are you?
>> Very good. I'm excited because I've
got not just one VM anymore,
I'm now managing a few dozen.
It's becoming a little overwhelming and I
understand that you have a solution for me.
>> That's right. So, imagine
you deployed that VM and it's
funny that one of the first things you'll do
is go remote desktop into it.
"Wow! I've got a real server
here running in the cloud that's amazing."
>> Yeah.
>> Then you start point and
clicking and going through it,
and you're effectively randomizing
that VM with every change.
So, what we're introducing,
this capability has been there for a while,
but the customer feedback has been,
it's possible to configure that server using code,
but the learning experience of that is a little daunting.
>> It is.
>> Could you make it easier for us to go through and say,
"Let's manage the configuration of
this server in a way that doesn't
randomize it through point and click methods,
and can you help me learn that using
tools and experiences that are more familiar to me?"
So, we're taking that
PowerShell Desired State Configuration experience
and actually exposing that in
the portal from the virtual machine experience.
>> Nice.
>> So that you can go in and configure
settings inside your VM right from here.
>> That desired state is so important because it's
not necessarily a program that you're running,
it's a desired state.
Like I wish it to be like this.
>> That's right.
>> Do it n times.
>> Yes. So we want to start with a single VM,
and then I'm going to show you how we multiply
that many times over and manage thousands of VMs.
>> Impress me.
>> All right. So, you'll
notice if you scroll down on the table of contents,
when you're looking at a new virtual machine,
that we now have this section of "Operations".
You can do anything you want to manage
this VM right from the VM blade.
You can do patch management,
you can do inventory,
you can look at change tracking
like how it's changed over time.
What we're adding to the list is state configuration.
>> That is interesting because you made that
comment kind of as a throwaway,
we're in the VM blade.
Where you're in the blade I'm already in.
>> That's right.
>> I didn't go find
a state configuration thing under all resources.
It's already there in the place I already am.
>> You got it. You got it exactly.
So, we'll have an onboarding experience that will be
identical for any of those services.
You're going to go in and hit
"Set desired configuration".
>> Okay.
>> I'm going to choose "Compose configuration".
>> I see. So you can compose it
of multiple configurations like
add them together and that composite
that is the expression of what you want.
>> Exactly. As a matter of fact,
in the DSC terms as a developer,
these are actually referred
to as composite configuration,
so you've got that perfect.
If I scroll down, you'll see we've got quite a few here,
and you can actually import
custom composite resources here as well.
So, if you own this experience and you want
your developers to maybe always
have the same predictable outcomes,
you can add to this list and
they can point and click through it.
So, let's say really quickly that we want to pick one.
Let's go with "Computer rename".
So, we've named this server,
server zero inside of the service,
but when that VM stands up,
the operating system is going to
name it whatever it feels like.
>> Right.
>> So, let's go through.
Now the key for this is that, let me give it a name.
The key for this is we want this to be a learning tool,
so that when we hit "Next",
the first thing we're going to see is
the PowerShell "Source code" that we would
actually run if we wanted to make it
so on any machine, it doesn't have to be.
>> That pretty cool because you went directly from
basics to source code and now you're looking at this.
So, you're already being enabled
to go and apply this to other things, right?
>> Yes. The DSC community would tell me, "Oh Michael,
you're skipping over running script analyzer
and doing unit tests," and
that's where we want to end up.
But first, we're going to avoid
the whole empty blank editor syndrome
where we don't know what to type,
and we're going to show people an example
based on what they've done
in a point and click experience.
>> You're setting them up for success.
>> You got it. So when I get to "Parameters",
I'm just going to type in server
zero as the computer name,
and you can see I've got the little arrow here
that points exactly what I need to do.
Now, if I was doing this developer,
again I would have to go through and
compile it and I assign it to the service.
I'm just going to hit "Save and Assign".
>> I assume that I could then take that and build and
have it be whatever server I name.
I could pull from a list, it could be the seven dwarves.
>> Sure.
>> I can name these however I want.
>> That's right, and actually you could
expand this out and look at many other settings.
>> Because I switch over and look at
server one, it's already deployed,
and you'll see this guy has already
had the configuration compiled.
It's already onboard in the service and I'm
getting status information about it.
So, from here I can see exactly where it's at in Azure,
I can see what's it's been assigned to it.
>> But let's go up and look at "Reports",
and this is what you were talking about earlier.
I actually want to know over
time how does this machine been looking.
So, in this case it's just the computer name,
but imagine we're looking at something more
interesting like password policy.
I want to know and be able to prove over
time that yes it's been consistent,
and maybe has [inaudible] hundred settings. That's right exactly.
Then if I look at the "Quickstart" just for reference,
if you do get lost we've got links on here where
you can go in and explore and find more information.
>> So you've got building blocks in
the gallery and all the kind of things.
>> Yes.
>> That really is leading them down a path to success.
>> Perfect. Yeah. It's all about
education and understanding how to discover this process.
So, we talked earlier about going from one machine
to thousands of machines. Let's switch over.
Now I've only got four, so I don't
quite have on the scale of thousands yet.
But just to prove the point,
we actually made a major change to the way that you use
Azure automation DSC in
this new state configuration view.
We want you to be able to find
the information that you need with just a few clicks.
So, here you'll see if you've got thousands of machines,
and we do have customers with thousands of machines,
this will actually become a page view,
and you can filter it to
find exactly what you're looking for.
>> Okay.
>> So if I want to know exactly which of
those machines have fallen out of compliance,
I can filter that just using this little doughnut here.
>> So it's a small thing but
you've already impressed me because I was
expecting you to go and use
the dropdowns which you could do.
>> Yes we can.
>>But in fact, the doughnut
there and all that is live as well.
>> That's right.
>> That's a great way to filter things
down to see exactly what you need.
>> The other thing we've found
from talking to customers is
sometimes they want to look at
one server and relate to others.
So, I can right click on these and find where
the same configuration is being applied multiple times.
I can go find other notes with the same information.
Then this one's really neat.
If I go on and do an "Edits custom",
I see this blade flies in,
and I can do all sorts of interesting things here.
I can look at multiple configurations and the view,
I can look where there's no Node configuration
assigned and all kinds of interesting things.
>> Base them on existing ones.
So if you have something that is
as successful complying configuration,
you can base a new one on that and go from there.
>> You got it. So that's the whole point.
So if I go into "Configurations",
let's take a look at something like Firewall.
I can go in and view the source of
all of the configurations from here.
>> Okay.
>> Maybe somebody else has published
this type of information in my accounts,
I can go and learn from that as well.
The one thing I would say that will
accelerate learning the most,
let's go to "Gallery",
and you'll see we've got over
50 community contributed configurations in here.
So, anybody can go put these in the PowerShell gallery,
and some of these are actually really well developed.
I think you'll like this one.
>> A man after my own heart,
ASP.NET Core on Windows Server.
>> You got.
>> The thing I like about this is you've got the graphs,
you've got the nice clickable UI,
but you're not hiding source code.
You're allowing me to learn at my speed but in
no place were you trying to hide what's really happening.
>> That's right.
>> Even here in the "Gallery" right off the bat,
I can see that there's
a script there that I can go and learn.
>> Yeah. So in here, this would go in and you can take
your time and go through this in more detail
but you'll find it will enable IIS,
it will install that.Net Core.
What we hope you'll do is import this,
and then actually transfer
this to your own source control.
There you can start integrating tests and you
can release changes safely in the production.
It's really a full CI/CD process
enabled through this technology.
>> This is pretty slick. Now, is this in preview,
is this something I already have?
>> Yes.
So the way that you'll get to the onboarding experience
for a new VM is preview,
and you'll see that in your table of contents.
When you go to "Azure automation DSC",
you'll see a banner across the top.
>> Okay.
>> When you click on that,
it will help you to enable that a new experience,
and then you can start using it right away.
We really would love to hear feedback information either
via user voice or you can hit us up
on Twitter using the #PSDSC.
>> Okay. PSDSC, PowerShell Desired State,
and there's real humans behind this.
When we say we want your feedback, this is not a joke.
>> That's right.
>> You're probably going to look
at that feedback yourself.
>> That's right, and we're going to take this
a lot further than what you're seeing today.
So, this is just the preview,
and hopefully we can come back and
we'll look at some additional technologies in
the future that will continue
extending this compliance type approach.
>> Fantastic, whether it be one virtual machine
or thousands,
Azure State Configuration can do it and I'm learning
all about it today on Azure Friday.