5 tips for IIS on containers: #2 IIS App Pools and Websites

This post has been republished via RSS; it originally appeared at: New blog articles in Microsoft Community Hub.

The next topic in this series is IIS App Pools and Websites. Vinicius and I discuss the challenges with managing multiple application pools and how to address them with containers at our Microsoft Ignite Talk.   Scaling up an IIS app pool brings challenges because perhaps you only need one of those app pools scaled up.  Having everything reside on the same node means you scale up all of the app pools ( more management overhead).  Another common way is to segregate applications on virtual machines but that brings additional costs with more VMS to run and manage.  A much simpler and cost-effective way is to break out your application pools onto individual containers.

You can choose to run a single container with multiple IIS app pools but there can be more benefits by managing them independently.

 

Here is the architecture we are referring to in our example, where we can have each IIS app pool and/or website in its own container with secrets stored and hard coded configurations stored in configmap.  More on those two services in the next post!  If we migrate our app pool to its own container we can now scale that up and down as needed without bringing more management overhead and cost.

 

Architecture of container environment with Windows nodesArchitecture of container environment with Windows nodes

Using Azure Migrate, we can segregate your IIS app​lication(s) from a virtual machine.  This can allow for easier management and is a design choice not a technical limitation.

 

Azure Migrate App Containerization

You can install this application on a Windows machine to discover and migrate your application.  The requirements can be found here.

After downloading, installing and launching the application you will see.  Here we want to select ASP.NET web apps and target containers on AKS

 

Application type and targetApplication type and target

 

The prerequisites are accepting license terms, connectivity checks, etc you can read the complete guide here and how to sign into your Azure account 


Discover Applications

Next up you'll Discover and Validate the server you want to migrate from by entering the IP or FQDN and credentials that can authenticate

Provide server detailsProvide server details

 

Click continue to discover your application(s).  Once complete, you will see the below image

 

Discovered applicationDiscovered application

 

Now we can separate the existing websites into different target containers.  Again, this brings the benefit of managing changes/updates independently versus impacting all of the applications

 

Build Container Image

Here we can use our existing container registry to store the container image for the application.  You can also choose to create a new Azure Container Registry. Azure Migrate has created the dockerfile necessary to deploy my discovered Application.

 

Build ImagesBuild Images

 

Deployment Specifications

Here you can provide an AKS (Azure Kubernetes Service) cluster to deploy to or create a new one for this migration.

AKS cluster deployment specificationsAKS cluster deployment specifications

 

Now we have to specify the Secret Store, Azure File share if a persistent volume is needed and the deployment configuration.  For more details on this read here

 

Deployment specifications with configurationDeployment specifications with configuration

 

Deploy Containers

Finally, we can deploy the application that we have discovered.  Azure Migrate will provide the necessary permissions and generate the deployment YAML file for the application.

Deploy ContainersDeploy Containers

 

It really is that simple to migrate off of your server!  IIS is definitely an application that can benefit from the flexibility of containers.

Feel free to comment or ask questions on the process on this post.  You can also watch the demo and talk here 

 

If you missed the first post, be sure to see how Vinicius went over SSL Lifecycle management using Azure Key Vault and Web Application Routing for AKS.

 

Thanks
Amy

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.