The Google Cloud provides tools for making Windows applications highly available. Let's learn about how they work. >> In this module, we'll look how to enhance the for web application creates with Microsoft ASP.NET MVC framework and deployed on Google complete engine. To do this, we'll employ the Google Network Load Balancer and other supporting Cloud Platform resources. This diagram shows the typical architecture. This used to ensure high availability of your windows work cloud when running on Google Cloud Platform. This involves several different resources, zone, instance template, instance group, autoscaler, load balancer and health checks. We'll take a closer look at each of the Google resources over the next few slides but note that Windows resources should also be deployed with high availability of mind. Google's geo redundant architecture Is used to ensure high availability. You'll be able to provision resources over multiple locations. Recall that Google currently has deployed multiple regions in the United States, Europe, and Asia with many more coming on stream. In each region, there are multiple zones. These have independent power and network, and ensure that even in the rare event of a zone outage, your application will continue to run. You should aim to deploy production applications over multiple zones in a single region as a minimum level of resiliency. With Windows Infrastructure, you'll want to duplicate Windows features such as Active Directory in multiple zones and harness SQL Server High-Availability Instances over multiple zones, as well. The next three resources are important if we need a scalable, as well as highly available architecture. Together, they enable your application to respond to increases in demand, by provisioning a set of machines to handle a load. The first of these is the instance template. We've already created Google computer engine instances and seeing how we can configure the virtual machine hardware, with just the right amount of CPU memory and disk. Selecting the appropriate Microsoft Windows Server operating system image to suit our requirements. An instance template allows nearly all the same configuration options but doesn't create a machine, instead it serves as a specification that can be used to create machines. The instance template works together with the next resource, the managed instance group, to perceptive machines. To create a managed instance group, first select a multizone Compute Engine region. And an instance template. You can then pick a fixed number of machines in the group which will be distributed evenly across the zones in the selected region. Alternatively, configure autoscaler behavior and select a minimum and maximum size of an autoscaler pool. The autoscaler can direct the instance group to create more machines when it determines that load has exceeded a configured threshold. For example, if CPU usage is higher than 70%, that the number of requests per second through the load balancer is higher than the threshold or by using Google Step Driver standard or custom metrics. The autoscaler responds quickly to demand changes and doesn't need any pre-warming. Similarly, when the load falls away, the autoscalar will shut down just the right number of machines to ensure that all the policies are under the configured limits. With a managed instance group, you'll also want to make sure that all the instances are working properly. You do this by configuring health check resources. This makes HTTP requests against a URL path that you configure. The event of a series of over responses, an instance will be marked as unhealthy and automatically shut down. A health check can be simple. It's the home page for my application responding successfully, for example, or it could be complex, a specific page that verifies that all the back end resources are responding successfully. The final piece in the high availability jigsaw is a load balancer. Google Cloud Platform offers multiple load balancers. There's a web load balancer for HTTP and HTTPS traffic. And a separate network load balancer for TCP and UDP traffic. A load balancer can be configured with a single global IP address. And traffic will be directed to the nearest available set of instances, as long as they have capacity. Google Load Balancers respond quickly to traffic demand and need no pre-warming. One thing to note is that currently, if you've configured your ASP.NET MVC web application to use integrated Windows authentication, then you have to use the network load balancer. The web load balancer isn't compatible with windows authentication.