{"id":439,"date":"2020-10-05T00:00:00","date_gmt":"2020-10-05T00:00:00","guid":{"rendered":""},"modified":"2025-06-30T08:06:18","modified_gmt":"2025-06-30T15:06:18","slug":"enabling-resilient-devops-practices-with-code-to-cloud-automation","status":"publish","type":"post","link":"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/","title":{"rendered":"Enabling resilient DevOps practices with code to cloud automation"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>This blog post was co-authored by Usha Narayanabhatta, Product Manager, GitHub.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As digital transformation has evolved, so have customer expectations. Enterprises are expected to deliver continuous value by releasing frequent bug-proof updates with little to no disruption to their userbase. This is no small feat, as nations and governments roll out stringent new data and security measures.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So how are enterprises able to ship faster while maintaining governance, security, and compliance standards amidst a pandemic that has forced work to be remote?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Based on the <a href=\"https:\/\/aka.ms\/devopsreport\" target=\"_blank\" rel=\"noopener\">Enterprise DevOps 2020-2021<\/a> report, 80 percent of top-performing enterprises surveyed say they have begun \u201cshifting-left,\u201d or automating governance, security, and compliance into the early stages of their software development lifecycles (SDLC). These enterprises are not only automating their build and release workflows, but they\u2019re also adopting an \u201ceverything-as-code\u201d mindset. This shift means that not just infrastructure configurations and release pipelines, but also compliance and security policies, are written \u201cas code,\u201d enabling continuous improvement, while promoting better re-use, resilience, and driving greater transparency.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s with all this in mind that we continue to refine, update, and add to our GitHub Actions portfolio. At <a href=\"https:\/\/aka.ms\/MS-Ignite-Session-Resiliant-DevOps-Practices\" target=\"_blank\" rel=\"noopener\">Microsoft Ignite<\/a> we announced new GitHub Actions for Azure, which we added to our growing catalogue of <a href=\"https:\/\/aka.ms\/GitHubActionsforAzureDocs\" target=\"_blank\" rel=\"noopener\">Azure and GitHub integrations<\/a>, with more to come soon. GitHub Actions for Azure enables deployments to multiple Azure services\u2014from web applications to serverless functions to Kubernetes, to Azure SQL and MySQL databases\u2014ultimately helping enterprises stay resilient while giving the flexibility to build an automated workflow to manage your SDLC.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"manage-azure-policy-as-code-in-github\">Manage Azure Policy as Code in GitHub<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As you progress on your Cloud Governance journey, there is an increasing need to shift from manually managing each policy in the Azure portal to something more manageable, collaborative, and repeatable at enterprise scale. We are announcing that we made the integration between Azure Policy and GitHub even stronger to help you on this journey. You can now easily export Azure policies to a GitHub repository in just a few clicks. All exported policies will be stored as files in GitHub. You can then collaborate and track changes using version control and push policy file changes to Azure Policy using <a href=\"https:\/\/github.com\/marketplace\/actions\/manage-azure-policy\" target=\"_blank\" rel=\"noopener\">Manage Azure Policy<\/a> action. See <a href=\"https:\/\/aka.ms\/AA9ojd6\" target=\"_blank\" rel=\"noopener\">Managing Azure Policy as Code with GitHub<\/a> to learn more and go to <a href=\"https:\/\/aka.ms\/policyascode\" target=\"_blank\" rel=\"noopener\">Azure Policy<\/a> to access the feature.<\/p>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/385a8bf1-35dd-494e-af1b-eea7092fb5fa.webp\" alt=\"Export policy to GitHub.\" style=\"border-radius:0px\" title=\"\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"deploy-arm-infrastructure-as-code\">Deploy ARM infrastructure as code<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With the move to the cloud, many teams need to repeatedly deploy their solutions to the cloud and ensure their infrastructure is in a reliable state. To meet these challenges, you can automate deployments by defining the infrastructure that needs to be deployed as code with Azure Resource Management (ARM) templates.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To address this, we are releasing a <a href=\"https:\/\/github.com\/marketplace\/actions\/deploy-azure-resource-manager-arm-template\" target=\"_blank\" rel=\"noopener\">Deploy Azure Resource Manager Template action<\/a>. With this action you can automate your workflow to deploy ARM templates and manage Azure resources. This action can be used to deploy ARM templates at any <a href=\"https:\/\/docs.microsoft.com\/Azure\/azure-resource-manager\/resource-group-template-deploy-rest#deployment-scope\" target=\"_blank\" rel=\"noopener\">deployment scope<\/a>; resource group, subscription or at a management group scope. The output of this ARM deployment action can be used in subsequent actions within the workflow as well for further processing.<\/p>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/0a3f839a-a590-4508-b258-9f0c7f315abc.webp\" alt=\"Deploy ARM templates.\" style=\"border-radius:0px\" title=\"Deploy ARM templates.\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"build-azure-virtual-machine-images-for-immutable-infrastructure\">Build Azure Virtual Machine Images for immutable infrastructure<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With the newly rolled out <a href=\"https:\/\/aka.ms\/build-vm-image-action\" target=\"_blank\" rel=\"noopener\">Build Azure Virtual Machine Image<\/a> action, customizing, creating, and distributing virtual machine (VM) images just got easier. You can now use this action to create custom VM images that hold artifacts produced in your Continuous Delivery workflows, distribute them as a <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/virtual-machines\/windows\/shared-images-portal\" target=\"_blank\" rel=\"noopener\">Shared Image Gallery<\/a> version or a managed image or a virtual hard disk (VHD) and get complete traceability between the <a href=\"https:\/\/aka.ms\/AA9ny4b\" target=\"_blank\" rel=\"noopener\">GitHub and Azure portal<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/a7344646-06db-40b1-8efa-b01a3d938dad.webp\" alt=\"Virtual machine image gallery.\" style=\"border-radius:0px\" title=\"\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trace-kubernetes-changes-from-azure-portal-to-github-commits\">Trace Kubernetes changes from Azure portal to GitHub commits<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/Azure\/k8s-deploy\" target=\"_blank\" rel=\"noopener\">Deploy to Kubernetes cluster action<\/a> is now enhanced to enable a changelog view in the Azure portal to trace any deployment done on an Azure Kubernetes Service (AKS) cluster from the exact GitHub commits and issues that got deployed all the way to the specific GitHub workflow that was used to deploy the changes.<\/p>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/6cbda55e-2faa-4948-8d03-89a0da20abce.webp\" alt=\"A changelog view in the Azure portal.\" style=\"border-radius:0px\" title=\"A changelog view in the Azure portal.\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"scan-container-images-as-part-of-pull-request-workflows\">Scan container images as part of Pull Request workflows<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can now add the <a href=\"https:\/\/github.com\/Azure\/container-scan\" target=\"_blank\" rel=\"noopener\">container scanning action<\/a> to your workflows and add additional checks to secure the Docker images created as part of Continuous Integration (CI) or Pull Request (PR) workflows. This helps developers scan for a common vulnerabilities in their Docker images and gain confidence before pushing to a container registry or deploying to a containerized web app or a Kubernetes cluster.<\/p>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/86405469-d1ec-4dfa-aaca-b983e57cf4c2.webp\" alt=\"Container scanning action results.\" style=\"border-radius:0px\" title=\"Container scanning action results.\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"get-started\">Get started<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check out the documentation for <a href=\"https:\/\/aka.ms\/AA9ojd6\" target=\"_blank\" rel=\"noopener\">Azure Policy integration with GitHub<\/a>, <a href=\"https:\/\/github.com\/Azure\/build-vm-image\" target=\"_blank\" rel=\"noopener\">Azure Virtual Machine deployments<\/a>, <a href=\"https:\/\/github.com\/Azure\/arm-deploy\" target=\"_blank\" rel=\"noopener\">Deploy ARM Template action<\/a>, and <a href=\"https:\/\/github.com\/Azure\/container-scan\" target=\"_blank\" rel=\"noopener\">Container Scanning Action<\/a> to get started.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also, feel free to explore the improved <a href=\"https:\/\/aka.ms\/devopsstarterforgithub\" target=\"_blank\" rel=\"noopener\">DevOps starter<\/a> experience which now supports GitHub Actions as a CI\/CD provider. This new enhancement allows developers to set up an end-to-end GitHub workflow for a sample application with just four simple steps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you have any changes you\u2019d like to see or suggestions for these features, then we\u2019d love your feedback as well as contributions to the <a href=\"https:\/\/github.com\/azure\/actions\" target=\"_blank\" rel=\"noopener\">GitHub Action repositories<\/a>\u2014we\u2019re taking pull requests. If you encounter a problem with any specific action, you can also open an issue on the action repository.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">View more <a href=\"https:\/\/aka.ms\/GitHubandAzure\" target=\"_blank\" rel=\"noopener\">GitHub integrations with Azure to automate your code-to-cloud workflow<\/a>.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Check out the <a href=\"https:\/\/github.com\/Azure\/actions\" target=\"_blank\" rel=\"noopener\">comprehensive list of GitHub Actions<\/a>.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>At Microsoft Ignite we announced new GitHub Actions for Azure, which we added to our growing catalogue of Azure and GitHub integrations, with more to come soon.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","footnotes":"","msx_community_cta_settings":[]},"categories":[1467,1482],"tags":[],"audience":[3054,3055,3053,3056],"content-type":[1465],"product":[1546,1455],"tech-community":[],"topic":[],"coauthors":[213],"class_list":["post-439","post","type-post","status-publish","format-standard","hentry","category-compute","category-management-and-governance","audience-business-decision-makers","audience-developers","audience-it-decision-makers","audience-it-implementors","content-type-announcements","product-azure-policy","product-virtual-machines","review-flag-1680286581-295","review-flag-free-1680286579-836","review-flag-new-1680286579-546","review-flag-percent","review-flag-vm-1680286585-143"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Enabling resilient DevOps practices with code to cloud automation | Microsoft Azure Blog<\/title>\n<meta name=\"description\" content=\"At Microsoft Ignite we announced new GitHub Actions for Azure, which we added to our growing catalogue of Azure and GitHub integrations, with more to come soon.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Enabling resilient DevOps practices with code to cloud automation | Microsoft Azure Blog\" \/>\n<meta property=\"og:description\" content=\"At Microsoft Ignite we announced new GitHub Actions for Azure, which we added to our growing catalogue of Azure and GitHub integrations, with more to come soon.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Azure Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/microsoftazure\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-05T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-30T15:06:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/385a8bf1-35dd-494e-af1b-eea7092fb5fa.webp\" \/>\n<meta name=\"author\" content=\"Samit Jhaveri\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@azure\" \/>\n<meta name=\"twitter:site\" content=\"@azure\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Samit Jhaveri\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/\"},\"author\":[{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/samit-jhaveri\/\",\"@type\":\"Person\",\"@name\":\"Samit Jhaveri\"}],\"headline\":\"Enabling resilient DevOps practices with code to cloud automation\",\"datePublished\":\"2020-10-05T00:00:00+00:00\",\"dateModified\":\"2025-06-30T15:06:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/\"},\"wordCount\":879,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/385a8bf1-35dd-494e-af1b-eea7092fb5fa.webp\",\"articleSection\":[\"Compute\",\"Management and governance\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/\",\"name\":\"Enabling resilient DevOps practices with code to cloud automation | Microsoft Azure Blog\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/385a8bf1-35dd-494e-af1b-eea7092fb5fa.webp\",\"datePublished\":\"2020-10-05T00:00:00+00:00\",\"dateModified\":\"2025-06-30T15:06:18+00:00\",\"description\":\"At Microsoft Ignite we announced new GitHub Actions for Azure, which we added to our growing catalogue of Azure and GitHub integrations, with more to come soon.\",\"breadcrumb\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#primaryimage\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/385a8bf1-35dd-494e-af1b-eea7092fb5fa.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/385a8bf1-35dd-494e-af1b-eea7092fb5fa.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog home\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compute\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/compute\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enabling resilient DevOps practices with code to cloud automation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"name\":\"Microsoft Azure Blog\",\"description\":\"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.\",\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\",\"name\":\"Microsoft Azure Blog\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"width\":512,\"height\":512,\"caption\":\"Microsoft Azure Blog\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/microsoftazure\",\"https:\/\/x.com\/azure\",\"https:\/\/www.instagram.com\/microsoftdeveloper\/\",\"https:\/\/www.linkedin.com\/company\/16188386\",\"https:\/\/www.youtube.com\/user\/windowsazure\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117\",\"name\":\"shakir\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"caption\":\"shakir\"},\"sameAs\":[\"https:\/\/azure.microsoft.com\"],\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Enabling resilient DevOps practices with code to cloud automation | Microsoft Azure Blog","description":"At Microsoft Ignite we announced new GitHub Actions for Azure, which we added to our growing catalogue of Azure and GitHub integrations, with more to come soon.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/","og_locale":"en_US","og_type":"article","og_title":"Enabling resilient DevOps practices with code to cloud automation | Microsoft Azure Blog","og_description":"At Microsoft Ignite we announced new GitHub Actions for Azure, which we added to our growing catalogue of Azure and GitHub integrations, with more to come soon.","og_url":"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/","og_site_name":"Microsoft Azure Blog","article_publisher":"https:\/\/www.facebook.com\/microsoftazure","article_published_time":"2020-10-05T00:00:00+00:00","article_modified_time":"2025-06-30T15:06:18+00:00","og_image":[{"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/385a8bf1-35dd-494e-af1b-eea7092fb5fa.webp","type":"","width":"","height":""}],"author":"Samit Jhaveri","twitter_card":"summary_large_image","twitter_creator":"@azure","twitter_site":"@azure","twitter_misc":{"Written by":"Samit Jhaveri","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#article","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/"},"author":[{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/samit-jhaveri\/","@type":"Person","@name":"Samit Jhaveri"}],"headline":"Enabling resilient DevOps practices with code to cloud automation","datePublished":"2020-10-05T00:00:00+00:00","dateModified":"2025-06-30T15:06:18+00:00","mainEntityOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/"},"wordCount":879,"commentCount":0,"publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/385a8bf1-35dd-494e-af1b-eea7092fb5fa.webp","articleSection":["Compute","Management and governance"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/","name":"Enabling resilient DevOps practices with code to cloud automation | Microsoft Azure Blog","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#primaryimage"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/385a8bf1-35dd-494e-af1b-eea7092fb5fa.webp","datePublished":"2020-10-05T00:00:00+00:00","dateModified":"2025-06-30T15:06:18+00:00","description":"At Microsoft Ignite we announced new GitHub Actions for Azure, which we added to our growing catalogue of Azure and GitHub integrations, with more to come soon.","breadcrumb":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#primaryimage","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/385a8bf1-35dd-494e-af1b-eea7092fb5fa.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2020\/10\/385a8bf1-35dd-494e-af1b-eea7092fb5fa.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/enabling-resilient-devops-practices-with-code-to-cloud-automation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog home","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/"},{"@type":"ListItem","position":2,"name":"Compute","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/compute\/"},{"@type":"ListItem","position":3,"name":"Enabling resilient DevOps practices with code to cloud automation"}]},{"@type":"WebSite","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","name":"Microsoft Azure Blog","description":"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.","publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization","name":"Microsoft Azure Blog","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","width":512,"height":512,"caption":"Microsoft Azure Blog"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/microsoftazure","https:\/\/x.com\/azure","https:\/\/www.instagram.com\/microsoftdeveloper\/","https:\/\/www.linkedin.com\/company\/16188386","https:\/\/www.youtube.com\/user\/windowsazure"]},{"@type":"Person","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117","name":"shakir","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4","url":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","caption":"shakir"},"sameAs":["https:\/\/azure.microsoft.com"],"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/"}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Azure Blog","distributor_original_site_url":"https:\/\/azure.microsoft.com\/en-us\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/comments?post=439"}],"version-history":[{"count":1,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/439\/revisions"}],"predecessor-version":[{"id":44619,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/439\/revisions\/44619"}],"wp:attachment":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/media?parent=439"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/categories?post=439"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tags?post=439"},{"taxonomy":"audience","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/audience?post=439"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/content-type?post=439"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/product?post=439"},{"taxonomy":"tech-community","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tech-community?post=439"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/topic?post=439"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/coauthors?post=439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}