%3CLINGO-SUB%20id%3D%22lingo-sub-1590189%22%20slang%3D%22en-US%22%3EJourney%20of%20an%20App%3A%20How%20to%20Extract%20a%20Web%20App%20from%20IIS%20to%20Create%20a%20New%20Container%20Image%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1590189%22%20slang%3D%22en-US%22%3E%3CP%3EContainers%20are%20becoming%20extremely%20popular%20these%20days%20and%20many%20ITPros%20are%20being%20asked%20to%20modernize%20existing%20applications%20and%20run%20those%20apps%20on%20Kubernetes.%20The%20process%20can%20be%20a%20bit%20challenging%20if%20you%20don't%20know%20how%20to%20get%20started%2C%20and%20more%20importantly%20if%20you%20don't%20have%20the%20right%20tools%20for%20the%20job.%3C%2FP%3E%0A%3CP%3EIn%20this%20video%20series%20we%20will%20go%20over%20the%20entire%20process%20of%20containerizing%20a%20web%20application%20running%20on%20Windows%20Server%202012%20R2%20on-premises%20to%20Azure%20with%20Azure%20Kubernetes%20Services.%20Here%20are%20some%20details%20on%20the%20tools%20used%20in%20this%20video%2C%20so%20you%20can%20try%20for%20yourself%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fvrapolinario%2FViniBeer%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3ESample%20web%20application%3C%2FA%3E%3A%20The%20process%20shown%20in%20the%20video%20can%20be%20performed%20in%20your%20application%2C%20but%20if%20you%20just%20want%20to%20test%20it%2C%20you%20can%20use%20this%20sample%20app%20as%20shown%20in%20the%20series.%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fiis%2Fpublish%2Fusing-web-deploy%2Fexport-a-package-through-iis-manager%3FWT.mc_id%3Dmodinfra-8309-abartolo%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3EWeb%20Deploy%3C%2FA%3E%3A%20We'll%20be%20using%20it%20to%20export%20the%20application%20from%20IIS.%20Web%20Deploy%20makes%20the%20process%20of%20exporting%20an%20IIS%20web%20site%20way%20simpler%20than%20doing%20it%20manually.%20Plus%2C%20you%20can%20reconfigure%20some%20parameters%20like%20Database%20Connection%20in%20the%20process.%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows-server%2Fmanage%2Fwindows-admin-center%2Foverview%3FWT.mc_id%3Dmodinfra-8309-abartolo%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3EWindows%20Admin%20Center%3C%2FA%3E%3A%20The%20updated%20%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fcontainers%2Fannouncement-adding-webdeploy-support-to-container-image%2Fba-p%2F1579144https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows-server%2Fmanage%2Fwindows-admin-center%2Foverview%3FWT.mc_id%3Dmodinfra-8309-abartolo%22%20target%3D%22_blank%22%20rel%3D%22noopener%22%3EContainers%20extension%3C%2FA%3E%20now%20supports%20Web%20Deploy%20ZIP%20files%20as%20a%20source%20for%20new%20container%20images.%20With%20WAC%20you%20can%20point%20to%20a%20ZIP%20file%20from%20Web%20Deploy%20and%20WAC%20will%20do%20the%20hard%20work%20for%20you!%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3EIn%20this%20first%20video%20in%20the%20series%2C%20we%20cover%20how%20to%20extract%20the%20web%20application%20from%20IIS%20and%20use%20the%20exported%20ZIP%20file%20to%20create%20a%20new%20container%20image%20on%20Windows%20Admin%20Center.%20Check%20it%20out%3A%3CBR%20%2F%3E%26nbsp%3B%20%26nbsp%3B%3CBR%20%2F%3E%3CSPAN%20style%3D%22font-family%3A%20inherit%3B%22%3E%3C%2FSPAN%3E%3C%2FP%3E%3CDIV%20class%3D%22video-embed-center%20video-embed%22%3E%3CIFRAME%20class%3D%22embedly-embed%22%20src%3D%22https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Fsrc%3Dhttps%253A%252F%252Fwww.youtube.com%252Fembed%252FP8yXT1HBkmI%253Ffeature%253Doembed%26amp%3Bdisplay_name%3DYouTube%26amp%3Burl%3Dhttps%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253DP8yXT1HBkmI%26amp%3Bimage%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FP8yXT1HBkmI%252Fhqdefault.jpg%26amp%3Bkey%3Db0d40caa4f094c68be7c29880b16f56e%26amp%3Btype%3Dtext%252Fhtml%26amp%3Bschema%3Dyoutube%22%20width%3D%22600%22%20height%3D%22337%22%20scrolling%3D%22no%22%20title%3D%22YouTube%20embed%22%20frameborder%3D%220%22%20allow%3D%22autoplay%3B%20fullscreen%22%20allowfullscreen%3D%22true%22%3E%3C%2FIFRAME%3E%3C%2FDIV%3E%26nbsp%3B%26nbsp%3B%3CP%3E%3C%2FP%3E%0A%3CP%3EIn%20the%20next%20video%2C%20we'll%20cover%20how%20to%20push%20this%20container%20image%20to%20Azure%20so%20you%20can%20reuse%20on%20other%20container%20hosts%2C%20or%20Azure%20services.%20The%20final%20video%20will%20cover%20how%20to%20prepare%20Azure%20Kubernetes%20Services%20to%20deploy%20this%20Windows%20Container%20hosting%20our%20exported%20application.%3C%2FP%3E%0A%3CP%3EI%20hope%20you%20like%20the%20video%20and%20the%20series.%20Let%20us%20know%20what%20you%20think%20in%20the%20comments%20and%20what%20you'd%20like%20to%20see%20next!%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ERegards%2C%3C%2FP%3E%0A%3CP%3EVinicius.%3C%2FP%3E%0A%3CP%3ETwitter%3A%20%3CA%20href%3D%22http%3A%2F%2Fwww.twitter.com%2Fvrapolinario%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3E%40vrapolinario%3C%2FA%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-1590189%22%20slang%3D%22en-US%22%3E%3CP%3EContainers%20are%20becoming%20extremely%20popular%20these%20days%20and%20many%20ITPros%20are%20being%20asked%20to%20modernize%20existing%20applications%20and%20run%20those%20apps%20on%20Kubernetes.%20The%20process%20can%20be%20a%20bit%20challenging%20if%20you%20don't%20know%20how%20to%20get%20started%2C%20and%20more%20importantly%20if%20you%20don't%20have%20the%20right%20tools%20for%20the%20job.%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22How-to-Extract-a-Web-App-from-IIS-to-Create-a-New-Container-Image.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F213060i50B50D708EAD12D9%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20title%3D%22How-to-Extract-a-Web-App-from-IIS-to-Create-a-New-Container-Image.png%22%20alt%3D%22How-to-Extract-a-Web-App-from-IIS-to-Create-a-New-Container-Image.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1590189%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EAzure%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EVinicius%20Apolinario%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EWindows%20Server%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1596140%22%20slang%3D%22en-US%22%3ERe%3A%20Journey%20of%20an%20App%3A%20How%20to%20Extract%20a%20Web%20App%20from%20IIS%20to%20Create%20a%20New%20Container%20Image%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1596140%22%20slang%3D%22en-US%22%3E%3CP%3E%3CSTRONG%3EDockerfile%3C%2FSTRONG%3E%20produced%20by%20Windows%20Admin%20center%20does%20not%20seem%20to%20be%20optimized.%20One%20shall%20delete%20all%20downloaded%20files%20as%20well%20as%20junk%20MSI%20leaves%20behind%20after%20installation%20in%20the%20SAME%20layer%20where%20installation%20took%20place.%20Microsoft%20has%20this%20recommendation%20spelled%20out%20as%20well%20in%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fvirtualization%2Fwindowscontainers%2Fmanage-docker%2Foptimize-windows-dockerfile%23remove-excess-files%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Edocumentation%3C%2FA%3E.%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1596147%22%20slang%3D%22en-US%22%3ERe%3A%20Journey%20of%20an%20App%3A%20How%20to%20Extract%20a%20Web%20App%20from%20IIS%20to%20Create%20a%20New%20Container%20Image%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1596147%22%20slang%3D%22en-US%22%3E%3CP%3EThanks%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F66962%22%20target%3D%22_blank%22%3E%40Gregory%20Suvalian%3C%2FA%3E.%26nbsp%3BYou%20are%20correct.%20This%20feature%20was%20recently%20added%20and%20we%20missed%20adding%20the%20line%20to%20remove%20the%20MSI%20we%20used%20to%20install%20Web%20Deploy.%20I'll%20open%20a%20bug%20internally%20to%20add%20that%20to%20the%20functionality.%3C%2FP%3E%0A%3CP%3EAside%20from%20that%2C%20I%20hope%20you%20enjoy%20the%20functionality.%20Let%20us%20know%20if%20there's%20anything%20we%20can%20improve%20there.%3C%2FP%3E%0A%3CP%3ERegards%2C%3C%2FP%3E%0A%3CP%3EVinicius.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1596150%22%20slang%3D%22en-US%22%3ERe%3A%20Journey%20of%20an%20App%3A%20How%20to%20Extract%20a%20Web%20App%20from%20IIS%20to%20Create%20a%20New%20Container%20Image%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1596150%22%20slang%3D%22en-US%22%3E%3CP%3ENot%20only%20MSI%20itself%20needs%20to%20be%20removed%20but%20also%20installer%20files%20left%20behind%20in%20%3CSTRONG%3Ec%3C%2FSTRONG%3E%3CSPAN%3E%3CSTRONG%3E%3A%5Cwindows%5Cinstaller%5C*%3C%2FSTRONG%3E%20folder%20as%20well.%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E

Containers are becoming extremely popular these days and many ITPros are being asked to modernize existing applications and run those apps on Kubernetes. The process can be a bit challenging if you don't know how to get started, and more importantly if you don't have the right tools for the job.

In this video series we will go over the entire process of containerizing a web application running on Windows Server 2012 R2 on-premises to Azure with Azure Kubernetes Services. Here are some details on the tools used in this video, so you can try for yourself:

  • Sample web application: The process shown in the video can be performed in your application, but if you just want to test it, you can use this sample app as shown in the series.
  • Web Deploy: We'll be using it to export the application from IIS. Web Deploy makes the process of exporting an IIS web site way simpler than doing it manually. Plus, you can reconfigure some parameters like Database Connection in the process.
  • Windows Admin Center: The updated Containers extension now supports Web Deploy ZIP files as a source for new container images. With WAC you can point to a ZIP file from Web Deploy and WAC will do the hard work for you!

In this first video in the series, we cover how to extract the web application from IIS and use the exported ZIP file to create a new container image on Windows Admin Center. Check it out:
   

  

In the next video, we'll cover how to push this container image to Azure so you can reuse on other container hosts, or Azure services. The final video will cover how to prepare Azure Kubernetes Services to deploy this Windows Container hosting our exported application.

I hope you like the video and the series. Let us know what you think in the comments and what you'd like to see next!

 

Regards,

Vinicius.

Twitter: @vrapolinario

3 Comments
Contributor

Dockerfile produced by Windows Admin center does not seem to be optimized. One shall delete all downloaded files as well as junk MSI leaves behind after installation in the SAME layer where installation took place. Microsoft has this recommendation spelled out as well in documentation

Thanks @Gregory Suvalian. You are correct. This feature was recently added and we missed adding the line to remove the MSI we used to install Web Deploy. I'll open a bug internally to add that to the functionality.

Aside from that, I hope you enjoy the functionality. Let us know if there's anything we can improve there.

Regards,

Vinicius.

Contributor

Not only MSI itself needs to be removed but also installer files left behind in c:\windows\installer\* folder as well.