<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Azure on Thorsten Hans</title>
		<link>https://thorsten-hans.com/tags/azure/</link>
		<description>Recent content in Azure on Thorsten Hans</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
		
			<lastBuildDate>Fri, 26 May 2023 10:04:05 +0200</lastBuildDate>
		
			<atom:link href="https://thorsten-hans.com/tags/azure/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>How to use Azure Cosmos DB as a key-value store for Fermyon Spin</title>
				<link>https://thorsten-hans.com/azure-cosmos-db-as-key-value-store-for-fermyon-spin/</link>
				<pubDate>Fri, 26 May 2023 10:04:05 +0200</pubDate>
				<guid>https://thorsten-hans.com/azure-cosmos-db-as-key-value-store-for-fermyon-spin/</guid>
				<description>&lt;p&gt;With the 1.2.1 release of Fermyon Spin, we can now use Azure Cosmos DB as a key-value store for persisting data when building serverless applications. In this article, I guide you through setting up the necessary infrastructure and creating a fairly simple app to store and retrieve arbitrary values using Azure Cosmos DB as the key-value store.&lt;/p&gt;&#xA;&lt;p&gt;All code shown in this article is also available on GitHub at &lt;a href=&#34;https://github.com/ThorstenHans/spin-kv-azure-cosmosdb&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/ThorstenHans/spin-kv-azure-cosmosdb&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Azure Blob Storage using the Azure SDK for Go</title>
				<link>https://thorsten-hans.com/azure-blob-storage-using-azure-sdk-for-golang/</link>
				<pubDate>Wed, 14 Dec 2022 08:18:27 +0100</pubDate>
				<guid>https://thorsten-hans.com/azure-blob-storage-using-azure-sdk-for-golang/</guid>
				<description>&lt;p&gt;The Azure SDK team reworked the SDK for Go and released a bunch of Go modules to interact with popular cloud services - not just from a management perspective. In this post, we will take a closer look at the Go-modules for interacting with blob storage capabilities offered by Azure Storage Account.&lt;/p&gt;&#xA;&lt;p&gt;When interacting with Azure services, we must authenticate. The Azure SDK for Go supports different authentication patterns and flows. For demonstration purposes and to keep things simple, we’ll address two different authentication approaches as part of this article:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Provision AKS and NAT Gateway with Terraform</title>
				<link>https://thorsten-hans.com/provision-aks-and-nat-gateway-with-terraform/</link>
				<pubDate>Fri, 09 Sep 2022 05:20:58 +0000</pubDate>
				<guid>https://thorsten-hans.com/provision-aks-and-nat-gateway-with-terraform/</guid>
				<description>&lt;p&gt;A Virtual Network NAT (NAT Gateway) is the recommended method for outbound connectivity when using Azure Virtual Networks (vNets). We can also use a NAT Gateway to route egress traffic from Azure Kubernetes Service (AKS), if the AKS cluster is deployed to a subnet associated with a NAT Gateway.&lt;/p&gt;&#xA;&lt;p&gt;In this article, we&amp;rsquo;ll look at what NAT Gateway is, which benefits you get from using a NAT Gateway for outbound connectivity, and how we can provision both AKS and NAT Gateway using Terraform.&lt;/p&gt;</description>
			</item>
			<item>
				<title>How to Deploy Azure Container Apps with Terraform</title>
				<link>https://thorsten-hans.com/deploy-azure-container-apps-with-terraform/</link>
				<pubDate>Fri, 12 Aug 2022 18:56:47 +0000</pubDate>
				<guid>https://thorsten-hans.com/deploy-azure-container-apps-with-terraform/</guid>
				<description>&lt;p&gt;Although we can provision and manage Azure Container Apps with Project Bicep (&lt;a href=&#34;https://www.thorsten-hans.com/how-to-deploy-azure-container-apps-with-bicep/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;as explained in this article&lt;/a&gt;&#xA;), people keep on asking how to manage their Azure Container Apps using HashiCorp Terraform. This article demonstrates how to provision Azure Container Apps with Terraform utilizing a combination of the well-known AzureRM provider (&lt;code&gt;azurerm&lt;/code&gt;) and the recently released AzAPI provider (&lt;code&gt;azapi&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-is-the-azapi-provider&#34;&gt;What is the AzAPI provider&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#deploy-azure-container-apps-with-terraform&#34;&gt;Deploy Azure Container Apps with Terraform&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#bootstrap-the-project-with-azurerm-and-azapi-providers&#34;&gt;Bootstrap the project with &lt;code&gt;AzureRM&lt;/code&gt; and &lt;code&gt;AzAPI&lt;/code&gt; providers&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#authenticate-using-an-service-principal&#34;&gt;Authenticate using an Service Principal&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#create-locals-and-variables&#34;&gt;Create Locals and Variables&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#specify-resource-group-and-log-analytics-workspace-with-azurerm&#34;&gt;Specify Resource Group and Log Analytics Workspace with AzureRM&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#hands-on-use-the-azapi-provider&#34;&gt;Hands-on: Use the AzAPI provider&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#hint-vscode-extension-for-the-azapi-provider&#34;&gt;Hint: VSCode extension for the AzAPI provider&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#describe-the-azure-container-app-environment-with-azapi&#34;&gt;Describe the Azure Container App Environment with AzAPI&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#describe-the-azure-container-apps-with-azapi&#34;&gt;Describe the Azure Container Apps with AzAPI&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#provision-azure-container-apps-with-terraform&#34;&gt;Provision Azure Container Apps with Terraform&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-weve-covered-in-this-article&#34;&gt;What we&amp;rsquo;ve covered in this article&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#conclusion&#34;&gt;Conclusion&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Before we dive into provisioning a sample workload, let&amp;rsquo;s look at what the AzAPI provider is and how it works.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Custom health probes with Azure Container Apps</title>
				<link>https://thorsten-hans.com/custom-health-probes-with-azure-container-apps/</link>
				<pubDate>Fri, 25 Mar 2022 11:41:56 +0000</pubDate>
				<guid>https://thorsten-hans.com/custom-health-probes-with-azure-container-apps/</guid>
				<description>&lt;p&gt;In Kubernetes, individual probes like &lt;code&gt;liveness&lt;/code&gt;, &lt;code&gt;readiness&lt;/code&gt;, and &lt;code&gt;startup&lt;/code&gt; are mission-critical when deploying applications. Kubernetes uses probes to determine the health of containers in a &lt;em&gt;Pod&lt;/em&gt;. Kubernetes may restart &lt;em&gt;Pods&lt;/em&gt; because of failing probes. On top of that, Kubernetes uses probes to determine if a particular container can deal with incoming requests. Kubernetes &lt;em&gt;Services&lt;/em&gt; will route incoming requests to containers that made it to the &lt;code&gt;Ready&lt;/code&gt; state. If a readiness probe is defined on a container, that container must successfully respond to the probe invocation to become &lt;code&gt;Ready&lt;/code&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>How to run your own Helm Repository on Azure Container Apps</title>
				<link>https://thorsten-hans.com/how-to-run-your-own-helm-repository-on-azure-container-apps/</link>
				<pubDate>Tue, 15 Mar 2022 15:29:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/how-to-run-your-own-helm-repository-on-azure-container-apps/</guid>
				<description>&lt;p&gt;Do you use Helm charts for packaging and deploying your stuff to Kubernetes? Have you ever thought about creating your own Helm repository to store and distribute your charts? This article explains how to take &lt;a href=&#34;https://chartmuseum.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;ChartMuseum&lt;/a&gt;&#xA; and run it on Azure Container Apps backed by an Azure Storage Account. You can find all source code shown in this example in the &lt;code&gt;005-chartmuseum&lt;/code&gt; folder of &lt;a href=&#34;https://github.com/ThorstenHans/azure-container-apps-samples&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;my Azure Container Apps samples repository on GitHub&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Master Azure CLI queries - The missing manual</title>
				<link>https://thorsten-hans.com/master-azure-cli-queries-the-missing-manual/</link>
				<pubDate>Wed, 09 Mar 2022 20:28:35 +0100</pubDate>
				<guid>https://thorsten-hans.com/master-azure-cli-queries-the-missing-manual/</guid>
				<description>&lt;p&gt;Have you ever used Azure CLI? Azure CLI is probably the best way to interact with Microsoft Azure and to automate recurring tasks in the context of Microsoft&amp;rsquo;s public cloud.&#xA;However, I often see people writing fundamental shell scripts to execute more advanced queries or filter simple lists of elements returned from Azure CLI.&lt;/p&gt;&#xA;&lt;p&gt;Although using shell scripts is an excellent way to get things done, it&amp;rsquo;s more time-consuming compared to learning all the capabilities that Azure CLI brings to the table.&#xA;Microsoft provides some good documentation on how to write fundamental queries with Azure CLI. However, more advanced, real-world queries are not documented. This is why people start tinkering with shell scripts instead of using built-in capabilities.&#xA;So let&amp;rsquo;s quickly catch up with fundamental &lt;a href=&#34;https://jmespath.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;JMESPath&lt;/a&gt;&#xA; queries that every Azure CLI user should know.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Custom health probes with Application Gateway Ingress Controller</title>
				<link>https://thorsten-hans.com/custom-health-probes-with-application-gateway-ingress-controller/</link>
				<pubDate>Wed, 16 Feb 2022 19:58:50 +0100</pubDate>
				<guid>https://thorsten-hans.com/custom-health-probes-with-application-gateway-ingress-controller/</guid>
				<description>&lt;p&gt;With &lt;a href=&#34;https://github.com/Azure/application-gateway-kubernetes-ingress/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Azure Application Gateway Ingress Controller (AGIC)&lt;/a&gt;&#xA;, we can integrate an existing Azure Application Gateway instance with Kubernetes. In Kubernetes, an ingress controller is responsible for routing inbound requests to applications running inside the cluster. AGIC automatically watches &lt;code&gt;Ingress&lt;/code&gt; resources inside your cluster and automatically updates the linked instance of Azure Application Gateway upon reconciliation.&lt;/p&gt;&#xA;&lt;p&gt;Azure Application Gateway uses &lt;em&gt;health probes&lt;/em&gt; to determine if the desired backend target can serve requests. Azure Application Gateway won&amp;rsquo;t send incoming requests to the backend target if a configured health probe fails. Instead, it will respond to the request with an &lt;code&gt;HTTP 502&lt;/code&gt;. If the health probe is successful, incoming requests will be forwarded to the desired backend target, responsible for handling the requests and generating proper responses.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Exposing gRPC services in Azure Container Apps</title>
				<link>https://thorsten-hans.com/exposing-grpc-services-in-azure-container-apps/</link>
				<pubDate>Mon, 07 Feb 2022 11:06:35 +0000</pubDate>
				<guid>https://thorsten-hans.com/exposing-grpc-services-in-azure-container-apps/</guid>
				<description>&lt;p&gt;In my recent webinar on Azure Container Apps, an attendee asked if gRPC services could be exposed. Although I was pretty sure this was possible, I asked the attendee for some patience because I wanted to try this independently. Long story short, it&amp;rsquo;s possible. This post demonstrates how to expose gRPC services with a simple .NET 6 gRPC API and a corresponding client. We&amp;rsquo;ll also talk about a small glitch that may prevent your gRPC services hosted in Azure Container Apps from being accessible.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Automate Azure with Azure Functions and Go</title>
				<link>https://thorsten-hans.com/automate-azure-with-azure-functions-and-go/</link>
				<pubDate>Sat, 18 Dec 2021 10:52:45 +0000</pubDate>
				<guid>https://thorsten-hans.com/automate-azure-with-azure-functions-and-go/</guid>
				<description>&lt;p&gt;Automation is key to success in the cloud. In this article, we will look at how to automate recurring tasks using &lt;a href=&#34;https://pkg.go.dev/github.com/Azure/azure-sdk-for-go&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Azure SDK for Go&lt;/a&gt;&#xA; with Azure Functions. This article contributes to the &lt;a href=&#34;https://golang.christmas/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go Advent Calendar&lt;/a&gt;&#xA;🎄. If you haven&amp;rsquo;t heard about it, you should check out all the awesome content contributed to the Go Advent Calendar and level up your Go programming skill during the holiday season.&lt;/p&gt;&#xA;&lt;p&gt;The sample code shown in this article can be found &lt;a href=&#34;https://github.com/ThorstenHans/go-advent&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;in this repository on GitHub&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Let&#39;s build a serverless Christmas image tagging solution with Azure Computer Vision</title>
				<link>https://thorsten-hans.com/serverless-image-tagging-with-azure-computer-vision/</link>
				<pubDate>Thu, 25 Nov 2021 15:06:37 +0000</pubDate>
				<guid>https://thorsten-hans.com/serverless-image-tagging-with-azure-computer-vision/</guid>
				<description>&lt;p&gt;By leveraging serverless capabilities provided by Azure, we can focus on actually building something instead of managing or taming the necessary infrastructure. &lt;a href=&#34;https://azure.microsoft.com/en-us/services/cognitive-services/custom-vision-service/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Azure Computer Vision&lt;/a&gt;&#xA; is one of those serverless capabilities you can use to build cool things rapidly.&lt;/p&gt;&#xA;&lt;p&gt;Christmas 🎅🏼 is around the corner! That said, it&amp;rsquo;s time to gear up and flood social media with properly tagged images. To do so, we will build a simple &lt;strong&gt;serverless solution that tags all your Christmas images automatically&lt;/strong&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Traffic split in Azure Container Apps</title>
				<link>https://thorsten-hans.com/traffic-split-in-azure-container-apps/</link>
				<pubDate>Thu, 04 Nov 2021 18:45:15 +0000</pubDate>
				<guid>https://thorsten-hans.com/traffic-split-in-azure-container-apps/</guid>
				<description>&lt;p&gt;With Azure Container Apps (ACA), Microsofts latest serverless runtime for containerized workloads in Azure, we can customize certain aspects of traffic routing on the ingress level. This article will look at traffic split and configure a relatively simple API to leverage a tailored traffic split configuration in Azure Container Apps. If you are new to Azure Container Apps, consider reading my article &lt;a href=&#34;https://www.thorsten-hans.com/introduction-to-azure-container-apps/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&amp;ldquo;Introduction to Azure Container Apps&amp;rdquo;&lt;/a&gt;&#xA; first.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-traffic-split&#34;&gt;What is traffic split&lt;/h2&gt;&#xA;&lt;p&gt;First, let&amp;rsquo;s quickly revisit what traffic split is. Traffic split is a mechanism that routes configurable percentages of incoming requests (traffic) to various downstream services. See the following picture, which shows the relation between ACA ingress controller, traffic split configuration, and downstream services (or revisions in the case of ACA):&lt;/p&gt;</description>
			</item>
			<item>
				<title>How to deploy Azure Container Apps with Bicep</title>
				<link>https://thorsten-hans.com/how-to-deploy-azure-container-apps-with-bicep/</link>
				<pubDate>Wed, 03 Nov 2021 19:21:33 +0000</pubDate>
				<guid>https://thorsten-hans.com/how-to-deploy-azure-container-apps-with-bicep/</guid>
				<description>&lt;p&gt;Although Azure Portal and Azure CLI provide a decent experience to deploy Azure Container Apps, I prefer using Infrastructure as Code (IaC) to deploy and manage my cloud infrastructure. That said, this post guides you through the process of deploying Azure Container Apps using Bicep.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;!Note that container apps are moving namespace. In March 2022, ACA will shift from the &lt;code&gt;Microsoft.Web&lt;/code&gt; namespace to &lt;code&gt;Microsoft.Apps&lt;/code&gt;. Everything described here should still work, but you have to change the namespace!&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
			</item>
			<item>
				<title>Introduction to Azure Container Apps</title>
				<link>https://thorsten-hans.com/introduction-to-azure-container-apps/</link>
				<pubDate>Tue, 02 Nov 2021 23:36:24 +0000</pubDate>
				<guid>https://thorsten-hans.com/introduction-to-azure-container-apps/</guid>
				<description>&lt;p&gt;During Ignite 2021, Microsoft announced the public preview of &lt;strong&gt;Azure Container Apps&lt;/strong&gt;, a fully managed serverless container runtime for building and running modern applications at scale.&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;The announcement of &lt;a href=&#34;https://x.com/hashtag/AzureContainerApps?src=hash&amp;amp;ref_src=twsrc%5Etfw&#34;&gt;#AzureContainerApps&lt;/a&gt; was definitely my personal highlight at &lt;a href=&#34;https://x.com/hashtag/MSIgnite?src=hash&amp;amp;ref_src=twsrc%5Etfw&#34;&gt;#MSIgnite&lt;/a&gt; so far 🚀 &lt;a href=&#34;https://t.co/zbHaYotIWi&#34;&gt;pic.twitter.com/zbHaYotIWi&lt;/a&gt;&lt;/p&gt;&amp;mdash; Thorsten Hans 🦀 (@ThorstenHans) &lt;a href=&#34;https://x.com/ThorstenHans/status/1455676602948505609?ref_src=twsrc%5Etfw&#34;&gt;November 2, 2021&lt;/a&gt;&lt;/blockquote&gt;&#xA;&lt;script async src=&#34;https://platform.x.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;&#xA;&#xA;&#xA;&lt;p&gt;This article gives you a brief introduction to what Azure Container Apps is, which technologies are used to provide this fantastic serverless container runtime and how you can build and run containerized workloads on Azure Container Apps&lt;/p&gt;</description>
			</item>
			<item>
				<title>Add krustlet node pools to Azure Kubernetes Service</title>
				<link>https://thorsten-hans.com/add-krustlet-node-pools-to-azure-kubernetes-service/</link>
				<pubDate>Tue, 26 Oct 2021 14:23:42 +0000</pubDate>
				<guid>https://thorsten-hans.com/add-krustlet-node-pools-to-azure-kubernetes-service/</guid>
				<description>&lt;p&gt;If we had traveled three years back in time, running WebAssembly (Wasm) workloads in Kubernetes would have sounded like fiction. Today, it&amp;rsquo;s real! With &lt;a href=&#34;https://krustlet.dev&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;krustlet&lt;/a&gt;&#xA;, developers can run Wasm workloads directly in Kubernetes. This article will look at what krustlet is and how we can bring it to our Azure Kubernetes Service (AKS) clusters.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-krustlet&#34;&gt;What is Krustlet&lt;/h2&gt;&#xA;&lt;p&gt;Krustlet is a &lt;a href=&#34;https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Kubernetes kubelet&lt;/a&gt;&#xA; written in Rust to run Wasm workloads in Kubernetes. Nodes running &lt;em&gt;krustlet&lt;/em&gt; have special tolerations assigned, which we can use within Kubernetes manifests, to ensure Wasm workloads will be scheduled to &lt;em&gt;krustlet&lt;/em&gt; nodes. Under the covers, &lt;em&gt;krustlet&lt;/em&gt; uses &lt;a href=&#34;https://wasmtime.dev/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;wasmtime&lt;/a&gt;&#xA; as the runtime for our Wasm workloads using the &lt;code&gt;wasm32-wasi&lt;/code&gt; architecture.&lt;/p&gt;</description>
			</item>
			<item>
				<title>External-DNS with Azure Kubernetes Service and Azure DNS</title>
				<link>https://thorsten-hans.com/external-dns-azure-kubernetes-service-azure-dns/</link>
				<pubDate>Thu, 09 Sep 2021 10:52:53 +0000</pubDate>
				<guid>https://thorsten-hans.com/external-dns-azure-kubernetes-service-azure-dns/</guid>
				<description>&lt;p&gt;This article guides you through the process of configuring &lt;a href=&#34;https://github.com/kubernetes-sigs/external-dns&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;External-DNS&lt;/a&gt;&#xA; with Azure Kubernetes Service (AKS) and Azure DNS. By deploying and configuring External-DNS and necessary Azure services correctly, you can ensure proper routing from your custom domain into Kubernetes. Before we dive into actually configuring External-DNS and wiring everything up, let&amp;rsquo;s briefly revisit some core concepts.&lt;/p&gt;&#xA;&lt;h2 id=&#34;cloud-platform-automation-with-managed-kubernetes-clusters&#34;&gt;Cloud platform automation with managed Kubernetes clusters&lt;/h2&gt;&#xA;&lt;p&gt;Managed Kubernetes clusters like Azure Kubernetes Service (AKS) automate the surrounding cloud platform using their custom cloud controller manager implementation as part of their Kubernetes distribution. For example, this makes exposing a service of type &lt;code&gt;LoadBalancer&lt;/code&gt; frictionless. AKS will automatically acquire a public IP address and provision an instance of Azure Load Balancer (LNB) to route ingress traffic into the Kubernetes cluster.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Integrate Virtual Machine Scale Sets with Azure Monitor and VMInsights using Terraform</title>
				<link>https://thorsten-hans.com/integrate-virtual-machine-scale-sets-azure-monitor-vminsights-terraform/</link>
				<pubDate>Fri, 03 Sep 2021 18:03:18 +0000</pubDate>
				<guid>https://thorsten-hans.com/integrate-virtual-machine-scale-sets-azure-monitor-vminsights-terraform/</guid>
				<description>&lt;p&gt;Cloud-Native does not mean &amp;ldquo;containers only&amp;rdquo;. Many organizations are still adopting cloud computing and trying to move their workloads into the cloud.&lt;/p&gt;&#xA;&lt;p&gt;Recently, I helped a customer to bring long-running, compute-intensive workloads to Azure. The particular workload must run on Windows. Although most parts of the overall application are stateless, containerized, or even serverless, this component was special. We decided to leverage Azure Virtual Machine Scale Set (VMSS) to host that component.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Azure Functions with Go</title>
				<link>https://thorsten-hans.com/azure-functions-with-go/</link>
				<pubDate>Tue, 17 Aug 2021 13:15:14 +0000</pubDate>
				<guid>https://thorsten-hans.com/azure-functions-with-go/</guid>
				<description>&lt;p&gt;By leveraging custom handlers in Azure Functions, we can use any programming language to build serverless applications and host them in Azure.Having the freedom to use your preferred programming language to craft Azure Functions is awesome. Developers can use their existing knowledge, tools, and frameworks. The integration with the surrounding runtime is done via a thin configuration layer.&lt;/p&gt;&#xA;&lt;p&gt;For example, this post demonstrates how to build an Azure Functions project with a simple HTTP API written in Go. To keep things simple, we will use &lt;a href=&#34;https://github.com/gin-gonic/gin&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Gin, a minimalistic web framework for Go&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Azure Cognitive Search integration for Static Site Generators</title>
				<link>https://thorsten-hans.com/azure-search-integration-for-static-site-generators/</link>
				<pubDate>Thu, 17 Dec 2020 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/azure-search-integration-for-static-site-generators/</guid>
				<description>&lt;p&gt;Finding appropriate content on websites and blogs boosts the user experience. With Azure Cognitive Search, you can quickly add professional search capabilities to your website. I use Jekyll to run my blog. However, the process described and explained in this post works for every &lt;strong&gt;Static Site Generator (SSG)&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-azure-cognitive-search&#34;&gt;What is Azure Cognitive Search&lt;/h2&gt;&#xA;&lt;p&gt;Azure Cognitive Search (formerly known as Azure Search) is a fully managed service offering by Microsoft.  Apache Lucene is the foundation of Azure Cognitive Search. Over the past year, Microsoft added a whole bunch of AI and Machine Learning (ML) capabilities. Microsoft renamed Azure Search to Azure Cognitive Search to align with other AI &amp;amp; ML service offerings. Although those features are pretty useful, searching website data is relatively simple and does not require any AI or ML features. Azure Cognitive Search can crawl data from different sources such as an Azure Storage Account, Azure SQL Databases, etc. Alternatively, you can actively push data into the search index using the Azure Cognitive Search Management SDK. There are SDKs for different programming languages available - in this article, you will see how to use the JavaScript SDK to push your data into the search index using Node.js.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Run containers in Azure Container Instances straight from Docker CLI</title>
				<link>https://thorsten-hans.com/run-containers-in-azure-container-instances-straight-from-docker-cli/</link>
				<pubDate>Thu, 03 Dec 2020 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/run-containers-in-azure-container-instances-straight-from-docker-cli/</guid>
				<description>&lt;p&gt;A couple of months ago, both Microsoft and Docker announced the seamless integration of &lt;strong&gt;Azure Container Instances (ACI)&lt;/strong&gt; and Docker CLI. As a container enthusiast, I had to look into this integration. I tested it in different scenarios to see how it could support me and increase my productivity.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;tl;dr:&lt;/strong&gt; The integration of ACI and Docker CLI is excellent. Once configured, I found myself spinning up numerous containers :). It provisions even multi-container applications based on &lt;em&gt;Docker Compose&lt;/em&gt;. There is a downside. Pulling images from registries was slower compared to my local machine. Overall, I like the experience and share everything you need to know about it in this article.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Azure Arc enabled Kubernetes: Digital Ocean Kubernetes in Azure</title>
				<link>https://thorsten-hans.com/azure-arc-enabled-kubernetes-digital-ocean/</link>
				<pubDate>Sun, 24 May 2020 08:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/azure-arc-enabled-kubernetes-digital-ocean/</guid>
				<description>&lt;p&gt;During Microsoft Build Conference 2020, Microsoft demonstrated Azure Arc enabled Kubernetes, which allows you to connect and manage external Kubernetes clusters in Azure.&lt;/p&gt;&#xA;&lt;p&gt;By attaching your existing Kubernetes clusters to Azure, you can use all the Azure goodness to control external clusters like any other internal Azure resource. Once connected, you can do certain things with the external Kubernetes cluster, like for example:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Add it to given Resource Groups&lt;/li&gt;&#xA;&lt;li&gt;Categorize it using Tags&lt;/li&gt;&#xA;&lt;li&gt;Access it via Azure Resource Graph&lt;/li&gt;&#xA;&lt;li&gt;Apply Azure Policies to it&lt;/li&gt;&#xA;&lt;li&gt;Protect with Azure Security Center&lt;/li&gt;&#xA;&lt;li&gt;Collect metrics using Azure Monitor&lt;/li&gt;&#xA;&lt;li&gt;Define cluster and application configuration with GitOps&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This post explains how to connect a Kubernetes cluster running in Digital Ocean to your Azure Subscription by leveraging Azure Arc. Once connected, we will add some tags to the external cluster and query it using Azure Resource Graph to verify the connection.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Azure CLI on the iPad - Azure CLI Tips &amp; Tricks 3</title>
				<link>https://thorsten-hans.com/azure-cli-ipad--azure-cli-tips-tricks/</link>
				<pubDate>Wed, 20 May 2020 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/azure-cli-ipad--azure-cli-tips-tricks/</guid>
				<description>&lt;p&gt;&lt;em&gt;Azure CLI Tips &amp;amp; Tricks&lt;/em&gt; is a collection of small, yet powerful things, that will boost your productivity when working with Microsoft Azure CLI.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;I love my iPad Pro and the possibility to work from almost everywhere. Using the official &lt;a href=&#34;https://apps.apple.com/de/app/microsoft-azure/id1219013620#?platform=ipad&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Azure app&lt;/a&gt;&#xA; from the Apple App Store, I can browse through my cloud resources and get essential information about cloud-based workloads.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Check metrics and resource status from anywhere&lt;/li&gt;&#xA;&lt;li&gt;Start or Stop resources like VMs or Azure App Services at anytime&lt;/li&gt;&#xA;&lt;li&gt;Receive notifications and alerts about service health issues&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Additionally, the app comes with an integrated &lt;em&gt;Cloud Shell&lt;/em&gt;, which gives me direct access to Azure CLI.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Choose the best output format - Azure CLI Tips &amp; Tricks 2</title>
				<link>https://thorsten-hans.com/azure-cli-tips-and-tricks-2-choose-the-best-output-format/</link>
				<pubDate>Tue, 12 May 2020 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/azure-cli-tips-and-tricks-2-choose-the-best-output-format/</guid>
				<description>&lt;p&gt;Azure CLI Tips &amp;amp; Tricks is a collection of small, yet powerful things, that will boost your productivity when working with Microsoft Azure CLI.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://docs.microsoft.com/en-us/cli/azure/?view=azure-cli-latest&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Azure CLI&lt;/a&gt;&#xA; provides a bunch of different output formats. By default, it generates output using the &lt;code&gt;json&lt;/code&gt; format. Although the default output format is both human-readable and descriptive, it is not the optimal format for every situation. Sometimes you need more focused responses, or you just &lt;strong&gt;want&lt;/strong&gt; a good old &lt;a href=&#34;https://en.wikipedia.org/wiki/ASCII&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;ASCII&lt;/a&gt;&#xA;-style table.&lt;/p&gt;</description>
			</item>
			<item>
				<title>AKS cluster auto-scaler inside out</title>
				<link>https://thorsten-hans.com/aks-cluster-auto-scaler-inside-out/</link>
				<pubDate>Mon, 11 May 2020 16:10:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/aks-cluster-auto-scaler-inside-out/</guid>
				<description>&lt;p&gt;Cluster auto-scaling for &lt;a href=&#34;https://azure.microsoft.com/en-us/services/kubernetes-service/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Azure Kubernetes Service (AKS)&lt;/a&gt;&#xA; is available for quite some time now. I have been using it in several projects so far.This post explains all details about the AKS cluster auto-scaler, shows how to enable it for both - new and existing AKS clusters - and gives you an example of how to use custom auto-scaler profile settings.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-is-the-aks-cluster-auto-scaler&#34;&gt;What is the AKS cluster auto-scaler&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#why-should-you-use-cluster-auto-scaler&#34;&gt;Why should you use cluster auto-scaler&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#enable-azure-kubernetes-cluster-auto-scaler&#34;&gt;Enable Azure Kubernetes cluster auto-scaler&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#modify-auto-scaler-boundaries&#34;&gt;Modify auto-scaler boundaries&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#disable-cluster-auto-scaler&#34;&gt;Disable cluster auto-scaler&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#verify-aks-cluster-auto-scaling&#34;&gt;Verify AKS cluster auto-scaling&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#deploy-the-sample-application&#34;&gt;Deploy the sample application&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#retract-the-sample-application&#34;&gt;Retract the sample application&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#custom-cluster-scaling-behavior&#34;&gt;Custom cluster scaling behavior&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#specify-custom-sclaing-profile-settings&#34;&gt;Specify custom sclaing profile settings&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#cluster-auto-scaler-in-combination-with-multiple-aks-node-pools&#34;&gt;Cluster auto-scaler in combination with multiple AKS node-pools&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#recap&#34;&gt;Recap&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;what-is-the-aks-cluster-auto-scaler&#34;&gt;What is the AKS cluster auto-scaler&lt;/h2&gt;&#xA;&lt;p&gt;With cluster auto-scaling, the actual load of your worker-nodes will be monitored actively. By adding and removing worker-nodes from the cluster, it ensures that enough resources are available to keep your application healthy and responsive. In contrast, it removes worker-nodes from the AKS cluster, to optimize resource utilization and be as cost-effective as possible.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Get samples with az find - Azure CLI Tips &amp; Tricks 1</title>
				<link>https://thorsten-hans.com/azure-cli-tips-and-tricks-1-get-samples-with-az-find/</link>
				<pubDate>Tue, 05 May 2020 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/azure-cli-tips-and-tricks-1-get-samples-with-az-find/</guid>
				<description>&lt;p&gt;Azure CLI Tips &amp;amp; Tricks is a collection of small, yet powerful things, that will boost your productivity when working with Microsoft Azure CLI.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;code&gt;az find&lt;/code&gt; is a useful command for every Azure CLI user. It is the go-to command, if you want to get scenario-based examples for Azure CLI commands. You can provide any command as positional argument to &lt;code&gt;az find&lt;/code&gt;, and it will scan the official Azure documentation for examples.&lt;/p&gt;</description>
			</item>
			<item>
				<title>ACR Unleashed – Use ACR As Registry For Helm Charts</title>
				<link>https://thorsten-hans.com/azure-container-registry-unleashed-use-acr-as-registry-for-helm-charts/</link>
				<pubDate>Wed, 29 Apr 2020 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/azure-container-registry-unleashed-use-acr-as-registry-for-helm-charts/</guid>
				<description>&lt;p&gt;The seventh and last part of &lt;em&gt;Azure Container Registry Unleashed&lt;/em&gt; is about housing &lt;a href=&#34;https://helm.sh&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Helm&lt;/a&gt;&#xA; charts in ACR. This post explains how to use ACR as a protected Registry for Helm charts. We walk through the process of creating, publishing, and consuming a sample chart from ACR. However, if you have not used or seen Helm 3 before, consider reading my &amp;ldquo;&lt;a href=&#34;https://thorsten-hans.com/getting-started-with-helm3/&#34;&gt;Getting started with Helm 3&lt;/a&gt;&#xA;&amp;rdquo; article first.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-is-oci-and-what-are-oci-artifacts&#34;&gt;What Is OCI And What Are OCI artifacts&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#prerequisites&#34;&gt;Prerequisites&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#authenticate-helm-cli-against-acr&#34;&gt;Authenticate Helm CLI Against ACR&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#enable-oci-support-in-helm-cli&#34;&gt;Enable OCI Support In Helm CLI&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#prepare-helm-charts-for-publication-on-acr&#34;&gt;Prepare Helm Charts For Publication On ACR&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#push-a-helm-chart-to-acr&#34;&gt;Push A Helm Chart To ACR&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#pull-a-helm-chart-from-acr&#34;&gt;Pull A Helm Chart From ACR&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#export-helm-chart-once-pulled&#34;&gt;Export Helm Chart Once Pulled&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#deploy-helm-chart-to-aks&#34;&gt;Deploy Helm Chart To AKS&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#azure-cli-commands-for-helm-charts&#34;&gt;Azure CLI Commands For Helm charts&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#conclusion&#34;&gt;Conclusion&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-acr-unleashed-series&#34;&gt;The ACR Unleashed series&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-is-oci-and-what-are-oci-artifacts&#34;&gt;What Is OCI And What Are OCI artifacts&lt;/h2&gt;&#xA;&lt;p&gt;On top of Docker Registry 2.0, Azure Container Registry supports OCI artifacts. The &lt;a href=&#34;https://github.com/opencontainers/image-spec&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OCI specification&lt;/a&gt;&#xA; defines a general format for interchanging various artifacts like Docker Images or application bundles such as Helm charts. The official definition of OCI&amp;rsquo;s responsibility is&lt;/p&gt;</description>
			</item>
			<item>
				<title>ACR Unleashed – Image Scanning With Azure Security Center</title>
				<link>https://thorsten-hans.com/azure-container-registry-unleashed-image-scanning-with-azure-security-center/</link>
				<pubDate>Mon, 20 Apr 2020 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/azure-container-registry-unleashed-image-scanning-with-azure-security-center/</guid>
				<description>&lt;p&gt;The sixth part of &lt;em&gt;Azure Container Registry Unleashed&lt;/em&gt; is about scannig Docker Images in ACR using &lt;a href=&#34;https://azure.microsoft.com/en-us/services/security-center/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Azure Security Center&lt;/a&gt;&#xA;. This post explains, what you get from Azure Security Center in the context of ACR and how to configure the integration of both Azure services. Before we dive into the article, I want to reach out and say thank you to my fellow MVP and well-known Azure security expert &lt;a href=&#34;https://blog.azureandbeyond.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Tom Janetscheck&lt;/a&gt;&#xA; for contributing to this article.&lt;/p&gt;</description>
			</item>
			<item>
				<title>3 Ways to integrate ACR with AKS</title>
				<link>https://thorsten-hans.com/3-ways-to-integrate-acr-with-aks/</link>
				<pubDate>Wed, 12 Feb 2020 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/3-ways-to-integrate-acr-with-aks/</guid>
				<description>&lt;p&gt;To integrate Azure Container Registry (ACR) with Azure Kubernetes Service (AKS), operators and developers currently have three different options. At the end of the article, you can integrate the protected implementation of Docker Registry 2.0 with your Kubernetes cluster using your preferred strategy.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-kubernetes-secret&#34;&gt;1. Kubernetes Secret&lt;/h2&gt;&#xA;&lt;p&gt;First and perhaps the easiest integration strategy is to create a Kubernetes Secret of type &lt;code&gt;docker-registry&lt;/code&gt;. You can create such a &lt;code&gt;Secret&lt;/code&gt; either using &lt;code&gt;yaml&lt;/code&gt; or using the &lt;code&gt;kubectl create&lt;/code&gt; command:&lt;/p&gt;</description>
			</item>
			<item>
				<title>ACR Unleashed – Tasks</title>
				<link>https://thorsten-hans.com/azure-container-registry-unleashed-tasks/</link>
				<pubDate>Wed, 05 Feb 2020 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/azure-container-registry-unleashed-tasks/</guid>
				<description>&lt;p&gt;The fifth part of &lt;em&gt;Azure Container Registry Unleashed&lt;/em&gt; is all about automating things in the context of Docker Images and ACR. Starting from scratch with simple, yet useful ACR Quick Tasks, over regular ACR Tasks to full-fledged ACR Multi-Step Tasks, this article covers everything you need to know about Tasks in ACR.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-are-arc-tasks&#34;&gt;What Are ARC Tasks&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#acr-tasks-pricing&#34;&gt;ACR Tasks Pricing&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#source-code-context&#34;&gt;Source Code Context&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#acr-quick-tasks&#34;&gt;ACR Quick Tasks&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#acr-quick-tasks-with-remote-contexts&#34;&gt;ACR Quick Tasks With Remote Contexts&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#trigger-acr-tasks-automatically&#34;&gt;Trigger ACR Tasks Automatically&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#multi-step-acr-tasks&#34;&gt;Multi-Step ACR Tasks&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#acr-tasks-reference-yaml&#34;&gt;ACR Tasks reference: YAML&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#build-a-blog-search-with-azure-cognitive-search&#34;&gt;Build A Blog Search With Azure Cognitive Search&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#create-required-azure-resources&#34;&gt;Create Required Azure Resources&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#identify-acr-tasks&#34;&gt;Identify ACR Tasks&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-build-index-acr-task&#34;&gt;The build-index ACR Task&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-feed-index-acr-task&#34;&gt;The feed-index ACR Task&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#conclusion&#34;&gt;Conclusion&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-acr-series&#34;&gt;The ACR Series&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-is-next&#34;&gt;What Is Next&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;what-are-arc-tasks&#34;&gt;What Are ARC Tasks&lt;/h2&gt;&#xA;&lt;p&gt;With Azure Container Registry (ACR), customers can use so-called tasks to offload several workloads from local machines, and services such as GitHub or Azure DevOps to Azure Container Registry. With ACR Tasks, customers can build, push, and run Docker Images for different platforms, including Linux, Windows, and ARM. As of today, there are three different types of Tasks available in ACR:&lt;/p&gt;</description>
			</item>
			<item>
				<title>European Azure Conference 2020</title>
				<link>https://thorsten-hans.com/european-azure-conference-2020/</link>
				<pubDate>Tue, 04 Feb 2020 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/european-azure-conference-2020/</guid>
				<description>&lt;p&gt;I am thrilled to join the announcement of the European Azure Conference 2020 (EAC20). While Microsoft just finished celebrating the 10th birthday of Azure, we want to add another reason to be excited about Azure.&lt;/p&gt;&#xA;&lt;p&gt;From &lt;strong&gt;2nd till 4th of June 2020&lt;/strong&gt;, Azure enthusiasts from all over the world will meet in beautiful &lt;strong&gt;Nice&lt;/strong&gt; (France) to celebrate the first iteration of this independent and dedicated Azure conference in Europe.&lt;/p&gt;&#xA;&lt;p&gt;During the three-day event, we will deliver outstanding Keynotes, &lt;strong&gt;8 tutorials&lt;/strong&gt;, and &lt;strong&gt;more than 70 sessions&lt;/strong&gt; covering all areas of Microsoft Azure.&lt;/p&gt;</description>
			</item>
			<item>
				<title>API Summit - IaC for everyone with Terraform</title>
				<link>https://thorsten-hans.com/api-summit-iac-for-everyone-with-terraform/</link>
				<pubDate>Tue, 10 Dec 2019 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/api-summit-iac-for-everyone-with-terraform/</guid>
				<description>&lt;p&gt;This week, API Summit 2019 took place in Berlin. I was invited to demonstrate some Infrastructure as Code (IaC) goodness and talk about Terraform.&lt;/p&gt;&#xA;&lt;p&gt;During my half-day tutorial, I explained how to create multi-cloud infrastructures for Azure and AWS using HashiCorp Terraform. Additionally, we used &lt;code&gt;git flow&lt;/code&gt; to establish a proper collaboration workflow.&lt;/p&gt;&#xA;&lt;p&gt;All samples are available &lt;a href=&#34;https://github.com/ThorstenHans/api-summit-2019-terraform&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;on GitHub&lt;/a&gt;&#xA;.&lt;/p&gt;&#xA;&lt;p&gt;Additionally, you can cycle through the &lt;a href=&#34;https://onedrive.live.com/embed?cid=50A514874839E12E&amp;amp;resid=50A514874839E12E%2119807&amp;amp;authkey=AKo3URpj6kJKMr0&amp;amp;em=2&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;slide-deck right here&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>ACR Unleashed – Webhooks</title>
				<link>https://thorsten-hans.com/azure-container-registry-unleashed-webhooks/</link>
				<pubDate>Wed, 04 Dec 2019 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/azure-container-registry-unleashed-webhooks/</guid>
				<description>&lt;p&gt;In the fourth part of Azure Container Registry Unleashed, we will dive into webhooks offered by ACR and learn how to use them to build simple, yet powerful automations based on ACR interactions such as pushing new tags of an image.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-is-a-webhook&#34;&gt;What Is A Webhook&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#acr-webhooks&#34;&gt;ACR Webhooks&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#acr-webhook-limits-by-sku&#34;&gt;ACR Webhook Limits By SKU&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#integrate-azure-services-using-acr-webhooks&#34;&gt;Integrate Azure Services Using ACR Webhooks&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-demo-project&#34;&gt;The Demo Project&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-azure-functions-project&#34;&gt;The Azure Functions Project&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#create-acr-webhook&#34;&gt;Create ACR Webhook&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#test-the-webhook&#34;&gt;Test The Webhook&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#push-new-docker-image-tags-to-acr&#34;&gt;Push New Docker Image Tags To ACR&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#check-results-in-azure-cosmosdb&#34;&gt;Check Results In Azure CosmosDB&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-acr-unleashed-series&#34;&gt;The ACR Unleashed series&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#conclusion&#34;&gt;Conclusion&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;what-is-a-webhook&#34;&gt;What Is A Webhook&lt;/h2&gt;&#xA;&lt;p&gt;Before we dive into ACR webhooks, let us do a quick refresher on webhooks. However, if you are familiar with webhooks, skip this paragraph and move on to (ACR webhooks).&lt;/p&gt;</description>
			</item>
			<item>
				<title>ESPC 2019 - Code your Azure with Terraform</title>
				<link>https://thorsten-hans.com/espc2019-code-your-azure-with-terraform/</link>
				<pubDate>Tue, 03 Dec 2019 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/espc2019-code-your-azure-with-terraform/</guid>
				<description>&lt;p&gt;This week European SharePoint and Azure Conference (ESPC19) takes place in Prague. I had the chance to give a talk on Terraform as part of the Azure track.&lt;/p&gt;&#xA;&lt;p&gt;My talk was all about adopting Infrastructure as Code (IaC) in the Azure space.&lt;/p&gt;&#xA;&lt;p&gt;During the talk we built three different environments (development, staging and production) with slightly different configuration. If you want to look at the final solution, &lt;a href=&#34;https://github.com/ThorstenHans/espc2019-terraform&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;checkout the demo-code on GitHub&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>ACR Unleashed – Integrate ACR And Azure Monitor</title>
				<link>https://thorsten-hans.com/azure-container-registry-unleashed-integrate-acr-and-azure-monitor/</link>
				<pubDate>Tue, 26 Nov 2019 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/azure-container-registry-unleashed-integrate-acr-and-azure-monitor/</guid>
				<description>&lt;p&gt;The third part of Azure Container Registry Unleashed will guide you through the process of integrating ACR and Azure Monitor to collect essential information and metrics about your ACR instances at runtime. The integration of ACR and Azure Monitor is currently in public preview. However, retrieving insights about your ACR instance is mission-critical, so we will dive into this topic now.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-is-azure-monitor&#34;&gt;What Is Azure Monitor&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#create-a-log-analytics-workspace&#34;&gt;Create A Log Analytics Workspace&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#connect-acr-to-azure-monitor&#34;&gt;Connect ACR To Azure Monitor&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#populate-sample-data-into-azure-monitor&#34;&gt;Populate Sample Data Into Azure Monitor&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#query-acr-events-and-metrics-using-azure-monitor&#34;&gt;Query ACR Events And Metrics Using Azure Monitor&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#create-alerts-for-acr-events&#34;&gt;Create Alerts For ACR Events&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-acr-unleashed-series&#34;&gt;The ACR Unleashed series&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#conclusion&#34;&gt;Conclusion&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;what-is-azure-monitor&#34;&gt;What Is Azure Monitor&lt;/h2&gt;&#xA;&lt;p&gt;Azure Monitor is a centralized hub for aggregating, analyzing, visualizing and working with data. It consumes data from different sources and collects that data in data stores. All data collected by Azure Monitor fits into on of two categories, logs and metrics.&lt;/p&gt;</description>
			</item>
			<item>
				<title>ACR Unleashed – Authentication, Identity Access Management And Content-Trust</title>
				<link>https://thorsten-hans.com/azure-container-registry-unleashed-authentication-iam-contenttrust/</link>
				<pubDate>Thu, 21 Nov 2019 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/azure-container-registry-unleashed-authentication-iam-contenttrust/</guid>
				<description>&lt;p&gt;This is the second part of Azure Container Registry Unleashed. Today, we will go one step further and talk about Authentication (AuthN), Identity Access Management (IAM) and Content-Trust in the scope of ACR. To be a bit more precisely, this post contains the following sections:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#acr-authentication&#34;&gt;ACR Authentication&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#acr-identity-access-management-iam&#34;&gt;ACR Identity Access Management (IAM)&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#iam-for-azure-active-directory-users-and-groups&#34;&gt;IAM For Azure Active Directory Users And Groups&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#iam-for-service-principals&#34;&gt;IAM For Service Principals&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-is-docker-content-trust&#34;&gt;What Is Docker Content-Trust&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#configure-content-trust-in-acr&#34;&gt;Configure Content-Trust In ACR&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#enable-content-trust-for-docker-cli&#34;&gt;Enable Content-Trust For Docker CLI&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#configure-content-trust-globally&#34;&gt;Configure Content-Trust Globally&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#configure-content-trust-explicitly&#34;&gt;Configure Content-Trust Explicitly&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#content-trust-by-example&#34;&gt;Content-Trust By Example&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#push-signed-docker-images-with-global-content-trust&#34;&gt;Push Signed Docker Images With Global Content-Trust&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#push-signed-docker-images-with-contextual-content-trust&#34;&gt;Push Signed Docker Images With Contextual Content-Trust&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#content-trust-key-management&#34;&gt;Content-Trust Key Management&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#acr-content-trust-pitfalls&#34;&gt;ACR Content-Trust Pitfalls&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#docker-content-trust-pitfalls&#34;&gt;Docker Content-Trust Pitfalls&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#further-information-on-content-trust&#34;&gt;Further Information On Content-Trust&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-acr-unleashed-series&#34;&gt;The ACR Unleashed series&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#conclusion&#34;&gt;Conclusion&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;acr-authentication&#34;&gt;ACR Authentication&lt;/h2&gt;&#xA;&lt;p&gt;As mentioned in the first post of the series, Azure Container Registry integrates seamlessly with Azure Active Directory (AAD) and offers several ways to authenticate. Basically, you should differentiate between user-involved authentication and headless authentication, which is typically issued by a service in service-to-service scenarios. Having all authentication calls separated into those two categories, finding the correct authentication-pattern becomes easier.&lt;/p&gt;</description>
			</item>
			<item>
				<title>ACR Unleashed – ACR Up And Running with Geo Replication</title>
				<link>https://thorsten-hans.com/azure-container-registry-unleashed-acr-up-and-running/</link>
				<pubDate>Tue, 19 Nov 2019 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/azure-container-registry-unleashed-acr-up-and-running/</guid>
				<description>&lt;p&gt;Azure Container Registry – or short ACR - is a managed service offered by Microsoft Azure. It is a private Docker Registry based on Docker Registry 2.0 and acts as central service in many containerized application architectures. Compared to other private Docker registries, ACR offers several advantages like ease of administration due to powerful Azure CLI commands, seamless integration with other Azure Services such as Azure Kubernetes Service and frictionless authentication using Azure Active Directory (AAD).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Custom domains in Azure Kubernetes Service (AKS) with NGINX Ingress and Azure CLI</title>
				<link>https://thorsten-hans.com/custom-domains-in-azure-kubernetes-with-nginx-ingress-azure-cli/</link>
				<pubDate>Mon, 30 Sep 2019 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/custom-domains-in-azure-kubernetes-with-nginx-ingress-azure-cli/</guid>
				<description>&lt;p&gt;When running applications in Azure Kubernetes Service (AKS), NGINX Ingress does a great job in routing inbound traffic. The flexible routing engine allows a wide variety of scenarios to expose different parts of cloud-native applications using different URLs. Unfortunately, there is no documentation on how to map such a custom domain to a public IP address without using the Azure Portal.&lt;/p&gt;&#xA;&lt;p&gt;This article outlines the process of mapping a custom domain to the public IP address acquired by NGINX Ingress in AKS using Azure CLI. I assume you have already deployed your application and corresponding NGINX Ingress to your AKS.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Terraform - The Definitive Guide for Azure Enthusiasts</title>
				<link>https://thorsten-hans.com/terraform-the-definitive-guide-for-azure-enthusiasts/</link>
				<pubDate>Tue, 12 Feb 2019 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/terraform-the-definitive-guide-for-azure-enthusiasts/</guid>
				<description>&lt;p&gt;&lt;em&gt;Terraform&lt;/em&gt; is a product in the &lt;em&gt;Infrastructure as Code (IaC)&lt;/em&gt; space, it has been created by &lt;a href=&#34;https://www.hashicorp.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;HashiCorp&lt;/a&gt;&#xA;. With &lt;em&gt;Terraform&lt;/em&gt; you can use a single language to describe your infrastructure in code. This guide explains the core concepts of &lt;em&gt;Terraform&lt;/em&gt; and essential basics that you need to spin up your first Azure environments.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-is-infrastructure-as-code-iac&#34;&gt;What is Infrastructure as Code (IaC)&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-is-terraform&#34;&gt;What is Terraform&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#terraform-providers&#34;&gt;Terraform Providers&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-hashicorp-configuration-language-hcl&#34;&gt;The HashiCorp Configuration Language (HCL)&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#preview-changes---terraform-execution-plan&#34;&gt;Preview Changes - Terraform Execution Plan&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#setup-terraform-on-your-machine&#34;&gt;Setup Terraform On Your Machine&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#terraform-in-visualstudio-code&#34;&gt;Terraform in VisualStudio Code&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#datatypes-in-hcl&#34;&gt;DataTypes in HCL&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#booleans-in-hcl&#34;&gt;Booleans in HCL&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#strings-in-hcl&#34;&gt;Strings in HCL&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#lists-in-hcl&#34;&gt;Lists in HCL&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#maps-in-hcl&#34;&gt;Maps in HCL&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#terraform-project-structure&#34;&gt;Terraform Project Structure&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#variables-in-hcl&#34;&gt;Variables In HCL&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#use-variable-references&#34;&gt;Use Variable References&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#outputs-in-hcl&#34;&gt;Outputs in HCL&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#overrides&#34;&gt;Overrides&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-terraform-azure-provider&#34;&gt;The Terraform Azure Provider&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#terraform-azure-provider-authentication-mechanisms&#34;&gt;Terraform Azure Provider Authentication mechanisms&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#your-first-azure-environment-with-terraform&#34;&gt;Your first Azure Environment with Terraform&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#destroy-terraform-environments&#34;&gt;Destroy Terraform Environments&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-terraform-lifecycle&#34;&gt;The Terraform Lifecycle&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#download-sample-code-from-github&#34;&gt;Download Sample Code from GitHub&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#conclusion&#34;&gt;Conclusion&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;what-is-infrastructure-as-code-iac&#34;&gt;What is Infrastructure as Code (IaC)&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;Infrastructure as Code (IaC)&lt;/em&gt; is the process of describing infrastructural components such as servers, services, or databases using a programming language. Once all infrastructural requirements are described in code, that code can be stored in &lt;em&gt;source control&lt;/em&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Azure Key Vault FlexVolume for Kubernetes  —  A journey to integrate Azure Key Vault and AKS</title>
				<link>https://thorsten-hans.com/azure-key-vault-flexvolume-for-kubernetes/</link>
				<pubDate>Mon, 10 Dec 2018 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/azure-key-vault-flexvolume-for-kubernetes/</guid>
				<description>&lt;p&gt;This is the second part of the mini-series on Integrating &lt;em&gt;Azure Key Vault&lt;/em&gt; and &lt;em&gt;AKS&lt;/em&gt; (Azure Kubernetes Services). If you missed the &lt;a href=&#34;https://thorsten-hans.com/azuread-pod-identity-aks-integrate-azure-keyvault/&#34;&gt;first part&lt;/a&gt;&#xA;, you should definitely read it before digging into this article.&lt;/p&gt;&#xA;&lt;h2 id=&#34;introducing-azure-key-vault-flexvolume-for-kubernetes&#34;&gt;Introducing Azure Key Vault FlexVolume for Kubernetes&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;Azure Key Vault FlexVolume for Kubernetes&lt;/em&gt; is a driver that allows you to consume typed data from &lt;em&gt;Azure Key Vault&lt;/em&gt; (like secrets, keys or certificates) and attach that data directly to Pods. You can find the project itself &lt;a href=&#34;https://github.com/Azure/kubernetes-keyvault-flexvol&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;directly on GitHub&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>AzureAD Pod Identity in AKS: A journey to integrate Azure Key Vault</title>
				<link>https://thorsten-hans.com/azuread-pod-identity-aks-integrate-azure-keyvault/</link>
				<pubDate>Thu, 06 Dec 2018 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/azuread-pod-identity-aks-integrate-azure-keyvault/</guid>
				<description>&lt;p&gt;Back in May, I wrote an article on how to integrate Azure Key Vault with ACS. Since that, a lot happened in the Azure and Kubernetes space and I thought an updated version would be worth sharing because dealing correctly with sensitive data is &lt;strong&gt;essential&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This is the first of two separate articles, that will guide you through the complete setup and configuration process to integrate &lt;em&gt;Azure Kubernetes Services&lt;/em&gt; and &lt;em&gt;Azure Key Vault&lt;/em&gt; securely without leaking essential data about your &lt;em&gt;Service Principal&lt;/em&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Inspect your Kubernetes inventory in no time with ASP.NET Core and Kubernetes Client Library</title>
				<link>https://thorsten-hans.com/inspect-kubernetes-inventory-with-aspnetcore-kubernetes-client-library/</link>
				<pubDate>Tue, 04 Dec 2018 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/inspect-kubernetes-inventory-with-aspnetcore-kubernetes-client-library/</guid>
				<description>&lt;p&gt;Running and maintaining complex applications on Kubernetes often requires good monitoring capabilities. Sure, there are plenty of products available which can be deployed easily to an existing cluster to get insights about the current cluster inventory. But why not build your own?&lt;/p&gt;&#xA;&lt;p&gt;In this post, I&amp;rsquo;ll guide you through the process of creating a simple ASP.NET Core Web API to expose your cluster&amp;rsquo;s inventory  -  such as Pods for example -  to other applications in order to get exactly those insights that are important for you. I used the following example frequently during public talks to explain the core concepts of &lt;em&gt;Kubernetes&lt;/em&gt; to .NET developers.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Upgrading a Kubernetes cluster on AKS using Azure CLI</title>
				<link>https://thorsten-hans.com/upgrading-a-kubernetes-cluster-on-aks-using-azure-cli/</link>
				<pubDate>Thu, 22 Mar 2018 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/upgrading-a-kubernetes-cluster-on-aks-using-azure-cli/</guid>
				<description>&lt;p&gt;Upgrading an on-premises &lt;em&gt;Kubernetes&lt;/em&gt; cluster can be very cumbersome and time-consuming task. It&amp;rsquo;s not just a single upgrade command that you can execute and everything happens magically behind the scenes. A single command for upgrading an entire Kubernetes cluster would be awesome 💚 and that&amp;rsquo;s exactly what&amp;rsquo;s provided by the AKS team. A single command to upgrade all your masters and nodes.&lt;/p&gt;&#xA;&lt;p&gt;My fellow MVP &lt;a href=&#34;https://zimmergren.net&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Tobias Zimmergren&lt;/a&gt;&#xA; wrote a &lt;a href=&#34;https://zimmergren.net/azure-container-services-aks-upgrade-kubernetes/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;great post on how to upgrade AKS clusters&lt;/a&gt;&#xA; a couple of weeks ago. But technology and tools are &lt;strong&gt;changing quickly&lt;/strong&gt; these days.&lt;/p&gt;</description>
			</item>
			<item>
				<title>CronJobs on AKS using Azure Files and .NET Core</title>
				<link>https://thorsten-hans.com/cronjobs-in-managed-azure-container-services-aks-using-azure-files-and-net-core/</link>
				<pubDate>Wed, 21 Feb 2018 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/cronjobs-in-managed-azure-container-services-aks-using-azure-files-and-net-core/</guid>
				<description>&lt;p&gt;Tasks need to be executed repeatedly in almost every application. We all know requirements like these. Perhaps you have to clean up some tables in the database or you&amp;rsquo;ve to delete temporary files, no matter which requirement you&amp;rsquo;ve exactly, but &lt;em&gt;CronJobs&lt;/em&gt; in &lt;em&gt;Kubernetes&lt;/em&gt; are exactly designed for scenarios like these.&#xA;&lt;em&gt;Kubernetes&lt;/em&gt; offers &lt;em&gt;CronJobs&lt;/em&gt; as first-class citizen objects. In the scope of &lt;em&gt;Kubernetes&lt;/em&gt;, a &lt;em&gt;CronJob&lt;/em&gt; should be used if you want to execute a piece of software either at a specified point in time or repeatedly at specified points in time.&#xA;Technically it&amp;rsquo;s just a regular Pod with a schedule definition. You&amp;rsquo;ve to provide your schedule using the good old &lt;a href=&#34;https://en.wikipedia.org/wiki/Cron&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;cron format&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hybrid Kubernetes Cluster on Azure Container Services</title>
				<link>https://thorsten-hans.com/hybrid-kubernetes-cluster-on-azure-container-services/</link>
				<pubDate>Sat, 26 Aug 2017 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/hybrid-kubernetes-cluster-on-azure-container-services/</guid>
				<description>&lt;p&gt;Using Azure Container Services (ACS) you can easily build hybrid kubernetes clusters. In this context, hybrid means that you&amp;rsquo;ll end up having a kubernetes cluster with both, Linux Nodes and Windows Nodes.&lt;/p&gt;&#xA;&lt;p&gt;In this article I&amp;rsquo;ll guide you through the process of creating a new hybrid kubernetes cluster on Azure Container Services.&lt;/p&gt;&#xA;&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;&#xA;&lt;p&gt;When starting from scratch, you need only a few things:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a Microsoft Azure Account&lt;/li&gt;&#xA;&lt;li&gt;a Text Editor&lt;/li&gt;&#xA;&lt;li&gt;a local installation of &lt;code&gt;kubectl&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/en-us/cli/azure/overview&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Azure CLI 2.0&lt;/a&gt;&#xA; installed on your machine&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;configuring-azure-cli&#34;&gt;Configuring Azure CLI&lt;/h2&gt;&#xA;&lt;p&gt;Once you&amp;rsquo;ve all the prerequisites in place, it&amp;rsquo;s time to care a bit about our Azure Subscription.&lt;/p&gt;</description>
			</item>
			<item>
				<title>What to do if Pods stuck in state Pending while deploying to Azure Container Instances</title>
				<link>https://thorsten-hans.com/fix-pods-stuck-in-pending-on-azure-container-instances/</link>
				<pubDate>Thu, 24 Aug 2017 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/fix-pods-stuck-in-pending-on-azure-container-instances/</guid>
				<description>&lt;p&gt;&lt;em&gt;Azure Container Instances&lt;/em&gt; (&lt;em&gt;ACI&lt;/em&gt;) allows you to spin up containers in the cloud without creating or managing any kind of infrastructure. It&amp;rsquo;s really bringing container as a service to you. That said, &lt;em&gt;ACI&lt;/em&gt; is no replacement for Container Orchestration Systems like &lt;em&gt;Kubernetes&lt;/em&gt;. It&amp;rsquo;s more an underlying infrastructure for hosting/running containers itself.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;ACI&lt;/em&gt; integrates seamlessly with orchestrators like &lt;em&gt;Kubernetes&lt;/em&gt;. You can use the &lt;em&gt;ACI connector for Kubernetes&lt;/em&gt; to create an &lt;em&gt;ACI&lt;/em&gt; node on your Kubernetes cluster. See &lt;a href=&#34;https://github.com/Azure/aci-connector-k8s&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;this repo for more details&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Using Azure Files in Kubernetes Deployments with ASP.NET Core</title>
				<link>https://thorsten-hans.com/using-azure-files-in-kubernetes-deployments-with-asp-net-core/</link>
				<pubDate>Mon, 21 Aug 2017 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/using-azure-files-in-kubernetes-deployments-with-asp-net-core/</guid>
				<description>&lt;p&gt;&lt;em&gt;Azure Container Services&lt;/em&gt; (&lt;em&gt;ACS&lt;/em&gt;) makes it incredibly easy to spin up and manage &lt;em&gt;Kubernetes&lt;/em&gt; clusters in the cloud. There are plenty of other Azure resources which you can use to build daily scenarios on a native cloud stack.&#xA;Common scenarios are serving files from and writing important information to persisted locations. Azure offers many different storage capabilities. In this post, I&amp;rsquo;ll explain how to use an Azure File Share to serve content by using a .NET Core Web API.&lt;/p&gt;</description>
			</item>
			<item>
				<title>How to use a private Azure Container Registry with Kubernetes</title>
				<link>https://thorsten-hans.com/how-to-use-private-azure-container-registry-with-kubernetes/</link>
				<pubDate>Fri, 18 Aug 2017 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/how-to-use-private-azure-container-registry-with-kubernetes/</guid>
				<description>&lt;p&gt;Besides using the goodness of Azure Container Services (ACS). Different Azure services like Azure Container Registry (ACR) and Azure Container Instances (ACI) can be used and connected from independent container orchestrators like kubernetes (k8s). This post will explain how to set up a custom ACR and connect it to an existing k8s cluster to ensure images will be pulled from the private container registry instead of the public docker hub.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Accessing an WebAPI using ADAL.JS and Azure AD within AngularJS</title>
				<link>https://thorsten-hans.com/accessing-an-webapi-using-adal-js-and-azure-ad-within-angularjs/</link>
				<pubDate>Wed, 12 Nov 2014 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/accessing-an-webapi-using-adal-js-and-azure-ad-within-angularjs/</guid>
				<description>&lt;p&gt;Building a secured WebAPI using &lt;em&gt;Azure Active Directory (AAD)&lt;/em&gt; is pretty easy, OWIN middleware allows developers to integrate AuthN in their services quickly.&lt;/p&gt;&#xA;&lt;p&gt;Accessing those API with plain old C# is easy because &lt;em&gt;AAD Authentication Library (ADAL)&lt;/em&gt; for .NET is available for quite a long time (at least what we call a long time in our business :D)&lt;/p&gt;&#xA;&lt;p&gt;During TechEd Europe, Microsoft announced and released the developer preview for &lt;em&gt;ADAL.js&lt;/em&gt;  — a lightweight JavaScript library for integrating AAD authentication into your &lt;em&gt;Single Page Application (SPA)&lt;/em&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Building an Office365 development machine using Microsoft Azure VirtualMachines in no time</title>
				<link>https://thorsten-hans.com/building-office365-development-machine-using-azure-virtualmachines/</link>
				<pubDate>Tue, 13 May 2014 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/building-office365-development-machine-using-azure-virtualmachines/</guid>
				<description>&lt;p&gt;Today Microsoft announced the availability of client machines in Microsoft Azure. It turns out to be an excellent deal for Office365 Developers too. By just creating a new Machine (let’s take a Windows 8.1 including Visual Studio 2013 Update 2 for example) you can quickly spin off an Office365 development machine in no time.&lt;/p&gt;&#xA;&lt;p&gt;When logged in to the Azure Portal, you’ve to navigate to &lt;strong&gt;Virtual Machines&lt;/strong&gt; and select &lt;strong&gt;New&lt;/strong&gt; and pick an Image from the &lt;strong&gt;Gallery&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Create a SP2013 VM on Azure using PowerShell</title>
				<link>https://thorsten-hans.com/create-a-sp2013-vm-on-azure-using-powershell/</link>
				<pubDate>Thu, 23 May 2013 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/create-a-sp2013-vm-on-azure-using-powershell/</guid>
				<description>&lt;p&gt;A few weeks ago Windows Azure IaaS features reached GA. Since then I&amp;rsquo;m continuously replacing my OnPremise SharePoint development machines by new Azure VMs. To save money, I&amp;rsquo;m going to remove the virtual machines as soon as I don&amp;rsquo;t need them. Automating the process of creation and deletion is essential for me because I don&amp;rsquo;t want to spend a few minutes each day in PowerShell to get my machine up and running.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windows Azure Global Bootcamp</title>
				<link>https://thorsten-hans.com/windows-azure-global-bootcamp/</link>
				<pubDate>Tue, 16 Apr 2013 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/windows-azure-global-bootcamp/</guid>
				<description>&lt;p&gt;Since global availability of SharePoint 2013, Azure is getting more and more critical for SharePoint and SharePoint Online. As a developer, you can create Apps for SharePoint using Azure as the platform for your custom website, which will interact with your SharePoint instance.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://thorsten-hans.com/windows-azure-global-bootcamp/images/global-azure-bootcamp-2013.png&#34;&#xA;       alt=&#34;Global Azure Bootcamp 2013&#34;&#xA;       title=&#34;Global Azure Bootcamp 2013&#34;&#xA;       width=&#34;300&#34;&#xA;       height=&#34;202&#34;&#xA;       loading=&#34;lazy&#34;&#xA;       decoding=&#34;async&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Therefore almost every SharePoint dev should be familiar with Windows Azure and it services. Microsoft Azure MVPs and the Microsoft Azure community are organizing a global BootCamp for Azure on 27th of April 2013.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windows Azure IaaS reaches GA</title>
				<link>https://thorsten-hans.com/windows-azure-iaas-reaches-ga/</link>
				<pubDate>Tue, 16 Apr 2013 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/windows-azure-iaas-reaches-ga/</guid>
				<description>&lt;p&gt;Windows Azure&amp;rsquo;s IaaS components have just reached GA (General Availability) status. There is also a SharePoint Template existing which can be used to host SharePoint 2013 Farms on Windows Azure IaaS. Microsoft is also providing a whitepaper describing how to scale and create a SharePoint Farm on Windows Azure using all the great features offered by the Windows Azure Cloud. You can find the whitepaper here (&lt;a href=&#34;http://go.microsoft.com/fwlink/?LinkID=288782&amp;amp;clcid=0x409&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;http://go.microsoft.com/fwlink/?LinkID=288782&amp;amp;clcid=0x409&lt;/a&gt;&#xA;)&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://thorsten-hans.com/windows-azure-iaas-reaches-ga/images/azure-iaas-ga-1.png&#34;&#xA;       alt=&#34;Azure IaaS Catalog with SharePoint machines&#34;&#xA;       title=&#34;Azure IaaS Catalog with SharePoint machines&#34;&#xA;       width=&#34;800&#34;&#xA;       height=&#34;297&#34;&#xA;       loading=&#34;lazy&#34;&#xA;       decoding=&#34;async&#34;&gt;&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
