 Hi everyone, my name is Ria Batia and I'm a Program Manager in the Cloud Native Compute team. And today I'm going to be talking to you guys about how to autoscale with AKS and a new public preview feature we have called Virtual Node. In the agenda, we have first the background of Azure Container instances and then I'll go through an open-source project called Virtual Kubelet. And finally, we'll talk about the Virtual Node in public preview with a couple demos to show you guys what it's all about. So the first thing is containers. So sometimes all you need to do is just run a container. And VMs just take up too much management for just trying to run a single workload. And that's when we came up with Azure Container instances. It takes away the need of VM management. It starts in seconds and we support Windows and Linux. It's also Hyper-V isolated. So that means you have the same level of isolation that you get in VMs today. It's just at the container level. You can also configure the amount of memory and CPU that you want. So you can say you want four cores and maybe 14 gigabytes. You really get to choose, which is pretty awesome. Our Virtual Kubelet project in the open is something that we released last December. And it's gained a lot of support since then. Basically what we've done is we figured out how to extend Kubernetes and connect the APIs of Kubernetes to APIs of any other kind of service. For Azure, we're connecting it to Azure Container instances. But we also have another provider for the IoT Edge, which is pretty great. And we also have support from the rest of the community. So not only Microsoft, but providers from Amazon, Hyper-SH, VMware have all joined the cause of helping us build Virtual Kubelet. And the GitHub link is on the slide. So with ACI and Virtual Kubelet and AKS, we've basically come together and built a preview within Azure called Virtual Node. So now today we're announcing that it's in public preview and you guys can basically get this Virtual Node within your cluster through the portal or the CLI. This is the way it works. The Virtual Node architecture is basically you get the management of AKS and the masters are already controlled for you. It's a managed control plane. But then you also get an extra burst capacity through ACI and Virtual Node. So now you can have one to X amount of VMs in your cluster. And then you can install Virtual Node to be able to scale out basically infinitely into ACI. And there's no VMs to think about. So when you're scaling, you don't have to scale VMs and then think about the workloads that go on top of them. All you do is just scale out Azure Container instances. And you don't even realize it. The management plane is still Kubernetes, which is pretty awesome. So now what I'm going to do is take you through a demo of first how to install Virtual Node in Azure and then how to actually use Virtual Node in your own applications and how to autoscale from your cluster to Virtual Node itself and to Azure Container instances. So now that we've already installed Virtual Node in my cluster, I've went ahead and installed an entire application. It's basically just a simple front end that simulates a Black Friday event. So we're selling service books. We're selling Xboxes. And it's just this simple website. From here, what I've gone ahead and done is I've started a big amount of load. So I have this load tester basically paying this front end a lot. And we're going to see how our cluster scales with that demand and with that customer traffic. So what I'm going to do is head over to application insights. And they have this thing called live metric stream. And from here, we can see the amount of incoming requests, how long the requests are actually durated for. And we can see the amount of servers that are coming up too. And if you look at this, we have a couple coming online. We started with just one of these. And now a couple of them are starting to show up, which is pretty nice. I also have another dashboard to show you guys what's going on. So this was Azure's live metric stream. But I'm also using Grafana, which is an open source dashboarding tool. And over here, we can see that the RPS, which is requests per second per pod, is going exponentially up. And so the RPS per pod and the RPS in general is going up. The response time is actually going down because we're getting a bunch of more infrastructure starting up here. And they're all starting up in pods in ACI. So we have eight already. There's two on the actual VMs in my cluster. So two pods in there that are helping this cause. And they're all working together to get the request per second down per pod. So if I go ahead over here, we can see the amount of containers that are pending. So this is where Kubernetes is stepping in and helping us a lot to autoscale out. I'm using the horizontal pod autoscaler, which isn't a known thing in Kubernetes that allows you to horizontally scale out your pods. And I'm scaling on requests per second. So once you hit 10 requests per pod, it says, oh, now we need another pod. So anytime you get 10 requests per pod, that's why we're spinning out so many different containers. And if I go over here, I can refresh this page. This is my resource group. And now we can see all of the container instances that are actually spinning up. And they're all spinning out in the same resource group, which is pretty awesome. We have so many that started up within a couple seconds. Now if you think about if you did this with just VMs in your cluster, it would have taken you, first of all, a couple of minutes to start up the VM and then another minute to start up all of those containers. But for this amount of containers, you would need probably five to 10 VMs, all starting up one after the other. In this case, we just had, I don't know, 20, 30 pods start up in tandem in parallel, which is pretty great. So you can use virtual nodes to autoscale out from your cluster into ACI. And hopefully this gives you an easy solution for scaling in Kubernetes. So that's how easy it is to use virtual node. And if you want to get started, check out these links. We have the demo repo, which is right there for you to install all the different bits. And we also have the feedback form. So if you have any feedback for us, please reach out. Thanks for watching.