{"id":12360,"date":"2022-05-20T11:18:19","date_gmt":"2022-05-20T11:18:19","guid":{"rendered":"https:\/\/blog.cloudthat.com\/?p=12360"},"modified":"2024-06-25T11:00:22","modified_gmt":"2024-06-25T11:00:22","slug":"a-simple-guide-for-containerization-of-asp-net-e-commerce-application","status":"publish","type":"blog","link":"https:\/\/www.cloudthat.com\/resources\/blog\/a-simple-guide-for-containerization-of-asp-net-e-commerce-application","title":{"rendered":"A Simple Guide for Containerization of ASP.NET E-Commerce Application"},"content":{"rendered":"<table border=\"3\">\n<tbody>\n<tr>\n<td><span style=\"color: #000080;\"><strong>TABLE OF CONTENT<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#introduction\">1. Introduction<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Technologies Leveraged\">2. Technologies Leveraged<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Prerequisites\">3. Prerequisites<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Preparing MongoDB Docker Image\">4. Preparing MongoDB Docker Image<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Preparing Grandnode Docker Image\">5. Preparing Grandnode Docker Image<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Running the E-Commerce Application Locally\">6. Running the E-Commerce Application Locally<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Creating Container Registry For Application Container Images\">7. Creating Container Registry for Application Container Images<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Pushing Images To The Registry\">8. Pushing Images to The Registry<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#conclusion\">10. Conclusion <\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#aboutcloudthat\">11. About CloudThat<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#faqs\">12. FAQs<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h2 id=\"introduction\">Introduction<\/h2>\n<p>Containerization primarily offers us the benefit of swift deployment, scaling, and patching of our applications. Moreover, an existing .NET application can be migrated to Windows containers without modifying the code most of the time. An appropriate docker base image needs to be chosen, and a Dockerfile needs to be prepared for containerizing your application. Keeping your application containerized in container registries like DockerHub, and Azure Container Registry offers portability and agility. They offer the ability to spin up new custom versions of our application easier and faster than virtual machines.<\/p>\n<h2 id=\"Technologies Leveraged\">Technologies Leveraged<\/h2>\n<ul>\n<li>Docker<\/li>\n<li>Grandnode<\/li>\n<li>MongoDB<\/li>\n<li>Azure Container Registry<\/li>\n<\/ul>\n<h2 id=\"Prerequisites\">Prerequisites<\/h2>\n<ol>\n<li>Azure account<\/li>\n<li>GitHub account<\/li>\n<li>Azure CLI<\/li>\n<li>Windows Server 2019 \/ Windows 10 (If you use a different operating system, use the corresponding source code and make required changes to the entire setup.)<\/li>\n<li>Docker<\/li>\n<\/ol>\n<h2 id=\"Preparing MongoDB Docker Image\">Preparing MongoDB Docker Image<\/h2>\n<p>&nbsp;<\/p>\n<p>1. Clone the GitHub repo at &#8220;https:\/\/github.com\/aneez004\/mongo-windows.git&#8221;. Then, switch to the git folder.<\/p>\n<p>2. Modify the mongodbuser.ps1 file<\/p>\n<p><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture159.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12362\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture159-300x172.png\" alt=\"\" width=\"534\" height=\"306\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\">3. Add a database username and password of your choice, or keep the defaults. Here we add the user &#8220;grandadmin&#8221; with a password &#8220;grand&#8221; to the database admin. In the Dockerfile, we are using the mongo windows image as the base image, and we copy over the PowerShell script to create the db user.<\/p>\n<p style=\"padding-left: 30px;\">4. Build and tag the docker image with a preferred tag name.<\/p>\n<p style=\"text-align: left; padding-left: 30px;\"><em><strong>docker build -t &lt;image name:tag&gt;<\/strong><\/em><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture226.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12363\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture226-300x120.png\" alt=\"\" width=\"530\" height=\"212\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\">1. Clone the Github repo at &#8220;https:\/\/github.com\/aneez004\/grandnode2.git&#8221;. Then, navigate to the &#8220;grandnode2&#8221; folder.<\/p>\n<p style=\"padding-left: 30px;\">2. Verify the Dockerfile.<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture317.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12368\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture317-300x232.png\" alt=\"\" width=\"488\" height=\"377\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture414.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12369\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture414-300x233.png\" alt=\"\" width=\"485\" height=\"377\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\">3. Build and tag the image.<\/p>\n<p style=\"padding-left: 30px;\"><em><strong>docker build -t &lt;image name:tag&gt;<\/strong><\/em><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture511.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12370\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture511-300x179.png\" alt=\"\" width=\"483\" height=\"288\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture613.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12371\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture613-300x178.png\" alt=\"\" width=\"486\" height=\"288\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2 id=\"Running the E-Commerce Application Locally\">Running the E-Commerce Application Locally<\/h2>\n<p style=\"padding-left: 30px;\">1. Run the mongodb docker container.<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"font-size: 11pt;\"><strong><em><span style=\"font-family: 'Comic Sans MS';\">docker run -d -p 27017:27017 &#8211;name mongodb aneez004\/mongo:grandnodev1<\/span><\/em><\/strong><\/span><\/p>\n<p style=\"padding-left: 30px;\">2. Run the grandnode docker container by linking to the mongodb container.<\/p>\n<p style=\"padding-left: 30px;\"><strong><em>docker run -d -p 8080:80 &#8211;link mongodb:mongo &#8211;name grandnode aneez004\/grandnode:v1<\/em><\/strong><\/p>\n<p style=\"padding-left: 30px;\">3. Verify both containers are up and running<\/p>\n<p class=\"CodeStyle\" style=\"padding-left: 30px;\"><b><span style=\"font-size: 11.0pt; font-family: 'Comic Sans MS';\">docker ps<\/span><\/b><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture710.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12373\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture710-300x116.png\" alt=\"\" width=\"530\" height=\"205\" \/><\/a><\/p>\n<p>4. Access the application from a browser at <a href=\"http:\/\/localhost:8080\">http:\/\/localhost:8080<\/a><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture88.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12374\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture88-300x171.png\" alt=\"\" width=\"525\" height=\"299\" \/><\/a><\/p>\n<p>5. Enter company information. Under &#8216;Store Information,&#8217; provide the admin email username and password.<\/p>\n<p>6. Under &#8216;Database Information,&#8217; enter the following details:<\/p>\n<p style=\"padding-left: 30px;\">a. MongoDB Server Name: MongoDB (the exact name you provide using &#8211;name option during docker run)<\/p>\n<p style=\"padding-left: 30px;\">b. Database name: admin<\/p>\n<p style=\"padding-left: 30px;\">c. Username: grandadmin (replace with what you have given in the mongodbuser.ps1 file)<\/p>\n<p style=\"padding-left: 30px;\">d. Password: grand (replace with what you have given in the mongodbuser.ps1 file)<\/p>\n<p style=\"padding-left: 30px;\">Click on Install.<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture910.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12375\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture910-300x165.png\" alt=\"\" width=\"526\" height=\"289\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture1011.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12376\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture1011-300x166.png\" alt=\"\" width=\"522\" height=\"289\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture1116.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12377\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture1116-300x163.png\" alt=\"\" width=\"519\" height=\"282\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\">7. Restart the grandnode container.<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture1213.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12378\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture1213-300x92.png\" alt=\"\" width=\"515\" height=\"158\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\">8. Access the application at http:\/\/localhost:8080<\/p>\n<p style=\"padding-left: 30px;\">Access the admin page to modify your E-Commerce site. Enter the admin username and password provided during grandnode installation.<\/p>\n<p><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture1310.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12379\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture1310-300x163.png\" alt=\"\" width=\"510\" height=\"277\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture1411.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12380\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture1411-300x163.png\" alt=\"\" width=\"506\" height=\"275\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2 id=\"Creating Container Registry For Application Container Images\">Creating Container Registry for Application Container Images<\/h2>\n<p style=\"padding-left: 30px;\">1. Log in to the Azure portal. If you don&#8217;t have an account, create a free account at <a href=\"https:\/\/azure.microsoft.com\/en-us\/free\/\">https:\/\/azure.microsoft.com\/en-us\/free\/\u00a0<\/a><\/p>\n<p style=\"padding-left: 30px;\">2. Search and select &#8216;Container Registries&#8217;<\/p>\n<p><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture1510.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12381\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture1510-300x150.png\" alt=\"\" width=\"504\" height=\"252\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\">3. Click on Create container registry<\/p>\n<p style=\"padding-left: 30px;\">4. Please select your subscription, create a new resource group and select it<\/p>\n<p style=\"padding-left: 30px;\">5. Enter a unique &#8216;Registry Name.&#8217; Note down this name for future requirements.<\/p>\n<p style=\"padding-left: 30px;\">6. Accept default values for the remaining settings. Then select Review + create. After reviewing the settings, select Create.<\/p>\n<p><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture168.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12382\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture168-300x172.png\" alt=\"\" width=\"499\" height=\"286\" \/><\/a><\/p>\n<p><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture176.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12383\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture176-300x135.png\" alt=\"\" width=\"500\" height=\"225\" \/><\/a><\/p>\n<p><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture187.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12384\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture187-300x104.png\" alt=\"\" width=\"496\" height=\"172\" \/><\/a><\/p>\n<p><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture194.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12385\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture194-300x148.png\" alt=\"\" width=\"493\" height=\"243\" \/><\/a><\/p>\n<p>Note down the registry name and login server.<\/p>\n<h2 id=\"Pushing Images To The Registry\">Pushing Images to The Registry<\/h2>\n<ol>\n<li>Install chocolatey (if not installed) using instructions from the link <a href=\"https:\/\/chocolatey.org\/install\">https:\/\/chocolatey.org\/install<\/a>.<\/li>\n<li>Install Azure CLI using the following command.<\/li>\n<\/ol>\n<p style=\"padding-left: 30px;\"><em><strong>choco install -y azure-cli<\/strong><\/em><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture203.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12386\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture203-300x194.png\" alt=\"\" width=\"493\" height=\"319\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\">3. Log into your Azure account using Azure CLI (Command-Line Interface) using the following command:<\/p>\n<p style=\"padding-left: 30px;\"><em><strong>az login<\/strong><\/em><\/p>\n<p style=\"padding-left: 30px;\">4. Enter your credentials from the browser pop up window<\/p>\n<h2 style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture2111.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12387\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture2111-300x83.png\" alt=\"\" width=\"491\" height=\"136\" \/><\/a><\/h2>\n<p style=\"padding-left: 30px;\">5. Log in to the Azure Container registry before pushing container images to the registry.<\/p>\n<p style=\"padding-left: 30px;\"><em><strong>az acr login \u2013name &lt;registry name&gt;<\/strong><\/em><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture227.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12388\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture227-300x36.png\" alt=\"\" width=\"483\" height=\"58\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\">6. Tag the docker images built in the previous sections in the azure container registry name format. Replace the required values.<\/p>\n<p style=\"padding-left: 30px;\"><em><strong>docker ps<\/strong><\/em><\/p>\n<p style=\"padding-left: 30px;\"><em><strong>docker tag &lt;grandnode image name:tag&gt; &lt;registryname&gt;.azurecr.io\/grandnode:v1<\/strong><\/em><\/p>\n<p style=\"padding-left: 30px;\"><em><strong>docker tag &lt;mongo image name:tag&gt; &lt;registryname&gt;.azurecr.io\/mongo:v1<\/strong><\/em><\/p>\n<p style=\"padding-left: 30px;\"><strong>\u00a0<a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture234.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12389\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture234-300x123.png\" alt=\"\" width=\"476\" height=\"195\" \/><\/a><\/strong><\/p>\n<p style=\"padding-left: 30px;\">7. Push the application container images to the Azure container registry.<\/p>\n<p style=\"padding-left: 30px;\"><em><strong>docker push &lt;registryname&gt;.azurecr.io\/grandnode:v1<\/strong><\/em><\/p>\n<p style=\"padding-left: 30px;\"><em><strong>docker push &lt;registryname&gt;.azurecr.io\/mongo:v1<\/strong><\/em><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture244.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12390\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture244-300x164.png\" alt=\"\" width=\"470\" height=\"257\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture254.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12391\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture254-300x154.png\" alt=\"\" width=\"466\" height=\"239\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\">8. Verify that the images are pushed<\/p>\n<p style=\"padding-left: 30px;\"><em><strong>az acr repository list &#8211;name &lt;registry name&gt;<\/strong><\/em><\/p>\n<p style=\"padding-left: 30px;\"><strong><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture262.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12392\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/Picture262-300x75.png\" alt=\"\" width=\"460\" height=\"115\" \/><\/a>\u00a0<\/strong><\/p>\n<h2 style=\"padding-left: 30px;\"><\/h2>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p style=\"padding-left: 30px;\">Migration of Windows workloads to micro-service-based architecture is gaining acceptance as it offers increased flexibility, security, high availability, and portability for their applications. Microsoft .NET applications can now be easily containerized and deployed on existing managed Kubernetes clusters like Amazon EKS or Azure AKS by adding windows worker nodes to the existing cluster with Linux nodes.<\/p>\n<p style=\"padding-left: 30px;\">Here is a Step By Step Procedure for AWS App Mesh Integration With EKS<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/blog.cloudthat.com\/step-by-step-procedure-to-aws-app-mesh-integration-with-eks\/?utm_source=blog-website&amp;utm-medium=text-link&amp;utm_campaign=step-by-step-procedure-to-aws-app-mesh-integration-with-eks\">https:\/\/blog.cloudthat.com\/step-by-step-procedure-to-aws-app-mesh-integration-with-eks\/?utm_source=blog-website&amp;utm-medium=text-link&amp;utm_campaign=step-by-step-procedure-to-aws-app-mesh-integration-with-eks<\/a><\/p>\n<h2 id=\"aboutcloudthat\">About CloudThat<\/h2>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/www.cloudthat.com\/\"><strong>CloudThat<\/strong>\u00a0<\/a>is the official AWS Advanced Consulting Partner, Microsoft Gold Partner, and Google Cloud Partner, helping people develop knowledge on the cloud and help their businesses aim for higher goals using best in industry cloud computing practices and expertise. We are on a mission to build\u00a0a robust\u00a0cloud computing ecosystem by disseminating\u00a0knowledge on technological intricacies within the cloud space.\u00a0Our blogs, webinars,\u00a0case studies, and white papers\u00a0enable all the stakeholders in the cloud computing sphere.<\/p>\n<p style=\"padding-left: 30px;\">Feel free to drop a comment or any queries that you have regarding AWS services, Kubernetes Engine, or consulting requirements and we will get back to you quickly. To get started, go through\u00a0our\u00a0<a href=\"https:\/\/www.cloudthat.com\/expert-advisory\/?utm_source=blog-website&amp;utm-medium=text-link&amp;utm_campaign=expert-advisory\"><strong>Expert Advisory\u00a0<\/strong><\/a>page\u00a0and\u00a0<a href=\"https:\/\/www.cloudthat.com\/managed-services-packages\/\"><strong>Managed Services Package<\/strong><\/a><strong>\u00a0<\/strong>that is\u00a0<a href=\"https:\/\/cloudthat.com\/?utm_source=blog-website&amp;utm-medium=text-link&amp;utm_campaign=cloudthat.com\/\"><strong>CloudThat<\/strong><\/a><strong>\u2019s<\/strong>\u00a0offerings.<\/p>\n<h3 id=\"faqs\" style=\"padding-left: 30px;\"><\/h3>\n<h2 id=\"faqs\">FAQs<\/h2>\n<p style=\"padding-left: 60px;\">\u00a0 \u00a01. What are the guidelines for selecting a windows base image for containerization?<\/p>\n<p style=\"padding-left: 90px;\">a. Use &#8216;Windows server core&#8217; if your application requires a complete .NET framework.<\/p>\n<p style=\"padding-left: 90px;\">b. Use &#8216;Nano Server&#8217; if building an application based on the .NET core.<\/p>\n<p style=\"padding-left: 90px;\">c. If your application requires more dependencies and core windows libraries, use the&#8217; Windows&#8217; image.<\/p>\n<p style=\"padding-left: 60px;\">\u00a0 \u00a0 2. How to achieve High Availability with MongoDB?<\/p>\n<p style=\"padding-left: 90px;\">a. Unlike relational databases, MongoDB is built on a distributed systems architecture, enabling us to scale out the database across multiple instances \u2013\u00a0 \u00a0 \u00a0 \u00a0 which can be one region or spread globally across multiple regions.<\/p>\n<p style=\"padding-left: 90px;\">b. MongoDB stores the data used within the application and queries the data with a modern query language. Schema is flexible, enabling developers to integrate new functionality continuously.<\/p>\n","protected":false},"author":303,"featured_media":12399,"parent":0,"comment_status":"open","ping_status":"open","template":"","blog_category":[3608,3607,6744],"user_email":"aneesa@cloudthat.com","published_by":"324","primary-authors":"","secondary-authors":"","acf":[],"_links":{"self":[{"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog\/12360"}],"collection":[{"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/users\/303"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/comments?post=12360"}],"version-history":[{"count":1,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog\/12360\/revisions"}],"predecessor-version":[{"id":43418,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog\/12360\/revisions\/43418"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/media?parent=12360"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog_category?post=12360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}