Containerize and migrate applications to AKS with the Azure Migrate’s new App Containerization tool

Published 03-02-2021 08:12 AM 5,032 Views
Microsoft

This post is authored by Bharathram Sivaraman, Principal PM Manager (@bsiva).

 

Migrating applications to Azure helps retire existing investments in infrastructure and move from a CAPEX based operating model to an OPEX based model where you only pay for resources you use. But migration is also a great opportunity to modernize your application infrastructure.  As customers modernize and migrate applications to Azure they are using Azure offerings such as Azure App Service and Azure Kubernetes Service to effectively simplify management of the infrastructure hosting their applications.

 

For web-based applications that you are migrating to Azure, Azure App Service offers a modern managed platform with a comprehensive set of features and tooling to manage your web applications, and the App Service Migration Assistant tool in Azure Migrate helps you migrate ASP.NET and other web apps to Azure App Service.

 

Customers that need more control of their infrastructure are adopting containers and standardizing their application and infrastructure management practices on Kubernetes, and Azure Kubernetes Service (AKS) can be an outstanding choice to migrate existing applications for such customers.

 

While newer applications are being developed to be run as containers, moving existing applications to containers may require the applications to be refactored or rewritten. Rewriting or refactoring existing applications is an involved process requiring skilled developers and application knowledge, and the cost or rewriting the app may not be possible to justify for all applications in your portfolio.

 

But not all applications need to be rewritten or refactored. For lot of your existing applications, it may be possible to repackage and deploy the application as containers without rewriting the application and still get the benefits of improved infrastructure consolidation and consistent management across your entire portfolio of applications.

 

The new App Containerization tool from Azure Migrate

 

Today, we are excited to announce the preview of Azure Migrate: App Containerization, a new tool to help you containerize and migrate existing applications to Azure Kubernetes Service. The App Containerization tool offers a no-code, point-and-containerize approach to help you package applications running on servers into a container image and helps you deploy the containerized application to Azure Kubernetes Service. The app servers hosting the app could be virtual machines or physical servers running in your on-premises datacenter, virtual machines running in Azure or any other cloud. In the current preview the tool helps you:

  • Containerize ASP.NET applications running on Windows Servers to Windows containers
  • Containerize Java web applications running on Apache Tomcat on Linux machines to Linux containers

In the process of containerizing the application, the tool also lets you:

  • Discover and parameterize application configurations to facilitate consistent deployment and updates across environments.
  • Move application content stored on the application server’s filesystem or a network filesystem to persistent volumes outside the container image.
  • Customize, download, and reuse tool generated artifacts such as Dockerfiles, container images, and Kubernetes resource definition files for day-2 operations. The downloaded artifacts can also be used as part of CI/CD pipeline for managing application updates and deployments.

 

How to Use the App Containerization Tool

The App Containerization tool is available as a standalone tool that you can run on any Windows machine. To get started with app containerization, install the tool on a Windows machine with network access to the app servers hosting the web applications.

 

Discover applications: The tool uses the specified app server details to connect to the server over the network and discovers web applications running on the server. You then review the discovered apps and app configurations and select the apps to be containerized. You can parameterize app configurations such as database connection strings and make them deployment time settings. You can also specify additional content folders to be included in the container image, and specify content folders or directories that should be moved to persistent volumes. The option to move content folders to persistent volumes outside the container image is useful for applications that use the local filesystem to store content files that may need to be updated, or store application state on the local filesystem. Based on the selections the tool will create and initialize the contents for the persistent volumes specified for the apps.

 

JasmineH_0-1614792398083.png

 

 

Build container image: Using the discovered information and inputs from the previous step, the tool generates a suggested Dockerfile that can be used to build the container image for the application. You can review the Dockerfile and make changes as needed before building a container image for the application. The app container image is built based on the updated Dockerfile and is pushed to an Azure Container Registry in your Azure subscription.

 

JasmineH_1-1614792398142.png

 

Deploy apps to Azure Kubernetes Service: With the container image built, you are now ready to deploy the containerized application to Azure Kubernetes Service.  The tool generates the Kubernetes resource definitions specification file to deploy the apps to your Azure Kubernetes Service cluster. You can specify values to use for the parameterized application configurations, and review and customize the generated YAML file before deploying the containerized application to Azure Kubernetes Service.

JasmineH_2-1614792398210.png

 

 

JasmineH_3-1614792398248.png

 

 

Learn more about Azure Migrate and App Containerization:

Using a templatized process to containerize apps running on servers, the App Containerization tool makes it easy to containerize, test and migrate your existing applications to Azure Kubernetes Service. Review the following tutorials to learn how to use the App Containerization tool to containerize and migrate your existing applications to Azure Kubernetes Service.

Containerize and migrate ASP.NET applications to Azure Kubernetes Service

Containerize and migrate Java web applications to Azure Kubernetes Service

 

Get started with Azure Migrate today.

%3CLINGO-SUB%20id%3D%22lingo-sub-2178551%22%20slang%3D%22en-US%22%3EContainerize%20and%20migrate%20applications%20to%20AKS%20with%20the%20Azure%20Migrate%E2%80%99s%20new%20App%20Containerization%20tool%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2178551%22%20slang%3D%22en-US%22%3E%3CP%3E%3CEM%3EThis%20post%20is%20authored%20by%20Bharathram%20Sivaraman%2C%20Principal%20PM%20Manager%20(%40bsiva).%3C%2FEM%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EMigrating%20applications%20to%20Azure%20helps%20retire%20existing%20investments%20in%20infrastructure%20and%20move%20from%20a%20CAPEX%20based%20operating%20model%20to%20an%20OPEX%20based%20model%20where%20you%20only%20pay%20for%20resources%20you%20use.%20But%20migration%20is%20also%20a%20great%20opportunity%20to%20modernize%20your%20application%20infrastructure.%20%26nbsp%3BAs%20customers%20modernize%20and%20migrate%20applications%20to%20Azure%20they%20are%20using%20Azure%20offerings%20such%20as%20Azure%20App%20Service%20and%20Azure%20Kubernetes%20Service%20to%20effectively%20simplify%20management%20of%20the%20infrastructure%20hosting%20their%20applications.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EFor%20web-based%20applications%20that%20you%20are%20migrating%20to%20Azure%2C%20Azure%20App%20Service%20offers%20a%20modern%20managed%20platform%20with%20a%20comprehensive%20set%20of%20features%20and%20tooling%20to%20manage%20your%20web%20applications%2C%20and%20the%20App%20Service%20Migration%20Assistant%20tool%20in%20Azure%20Migrate%20helps%20you%20migrate%20ASP.NET%20and%20other%20web%20apps%20to%20Azure%20App%20Service.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ECustomers%20that%20need%20more%20control%20of%20their%20infrastructure%20are%20adopting%20containers%20and%20standardizing%20their%20application%20and%20infrastructure%20management%20practices%20on%20Kubernetes%2C%20and%20Azure%20Kubernetes%20Service%20(AKS)%20can%20be%20an%20outstanding%20choice%20to%20migrate%20existing%20applications%20for%20such%20customers.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWhile%20newer%20applications%20are%20being%20developed%20to%20be%20run%20as%20containers%2C%20moving%20existing%20applications%20to%20containers%20may%20require%20the%20applications%20to%20be%20refactored%20or%20rewritten.%20Rewriting%20or%20refactoring%20existing%20applications%20is%20an%20involved%20process%20requiring%20skilled%20developers%20and%20application%20knowledge%2C%20and%20the%20cost%20or%20rewriting%20the%20app%20may%20not%20be%20possible%20to%20justify%20for%20all%20applications%20in%20your%20portfolio.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EBut%20not%20all%20applications%20need%20to%20be%20rewritten%20or%20refactored.%20For%20lot%20of%20your%20existing%20applications%2C%20it%20may%20be%20possible%20to%20repackage%20and%20deploy%20the%20application%20as%20containers%20without%20rewriting%20the%20application%20and%20still%20get%20the%20benefits%20of%20improved%20infrastructure%20consolidation%20and%20consistent%20management%20across%20your%20entire%20portfolio%20of%20applications.%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3E%26nbsp%3B%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3EThe%20new%20App%20Containerization%20tool%20from%20Azure%20Migrate%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3E%26nbsp%3B%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3EToday%2C%20we%20are%20excited%20to%20announce%20the%20preview%20of%20%3CSTRONG%3EAzure%20Migrate%3A%20App%20Containerization%3C%2FSTRONG%3E%2C%20a%20new%20tool%20to%20help%20you%20containerize%20and%20migrate%20existing%20applications%20to%20Azure%20Kubernetes%20Service.%20The%20App%20Containerization%20tool%20offers%20a%20no-code%2C%20point-and-containerize%20approach%20to%20help%20you%20package%20applications%20running%20on%20servers%20into%20a%20container%20image%20and%20helps%20you%20deploy%20the%20containerized%20application%20to%20Azure%20Kubernetes%20Service.%20The%20app%20servers%20hosting%20the%20app%20could%20be%20virtual%20machines%20or%20physical%20servers%20running%20in%20your%20on-premises%20datacenter%2C%20virtual%20machines%20running%20in%20Azure%20or%20any%20other%20cloud.%20In%20the%20current%20preview%20the%20tool%20helps%20you%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EContainerize%20ASP.NET%20applications%20running%20on%20Windows%20Servers%20to%20Windows%20containers%3C%2FLI%3E%0A%3CLI%3EContainerize%20Java%20web%20applications%20running%20on%20Apache%20Tomcat%20on%20Linux%20machines%20to%20Linux%20containers%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3EIn%20the%20process%20of%20containerizing%20the%20application%2C%20the%20tool%20also%20lets%20you%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EDiscover%20and%20parameterize%20application%20configurations%20to%20facilitate%20consistent%20deployment%20and%20updates%20across%20environments.%3C%2FLI%3E%0A%3CLI%3EMove%20application%20content%20stored%20on%20the%20application%20server%E2%80%99s%20filesystem%20or%20a%20network%20filesystem%20to%20persistent%20volumes%20outside%20the%20container%20image.%3C%2FLI%3E%0A%3CLI%3ECustomize%2C%20download%2C%20and%20reuse%20tool%20generated%20artifacts%20such%20as%20Dockerfiles%2C%20container%20images%2C%20and%20Kubernetes%20resource%20definition%20files%20for%20day-2%20operations.%20The%20downloaded%20artifacts%20can%20also%20be%20used%20as%20part%20of%20CI%2FCD%20pipeline%20for%20managing%20application%20updates%20and%20deployments.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3EHow%20to%20Use%20the%20App%20Containerization%20Tool%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3EThe%20App%20Containerization%20tool%20is%20available%20as%20a%20standalone%20tool%20that%20you%20can%20run%20on%20any%20Windows%20machine.%20To%20get%20started%20with%20app%20containerization%2C%20install%20the%20tool%20on%20a%20Windows%20machine%20with%20network%20access%20to%20the%20app%20servers%20hosting%20the%20web%20applications.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3EDiscover%20applications%3A%20%3C%2FSTRONG%3EThe%20tool%20uses%20the%20specified%20app%20server%20details%20to%20connect%20to%20the%20server%20over%20the%20network%20and%20discovers%20web%20applications%20running%20on%20the%20server.%20You%20then%20review%20the%20discovered%20apps%20and%20app%20configurations%20and%20select%20the%20apps%20to%20be%20containerized.%20You%20can%20parameterize%20app%20configurations%20such%20as%20database%20connection%20strings%20and%20make%20them%20deployment%20time%20settings.%20You%20can%20also%20specify%20additional%20content%20folders%20to%20be%20included%20in%20the%20container%20image%2C%20and%20specify%20content%20folders%20or%20directories%20that%20should%20be%20moved%20to%20persistent%20volumes.%20The%20option%20to%20move%20content%20folders%20to%20persistent%20volumes%20outside%20the%20container%20image%20is%20useful%20for%20applications%20that%20use%20the%20local%20filesystem%20to%20store%20content%20files%20that%20may%20need%20to%20be%20updated%2C%20or%20store%20application%20state%20on%20the%20local%20filesystem.%20Based%20on%20the%20selections%20the%20tool%20will%20create%20and%20initialize%20the%20contents%20for%20the%20persistent%20volumes%20specified%20for%20the%20apps.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22JasmineH_0-1614792398083.png%22%20style%3D%22width%3A%20645px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F260548i27DEEFCCF401BAF8%2Fimage-dimensions%2F645x362%3Fv%3Dv2%22%20width%3D%22645%22%20height%3D%22362%22%20role%3D%22button%22%20title%3D%22JasmineH_0-1614792398083.png%22%20alt%3D%22JasmineH_0-1614792398083.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3EBuild%20container%20image%3A%20%3C%2FSTRONG%3EUsing%20the%20discovered%20information%20and%20inputs%20from%20the%20previous%20step%2C%20the%20tool%20generates%20a%20suggested%20Dockerfile%20that%20can%20be%20used%20to%20build%20the%20container%20image%20for%20the%20application.%20You%20can%20review%20the%20Dockerfile%20and%20make%20changes%20as%20needed%20before%20building%20a%20container%20image%20for%20the%20application.%20The%20app%20container%20image%20is%20built%20based%20on%20the%20updated%20Dockerfile%20and%20is%20pushed%20to%20an%20Azure%20Container%20Registry%20in%20your%20Azure%20subscription.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22JasmineH_1-1614792398142.png%22%20style%3D%22width%3A%20645px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F260550i2886D757DD1FEEFD%2Fimage-dimensions%2F645x363%3Fv%3Dv2%22%20width%3D%22645%22%20height%3D%22363%22%20role%3D%22button%22%20title%3D%22JasmineH_1-1614792398142.png%22%20alt%3D%22JasmineH_1-1614792398142.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3EDeploy%20apps%20to%20Azure%20Kubernetes%20Service%3A%20%3C%2FSTRONG%3EWith%20the%20container%20image%20built%2C%20you%20are%20now%20ready%20to%20deploy%20the%20containerized%20application%20to%20Azure%20Kubernetes%20Service.%20%26nbsp%3BThe%20tool%20generates%20the%20Kubernetes%20resource%20definitions%20specification%20file%20to%20deploy%20the%20apps%20to%20your%20Azure%20Kubernetes%20Service%20cluster.%20You%20can%20specify%20values%20to%20use%20for%20the%20parameterized%20application%20configurations%2C%20and%20review%20and%20customize%20the%20generated%20YAML%20file%20before%20deploying%20the%20containerized%20application%20to%20Azure%20Kubernetes%20Service.%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22JasmineH_2-1614792398210.png%22%20style%3D%22width%3A%20645px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F260549iDC55E8F7DCD86693%2Fimage-dimensions%2F645x363%3Fv%3Dv2%22%20width%3D%22645%22%20height%3D%22363%22%20role%3D%22button%22%20title%3D%22JasmineH_2-1614792398210.png%22%20alt%3D%22JasmineH_2-1614792398210.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22JasmineH_3-1614792398248.png%22%20style%3D%22width%3A%20645px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F260551i8C4A2469EDAF0DCF%2Fimage-dimensions%2F645x363%3Fv%3Dv2%22%20width%3D%22645%22%20height%3D%22363%22%20role%3D%22button%22%20title%3D%22JasmineH_3-1614792398248.png%22%20alt%3D%22JasmineH_3-1614792398248.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3ELearn%20more%20about%20Azure%20Migrate%20and%20App%20Containerization%3A%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3EUsing%20a%20templatized%20process%20to%20containerize%20apps%20running%20on%20servers%2C%20the%20App%20Containerization%20tool%20makes%20it%20easy%20to%20containerize%2C%20test%20and%20migrate%20your%20existing%20applications%20to%20Azure%20Kubernetes%20Service.%20Review%20the%20following%20tutorials%20to%20learn%20how%20to%20use%20the%20App%20Containerization%20tool%20to%20containerize%20and%20migrate%20your%20existing%20applications%20to%20Azure%20Kubernetes%20Service.%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Faka.ms%2Fmigrate%2Fcontainerization%2Faspnet%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EContainerize%20and%20migrate%20ASP.NET%20applications%20to%20Azure%20Kubernetes%20Service%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Faka.ms%2Fmigrate%2Fcontainerization%2Fjava%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EContainerize%20and%20migrate%20Java%20web%20applications%20to%20Azure%20Kubernetes%20Service%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EGet%20started%20with%20%3CA%20href%3D%22https%3A%2F%2Faka.ms%2Fazuremigrate%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EAzure%20Migrate%3C%2FA%3E%20today.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-2178551%22%20slang%3D%22en-US%22%3E%3CP%3EMigrate%20ASP.NET%20and%20Java%20web%20applications%20to%20containers%20on%20Azure%20Kubernetes%20Service%20using%20the%20new%20App%20Containerization%20tool%20from%20Azure%20Migrate.%3C%2FP%3E%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2178551%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EAzure%20Migrate%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EData%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EInfrastructure%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EUpdates%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Co-Authors
Version history
Last update:
‎Mar 15 2021 08:38 AM
Updated by: