Welcome to Microsoft Mechanics.
Coming up on the show, we take a look at the latest updates from Microsoft's Remote Desktop Services.
From advances and graphics performance that improve the experience of GPU intensive apps.
To how to overcome the 9am log-on storm
with new enhancements to the connection broker for up to ten thousand concurrent log-ons.
And, keep watching as we show you how to automate your deployment in the cloud with Azure.
Microsoft Mechanics
So I'm joined today by Scott Manchester from the Remote Desktop Services Engineering Team
here at Microsoft, Scott welcome to the studio.
Thanks for having me on the show.
So, Microsoft has a lot going on in the remote desktop services for awhile, what's new?
Remote desktop services enables users
to access Windows, virtualized desktops, and applications from anywhere on any device.
We make client applications for Windows, Windows Phone, Android, iOS, and Mac.
If you're an IT admin you've probably deployed RDS on-prem
in your own data centers on your own hardware.
What I'm going to show you today is how we can now take those deployments to the cloud
and benefit from the elasticity, scalability, and cost modeling of using cloud deployments.
So for those people who may not have looked at remote desktop services for a while,
what have we actually got in the Windows Server 2016 release, which is really new?
So there's really three areas of improvements we had for 2016.
The first is around the graphics performance .
The second is around scalability.
And, third as I mentioned is optimizations for the cloud.
So let's talk about graphics performance.
What's new there?
One of the major enhancements we made with Server 2016
was the inclusion of new technology called Discrete Devices Assignment or DDA.
With DDA, we can physically map a GPU to a VM
and run the native graphics drivers.
So we have full app compatibility and all the performance of the GPU in the virtual machine.
So not only do you get the benefit with traditional applications like Office.
We can also run more GPU intensive applications now like Adobe Illustrator Petrell, or SolidWorks.
Let me show you an example.
So here in this VM, I've got DDA running.
You can see when I bring up device manager, there's actually physical GPU available in this VM.
In this case, it's an Nvidia Tesla M60.
This is one of two GPUs that's available on this physical card that it's this chassis.
And this chassis actually has two of these cards.
So there's a total of four GPUs in the physical hardware.
And I've used hypervisor to map one of those GPUs to this VM.
So now I'm running the native driver here
in this VM and get near bare metal performance.
Now I want to point out also the DDA is an open standard,
so we've worked closely with Nvidia but this is open to other device manufacturers as well.
So the first thing I want to show you is this E-docs viewer app from DeSo.
Here I've loaded up a 3d image of a jet engine.
So I'm actually going to start this rendering.
I'm going to rotate this engine around.
You an see as it's drawing, it's very smooth.
And you can see the very high detail you get with this.
But, I'm cheating a little bit.
So let's really tax this system here and let's turn on some of the effects.
Here you can see I've applied high surface visualization here with reflections.
You can see it's still rendering very smooth.
You can even make out some of the the background images in the reflections here.
And, I'm getting a really smooth experience here.
That's pretty incredible.
What would this look like in a virtual machine that wasn't running DDA?
That's a great question.
So this application like many CAD/CAM applications
have a dependency on OpenGL.
So let's do this, let's shut that down and let me switch over to a virtual machine that doesn't have a GPU.
So here in this machine I'm going to bring up device manager.
I'm going to show you that here there's no VM, right?
Let's load up that same image here.
So let's start the transition.
You can see even without the effects this thing runs really choppy.
The framerate is really poor.
This would be almost impossible for me to do any development or any kind of design work on this.
And if I turn on the visualizations here
you can see that they are not even able to reproduce the reflection properties
on the surface of this object.
So this would not work well for someone trying to do this high-end CAD/CAM work as a designer.
Yeah, that is a truly different experience.
What other things have we actually done inside of the improvements?
Yeah, let me switch back over to the GPU powered VM.
Let me show you another example here.
So, here I'm going to run a web page that uses WebGL.
And you can see the performance we get as it's doing all the animations here.
Very smooth, high frame rate so this works great.
That's pretty incredible.
I mean to get that level of fidelity inside of a VM is pretty amazing.
How much further can you go?
I want to show you another hypothetical example here.
This may not be your traditional enterprise type of deployment here.
But, I've got this really cool game engine sample by Unigine, here.
Let me run this and show you just the kind of performance that we can see with DDA.
So here I am in this 3D world
within this game engine here.
I'm going to pause this here for just a second
and show you just the level of detail we can see in this 3D world.
Now again this is all being rendered real-time and you can see we've got a number of different surfaces
and complex shapes that are all being created real time.
So you can see the level of detail in the grass
and the various textures on the various objects.
And, just to prove to you this is in real time, i'm going to take control of this game.
Bear with me again.
I'm not much of a gamer, my my kids call me a 'newb', so.
But, I'm going to fly up here.
We're going to look back down in our world.
You can see it's a pretty complex world
with lots of different shapes and lots of different textures.
I'm going to turn on the wireframe here.
You can actually see the amount of polygons were using to generate this world.
You can see we're really taxing this GPU.
But if you look in the upper right hand corner you can see we're still running at like 80 frames per second.
Even generating all this complex imagery here.
So, I'm going to zoom back down a little bit.
You can see as I get closer to these surfaces,
the number of polygons that this thing is drawing is just incredible.
And if I turn down the intensity of the polygons here
you can see the frame rate jumps up well over a hundred.
When I turn on all the additional textures and tessellations, it drops to around fifty.
One of the things I really want to point out here as we're looking at this image,
not only am I getting this really high performance
but, I'm getting this real crisp image that is being remoted back to me.
What we're using under the covers here is our new RDP 10.2 protocol.
So I'm actually encoding the images on the host or the vm
by using ABC 444.
Now with 44, I can get near pixel perfect representation
back at the client running a remote desktop client application.
And better yet as I'm using Hardware offload on the host
so I'm not taxing the CPU to do the encode.
And, I'm using Hardware offload on the client.
So, we get great performance on very little power consumption as well.
In fact I've got one more reveal for you, Simon.
We're actually running all of this demo that I've been showing you today
on a new Azure N-SKU.
So we have this kind of specialized hardware inside of our Azure data centers?
Yes, so this is in preview now.
But, coming around the end of the year you'll be able to run
production level workloads in the Azure N-SKU's.
That is absolutely incredible.
It seems great that we've got all this highly specialized hardware for this.
And, I think that some folks are actually wanting to get more density into their environment as well.
Have we done anything around that?
Yeah we've had a technology called Remote FX since 2008 r2.
Remote FX is a great technology from our high density workloads
like the line of business apps we mentioned earlier.
And we've given Remote FX some love in 2016 as well.
So we've added a number of performance improvements.
We've added support for Open GL 4.4 and Open CL 1.1.
And now you can assign up to a gigabyte of VRAM per VDI session.
So that covers us for graphics performance.
What about scalability?
Yeah that was another major investment area for us with 2016.
Our primary investment was around our connection broker.
The connection broker is really the engine of an RDS deployment.
It's responsible for maintaining state of all the users
and which sessions and VDI instances they're connected to.
What we see in some deployments are what we call log on storms.
Where you get this 9 a.m. monday morning scenario
where everybody's trying to connect at the same time.
That really taxes our connection broker
and can cause delays in people being able to connect.
So, what we've done is really focused in investments on our connection broker.
And, we've built out this simulation tool
that can really test the scalability of it and push it to its limits.
I'd like to show you a demo of this test tool and see how well it's performing now.
Yeah, lets take a look.
So here on my screen you can see we're just getting ready to launch this test case.
In this particular test case we've set up a thousand users
and a hundred session host servers.
Now we're going to have those first hundred users connect instantaneously.
So it's simulating all of them trying to connect at the same time.
And then we're going to have four users connecting every second after that.
Now just to make this even a little more complex,
after two minutes, we're going to start to see users disconnect.
So about midway through this, we're going to have users connecting and disconnecting at the same time.
And our connection broker is going to be responsible for maintaining state of all those connections.
So let's go ahead and start the simulation here.
So here we are actually a couple minutes into the simulation.
What I want to show you is we made at this point in time about 520 connections.
So you can see 520 connections and zero failures.
So we're about midway through at this point time and we had no failures at all.
So now we're starting to see a large number of the initial users start to log off
and the remaining 500 users starting to connect.
Let's jump to the end and see how well this thing performed.
Here at the end you can see our summary that we had a thousand connections with zero failures.
Now this was not the kind of results we used to see in previous releases of our connection broker.
And it really enables users to deploy much larger systems.
That's well beyond the majority of real-world use cases anyway.
Yeah and we've tested this to some extreme boundaries.
Like we've run test cases with up to 10,000 users trying to connect
in a variety of different number of session host servers as well.
You mentioned that cloud optimizations were a big part of the investments with Windows Server 2016 RDS.
What have we done to bring Windows Server 2016 RDS into, say the cloud with Azure?
Yeah absolutely, let me show you.
One of the major investments we made was to make it really easy for you to deploy
RDS and azure.
What I want to show you is some of the quickstart templates we've created.
So here I'm at Azure.com.
I'm going to go to resources and go down to templates.
And here you can see we have almost 400 templates available to you
to help you with your deployments in Azure.
I'm going to do a quick search, I'm going to type rds.
And here you can see that it's returned four different results for me.
So I'm going to take a look at this one here in particular,
the RD Session Collection Deployment
So let me click on this.
And what it shows me here is there's a few parameters that is going to want me to fill out.
to be able to do this deployment.
And actually, here's a button right here I can start the deployment directly into my Azure subscription.
So let me jump in.
So here I am in the Azure portal.
Let me fill in those questions that it asked me to enter.
Now, it's gonna allow me to choose which version of Windows I want to run.
So i'm going to accept the default here,
which is Windows Server technical preview.
And the number of instances of the session host server.
And the size of the deployment.
I'm going to save these settings.
And just so you can watch what's happening here, I'm going to pin this to the dashboard.
Let me accept the legal terms.
And let's create this.
Now what you can see is this deployment has already started here.
Now this will take a few minutes to run
so I did another version of this earlier today and I'll show you what would be set up for me.
Here you can see all the resources that were created by this quickstart template.
At the bottom of the list here, you can see that it created a VNet.
It created a public IP address
which is the front-facing IP address for my deployment.
Here's a handful of virtual nics that were created,
and then a load balancer for my front end.
And then there's the two session host servers we configured in the front.
And then there's a handful of infrastructure VM's that were created as well.
And what I want to show you at the top is that it's already created these availability sets for me as well.
So of course with this session host availability set,
I've got those two session host servers and I can add more as I want if I want to grow this deployment.
But, also it created an availability set for my VM's that are supporting the infrastructure roles.
So now if I wanted to go back and make this RDS deployment highly available
I can go back to those quickstart templates and there's another one there
that will add the additional infrastructure VM's.
And now my entire deployment is highly available within Azure.
Wow that's pretty incredible.
So, graphics, scale and cloud in the Windows server 2016 update for RDS.
It's pretty amazing.
RDS is a great solution for customers.
But, in addition to that it's also a great platform for partners.
In fact just recently made an announcement that we've partnered with Citrix
to build out the next generation Azure Remote App
on Azure using our RDS platform.
And we've also announced recently VDI using Windows 10 client in Azure,
and citrix is building a management solution for that as well.
That's pretty cool
Where can folks find out more?
Well first thing I would encourage folks to try out
the Windows Server 2016 preview that's available for download.
Also, you can try out these Azure quickstart templates today
and do an RDS deployment in Azure of your own.
And if you want to learn more about the Azure N-SKU's, you can click on the link below.
Great stuff Scott, thank you very much for joining us.
And thank you for watching.
That's about all we have time for.
Remember to keep watching Microsoft Mechanics for the very latest in updates.
See you next time.
Microsoft Mechanics
www.microsoft.com/mechanics