{"id":30442,"date":"2022-06-30T00:32:43","date_gmt":"2022-06-29T19:02:43","guid":{"rendered":"http:\/\/ismiletechnologies.com\/?p=30442"},"modified":"2022-08-17T18:01:13","modified_gmt":"2022-08-17T12:31:13","slug":"packaging-applications-as-containers-and-deploying-them-using-azure-kubernetes-service-aks","status":"publish","type":"post","link":"https:\/\/ismiletechnologies.com\/en_us\/azure\/packaging-applications-as-containers-and-deploying-them-using-azure-kubernetes-service-aks\/","title":{"rendered":"Packaging Applications as Containers and Deploying Them using Azure Kubernetes Service (AKS)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"30442\" class=\"elementor elementor-30442\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2c4927a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2c4927a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-53e877c\" data-id=\"53e877c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-9ff18f5 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9ff18f5\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-7809831\" data-id=\"7809831\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a5a4a9d elementor-position-left elementor-vertical-align-bottom elementor-widget elementor-widget-image-box\" data-id=\"a5a4a9d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><a href=\"#auth\" tabindex=\"-1\"><img decoding=\"async\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/elementor\/thumbs\/Mahaboob-Khan-Cloud-Engineer-prp9484lsvgfe4ek5rct0k19qxv2f9luee1d3t29uk.jpg\" title=\"Mahaboob Khan \u2013 Cloud Engineer\" alt=\"Mahaboob Khan - Cloud Engineer\" class=\"elementor-animation-shrink\" loading=\"lazy\" \/><\/a><\/figure><div class=\"elementor-image-box-content\"><h5 class=\"elementor-image-box-title\"><a href=\"#auth\">Mahaboob Khan<\/a><\/h5><p class=\"elementor-image-box-description\">Cloud Engineer<\/p><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-3efe5fb\" data-id=\"3efe5fb\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c993b72 elementor-position-left elementor-vertical-align-bottom elementor-widget elementor-widget-image-box\" data-id=\"c993b72\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><a href=\"#auth\" tabindex=\"-1\"><img decoding=\"async\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/elementor\/thumbs\/Gabriel-Chutuape-Software-Engineer-Intern-prp9476rm1f52ifxb8y6g29t5jzp7ki429dvmj3o0s.png\" title=\"Gabriel Chutuape \u2013 Software Engineer Intern\" alt=\"Gabriel Chutuape - Software Engineer Intern\" class=\"elementor-animation-shrink\" loading=\"lazy\" \/><\/a><\/figure><div class=\"elementor-image-box-content\"><h5 class=\"elementor-image-box-title\"><a href=\"#auth\">Gabriel Chutuape<\/a><\/h5><p class=\"elementor-image-box-description\">Cloud Engineer<\/p><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-2aa1d09\" data-id=\"2aa1d09\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-543e6bf elementor-widget elementor-widget-text-editor\" data-id=\"543e6bf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>When you take your first steps into the world of Cloud application deployment, you won\u2019t get far without hearing the name \u201cKubernetes\u201d.\u00a0\u00a0<\/p>\n<p>Kubernetes is an open source, widely supported, rapidly growing platform for managing containerized workloads and services. Containers are virtualized run-time environments that make it easy to share CPU, memory, storage, and network resources at the operating systems level. They offer a logical packaging mechanism in which applications can be abstracted from the environment in which they actually run. Kubernetes automates the manual processes involved in deploying, managing, and scaling containers.\u00a0<\/p>\n<p>Azure Kubernetes Service (AKS) brings the Microsoft Azure cloud platform together with Kubernetes\u2019 orchestration technology to offer deployment, scaling, and management of Docker containers and container-based applications. It also offers provisioning, scaling, and upgrading of resources based on client demand or requirements, all without any Kubernetes cluster downtime. Docker creates the containers that hold application code and dependencies, and Kubernetes operates and scales groups of those containers to run applications in production.\u00a0<\/p>\n<p>One of the services that can integrate with AKS is the Azure Container Registry (ACR), a registry that holds Docker images. Images are immutable files that contain source code, libraries, dependencies, tools, and the other files needed to run an application. Containers use images to run applications, and the Azure Container Registry is built to receive and store images to run in containerized environments. ACR is a common part of container development workflow and can integrate with continuous integration and delivery tools like Azure Pipelines.\u00a0<\/p>\n<p>In this blog post, we will show an example of how you can package an application using Azure Kubernetes Service, push that application as a Docker image through an Azure Pipeline to the Azure Container Registry, and finally pull the Docker image back out of the Azure Container Registry so that you can run it on your machine and access it via your web browser.\u00a0<\/p>\n<p>Automation of this process would be expected in industry, per the Azure Pipeline\u2019s definition as a medium for continuous integration and delivery. But in order to automate it, we must understand it step by step.\u00a0<\/p>\n<p>Before you begin, make sure that you have the following:\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-58f45b8 elementor-widget elementor-widget-text-editor\" data-id=\"58f45b8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\">Access to Azure DevOps with a Github or Microsoft account\u00a0<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\">A Microsoft Azure account\u00a0<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\">Docker locally installed\u00a0<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\">Azure CLI locally installed\u00a0<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8203dbc elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"8203dbc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8e4b9a3 elementor-widget elementor-widget-heading\" data-id=\"8e4b9a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Packaging and Pushing Your Application <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-76692de elementor-widget elementor-widget-text-editor\" data-id=\"76692de\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">First, you\u2019ll need an application to package. In this case, we will use a simple Java \u201cHello World\u201d Rest Controller. This will be stored in a Spring Boot Maven project, which you can generate from <\/span><span style=\"color: #14a49c;\"><a style=\"color: #14a49c;\" href=\"https:\/\/start.spring.io\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\">https:\/\/start.spring.io<\/span><\/a><\/span><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">. Generate a project there with the Spring Web and Spring Boot Actuator dependencies on Java 11, and then download the .zip file it gives you.<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-106a1f3 elementor-widget elementor-widget-image\" data-id=\"106a1f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"705\" height=\"425\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-10.png\" class=\"attachment-full size-full wp-image-30452\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-10.png 705w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-10-300x181.png 300w\" sizes=\"(max-width: 705px) 100vw, 705px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-283ce71 elementor-widget elementor-widget-text-editor\" data-id=\"283ce71\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>You can store this SimpleController.java file in your downloaded Spring Boot project files under the path spring-boot-example\/src\/main\/java\/com\/example\/azure\/devops, and then in a new folder titled \u201ccontroller\u201d.\u00a0<\/p>\n<p>Create a project in your Azure DevOps workspace to store your application code in, and then use either the Git HTTPS or Git SSH to clone that project repository to your local machine.\u00a0<\/p>\n<p>Next, navigate to where you cloned that repository onto your local machine and move your application files into that folder. Once you are in that folder in your Azure CLI and the application files have been dropped into it, we can begin pushing.\u00a0<\/p>\n<p>To push the files to the Azure DevOps project, type \u201cgit add .\u201d, which adds all files in the current directory to a commit for pushing into a Git repository, and then \u201cgit commit -m \u2018Initial project files\u2019\u201d, which stages your commit for pushing with the message \u201cInitial project files\u201d, and finally \u201cgit push\u201d, which sends your project files to the online Git repository.\u00a0<\/p>\n<p>If everything was successful, you should see something like this:\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6654b1a elementor-widget elementor-widget-image\" data-id=\"6654b1a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1600\" height=\"890\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-15.png\" class=\"attachment-full size-full wp-image-30457\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-15.png 1600w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-15-300x167.png 300w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-15-1024x570.png 1024w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-15-768x427.png 768w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-15-1536x854.png 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c72338a elementor-widget elementor-widget-text-editor\" data-id=\"c72338a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">Our application code and environment is now pushed onto an Azure DevOps repository, which means we can now move onto the next step of containerization.<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-433f777 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"433f777\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2be6f09 elementor-widget elementor-widget-heading\" data-id=\"2be6f09\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Moving your Application through an Azure Pipeline into Azure Container Registry <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5ed2805 elementor-widget elementor-widget-text-editor\" data-id=\"5ed2805\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">In order to send our application code which is now stored on an Azure DevOps repository into the Azure Container Registry, we\u2019re going to need an Azure Pipeline.<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-76580bf elementor-widget elementor-widget-image\" data-id=\"76580bf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"895\" height=\"346\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-11.png\" class=\"attachment-full size-full wp-image-30453\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-11.png 895w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-11-300x116.png 300w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-11-768x297.png 768w\" sizes=\"(max-width: 895px) 100vw, 895px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ed2a33d elementor-widget elementor-widget-text-editor\" data-id=\"ed2a33d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Go to Pipelines on the left pane and click \u201cCreate Pipeline\u201d. Specify that your code is in Azure Repos Git and then choose the repository that we made earlier, using \u201cMaven\u201d to configure the pipeline. Click \u201cSave and run\u201d, and an Azure pipeline definition will be created in the repository you selected under a azure-pipelines.yml file.\u00a0<\/p>\n<p>After the pipeline has finished running and the tests have passed, we need to insert a process in the pipeline telling it to build a Docker image that we can send into the Azure Container Registry. To do this, we need to add some code to the azure-pipelines.yml file.\u00a0<\/p>\n<p>Go to the bottom of the azure-pipelines.yml file, which can be found in your Azure Repo, and append this to it:\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-50bb888 elementor-widget elementor-widget-image\" data-id=\"50bb888\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"456\" height=\"190\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-14.png\" class=\"attachment-full size-full wp-image-30456\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-14.png 456w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-14-300x125.png 300w\" sizes=\"(max-width: 456px) 100vw, 456px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4e03ea elementor-widget elementor-widget-text-editor\" data-id=\"b4e03ea\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">Commit the changes to the pipeline and a new run of the pipeline will automatically start, including this new Build Docker Image step. If everything was successful, you should see something like this:\u00a0<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-943c30f elementor-widget elementor-widget-image\" data-id=\"943c30f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"715\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-12.png\" class=\"attachment-full size-full wp-image-30454\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-12.png 1600w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-12-300x134.png 300w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-12-1024x458.png 1024w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-12-768x343.png 768w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-12-1536x686.png 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-637dc83 elementor-widget elementor-widget-text-editor\" data-id=\"637dc83\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>You won\u2019t see the \u201cPush Docker image\u201d step right now, but you should see that the Build Docker image step was successful. Next, we\u2019ll set up the Push Docker image step. In order to do that, we need to connect this Azure Repo to the Azure Container Registry.\u00a0<\/p>\n<p>In order to create use Azure Container Registry, log into the Azure Portal and search for the Container Registry service. Create a new resource group and container registry and name it whatever you like.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6b912b7 elementor-widget elementor-widget-image\" data-id=\"6b912b7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"498\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-13.png\" class=\"attachment-full size-full wp-image-30455\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-13.png 975w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-13-300x153.png 300w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-13-768x392.png 768w\" sizes=\"(max-width: 975px) 100vw, 975px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-046f71a elementor-widget elementor-widget-text-editor\" data-id=\"046f71a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Now that we\u2019ve created the container registry, we need to instruct the pipeline to push the Docker image after it finishes building it.\u00a0<\/p>\n<p>We\u2019ll be adding this build code to the pom.xml file within the Azure Repo project:\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2335a11 elementor-widget elementor-widget-image\" data-id=\"2335a11\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"694\" height=\"465\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-1.png\" class=\"attachment-full size-full wp-image-30443\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-1.png 694w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-1-300x201.png 300w\" sizes=\"(max-width: 694px) 100vw, 694px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9002dcf elementor-widget elementor-widget-text-editor\" data-id=\"9002dcf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Change the &lt;name&gt; tag\u2019s \u201cyourcontainerregistry\u201d portion to match the container name you created in the Azure Container Registry. In our example, we match it with \u201cmahaboobscontainerregistry.azurecr.io\u201d.\u00a0<\/p>\n<p>Go back to the azure-pipelines.yml file. On the right pane, there is a task for \u201cDocker\u201d, which lets you build or push Docker images. If you click it, it will notify you there is no attached container registry to send your application image to. We must create this connection now.\u00a0<\/p>\n<p>Go to the Azure DevOps Project settings and click on \u201cService Connection\u201d. Create a service connection of type \u201cAzure Container Registry\u201d, and select the container registry that you created earlier. Click save, and the container registry and your pipeline should be attached.\u00a0<\/p>\n<p>Go back to the azure-pipelines.yml file and click on the Docker task once more. You will now see your container registry as eligible to be added. Select your container registry, and select the command for this task as \u201cpush\u201d, with the tag \u201clatest\u201d. This will signify the image as the \u201clatest\u201d image to be pushed.\u00a0<\/p>\n<p>Once you commit your changes, and the pipeline re-runs, you should see the step reflected in the job:\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f87e9f8 elementor-widget elementor-widget-image\" data-id=\"f87e9f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"713\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-8.png\" class=\"attachment-full size-full wp-image-30450\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-8.png 1600w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-8-300x134.png 300w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-8-1024x456.png 1024w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-8-768x342.png 768w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-8-1536x684.png 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8adfbd6 elementor-widget elementor-widget-text-editor\" data-id=\"8adfbd6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">You should also now see that the container image is available for viewing in your newly attached container registry:<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a4ecc1f elementor-widget elementor-widget-image\" data-id=\"a4ecc1f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"759\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-7.png\" class=\"attachment-full size-full wp-image-30449\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-7.png 1600w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-7-300x142.png 300w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-7-1024x486.png 1024w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-7-768x364.png 768w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-7-1536x729.png 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c62cc38 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"c62cc38\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aeb951c elementor-widget elementor-widget-heading\" data-id=\"aeb951c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Pulling from the Azure Container Registry to your Local Machine <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dd5074a elementor-widget elementor-widget-text-editor\" data-id=\"dd5074a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">Now that we have the Docker image available in our container registry, we can run the application using Docker on our local machine. This is where you\u2019ll need to make sure you have Azure CLI installed, as well as Docker.<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9a01add elementor-widget elementor-widget-image\" data-id=\"9a01add\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"245\" height=\"130\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-5.png\" class=\"attachment-full size-full wp-image-30447\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a6b182f elementor-widget elementor-widget-text-editor\" data-id=\"a6b182f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">Open the command prompt and log in to Azure Portal using \u201caz login\u201d with your credentials.\u00a0<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-06242e9 elementor-widget elementor-widget-image\" data-id=\"06242e9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"65\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-4.png\" class=\"attachment-full size-full wp-image-30446\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-4.png 1600w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-4-300x12.png 300w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-4-1024x42.png 1024w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-4-768x31.png 768w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-4-1536x62.png 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-95783bf elementor-widget elementor-widget-text-editor\" data-id=\"95783bf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">Then, log in to your container registry using \u201caz acr login \u2013name name_of_your_container_registry\u201d, where name_of_your_container_registry is the name of your container registry.<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-416287c elementor-widget elementor-widget-image\" data-id=\"416287c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"57\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-3.png\" class=\"attachment-full size-full wp-image-30445\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-3.png 600w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-3-300x29.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9277b77 elementor-widget elementor-widget-text-editor\" data-id=\"9277b77\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">You can list the available images by using the \u201cdocker images\u201d command.<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2bfc3ee elementor-widget elementor-widget-image\" data-id=\"2bfc3ee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1044\" height=\"115\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-6.png\" class=\"attachment-full size-full wp-image-30448\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-6.png 1044w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-6-300x33.png 300w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-6-1024x113.png 1024w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-6-768x85.png 768w\" sizes=\"(max-width: 1044px) 100vw, 1044px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a394832 elementor-widget elementor-widget-text-editor\" data-id=\"a394832\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">Next, pull your image using \u201cdocker pull name_of_your_container_registry.azurecr.io\/spring-boot-example:latest\u201d, replacing the \u201cname_of_your_container_registry\u201d part with the name of your container registry. Notice the \u201clatest\u201d at the end? That\u2019s the tag identifier we put on our image in the pipeline step coming back to help us acquire the correct image.<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ab20544 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"ab20544\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-53ba1ad elementor-widget elementor-widget-heading\" data-id=\"53ba1ad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Running your Application Image <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-129e530 elementor-widget elementor-widget-text-editor\" data-id=\"129e530\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">Finally, you can run your image using \u201cdocker run -p 8080:8080 IMAGE_ID\u201d, replacing IMAGE_ID with the image ID that you see after you run \u201cdocker images\u201d. This opens the image on <\/span><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\">localhost:8080<\/span><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">, which you can reach via your web browser.<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-536741f elementor-widget elementor-widget-image\" data-id=\"536741f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"126\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-9.png\" class=\"attachment-full size-full wp-image-30451\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-9.png 1600w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-9-300x24.png 300w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-9-1024x81.png 1024w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-9-768x60.png 768w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-9-1536x121.png 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-06c44f9 elementor-widget elementor-widget-text-editor\" data-id=\"06c44f9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">Type \u201clocalhost:8080\u201d into your web browser, and if everything is successful, you should see your application (in our case, a Hello World program):<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0518a00 elementor-widget elementor-widget-image\" data-id=\"0518a00\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"632\" height=\"202\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-2.png\" class=\"attachment-full size-full wp-image-30444\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-2.png 632w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/06\/image-2-300x96.png 300w\" sizes=\"(max-width: 632px) 100vw, 632px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b575f4e elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"b575f4e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2d28ec1 elementor-widget elementor-widget-heading\" data-id=\"2d28ec1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Conclusion <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-576dcd6 elementor-widget elementor-widget-text-editor\" data-id=\"576dcd6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">To package and deploy applications as containers using Microsoft Azure, you need to\u00a0<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0cc15b5 elementor-widget elementor-widget-text-editor\" data-id=\"0cc15b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ol>\n<li>create an Azure repository,\u00a0\u00a0<\/li>\n<li>clone it to a local machine via Git,\u00a0<\/li>\n<li>place your application into the local repository,\u00a0<\/li>\n<li>push the repository onto Azure,\u00a0<\/li>\n<li>create an Azure pipeline,\u00a0<\/li>\n<li>connect the Azure pipeline to your Azure repository,\u00a0<\/li>\n<li>add a task to the Azure pipeline to build a Docker image from your repository contents,\u00a0<\/li>\n<li>connect an Azure Container Registry to your Azure pipeline,\u00a0<\/li>\n<li>add a task to the Azure pipeline to push built Docker images into the ACR\u00a0<\/li>\n<li>use Azure CLI to log into your ACR,\u00a0<\/li>\n<li>pull the Docker image using Docker commands in any CLI,\u00a0<\/li>\n<li>finally, run your application using Docker commands.\u00a0<\/li>\n<\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-407de87 elementor-widget elementor-widget-text-editor\" data-id=\"407de87\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #14a49c;\"><a style=\"color: #14a49c;\" href=\"http:\/\/ismiletechnologies.com\/devops-enablement-solution\/\">DevOps and Agile development<\/a><\/span> cite CI\/CD as a best practice, and the technology we used in this blog post shows an introduction to the tools used in accomplishing those practices in your own workplace environment.\u00a0\u00a0<\/p>\n<p>If you need further assistance, Get Your <span style=\"color: #14a49c;\"><a style=\"color: #14a49c;\" href=\"http:\/\/ismiletechnologies.com\/request-a-consultation\/\">Free Consultation with us<\/a><\/span>.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-937904c elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"937904c\" data-element_type=\"section\" data-e-type=\"section\" id=\"auth\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-3e97549\" data-id=\"3e97549\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-18b23a6 elementor-widget elementor-widget-heading\" data-id=\"18b23a6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">About the Authors:<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-34044c9 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"34044c9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a5c8999 elementor-widget elementor-widget-text-editor\" data-id=\"a5c8999\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #000000;\"><em>Mahaboob Khan <\/em><\/span>is a Cloud Engineer at ISmile Technologies, he had extensive experience working on Microsoft Azure which involves activities like Implementation, Managing and troubleshooting the User related issues. With automation tools like Azure ARM Template, Terraform, and Azure DevOps he helps our client to automate deployment of IaaS and PaaS services<\/p><p><span style=\"color: #000000;\"><em>Gabriel Chutuape<\/em><\/span> &#8211; A technology enthusiast passionate about automation, Gabriel Chutuape is a Cloud Engineer at ISmile Technologies. He&#8217;s part of the ISmile Technologies Cloud enablement team that help customers to design\/solution\/project engineering, integrating and implementing infrastructure technologies &amp; services.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-efa2bd7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"efa2bd7\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-0871803\" data-id=\"0871803\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-839d40c elementor-widget elementor-widget-spacer\" data-id=\"839d40c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-d7ffb6b\" data-id=\"d7ffb6b\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7d108a5 elementor-widget elementor-widget-heading\" data-id=\"7d108a5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Cloud Engineer<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-56b77df elementor-widget elementor-widget-heading\" data-id=\"56b77df\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Gabriel Chutuape<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6d03d48 elementor-widget elementor-widget-text-editor\" data-id=\"6d03d48\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>A technology enthusiast passionate about automation, Gabriel Chutuape is a Cloud Engineer at ISmile Technologies. He\u2019s part of the ISmile Technologies Cloud enablement team that help customers to design\/solution\/project engineering, integrating and implementing infrastructure technologies &amp; services.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-d6fc448 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d6fc448\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-f3d6f3b\" data-id=\"f3d6f3b\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3436242 elementor-widget elementor-widget-spacer\" data-id=\"3436242\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-339109e\" data-id=\"339109e\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3b80b67 elementor-widget elementor-widget-heading\" data-id=\"3b80b67\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">CLOUD ENGINEER<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-865a6d1 elementor-widget elementor-widget-heading\" data-id=\"865a6d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Mahaboob Khan<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ca7fece elementor-widget elementor-widget-text-editor\" data-id=\"ca7fece\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>A Cloud Engineer at ISmile Technologies, he had extensive experience working on Microsoft Azure which involves activities like Implementation, Managing and troubleshooting the User related issues. With automation tools like Azure ARM Template, Terraform, and Azure DevOps, he helps our client to automate deployment of IaaS and PaaS services.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Mahaboob Khan Cloud Engineer Gabriel Chutuape Cloud Engineer When you take your first steps into the world of Cloud application deployment, you won\u2019t get far without hearing the name \u201cKubernetes\u201d.\u00a0\u00a0 Kubernetes is an open source, widely supported, rapidly growing platform for managing containerized workloads and services. Containers are virtualized run-time environments that make it easy [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":30458,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[245],"tags":[],"class_list":["post-30442","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure"],"_links":{"self":[{"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/posts\/30442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/comments?post=30442"}],"version-history":[{"count":63,"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/posts\/30442\/revisions"}],"predecessor-version":[{"id":32203,"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/posts\/30442\/revisions\/32203"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/media\/30458"}],"wp:attachment":[{"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/media?parent=30442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/categories?post=30442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/tags?post=30442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}