<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Infrastructure as Code on Thorsten Hans</title>
		<link>https://thorsten-hans.com/tags/infrastructure-as-code/</link>
		<description>Recent content in Infrastructure as Code on Thorsten Hans</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
		
			<lastBuildDate>Mon, 26 Apr 2021 00:42:48 +0200</lastBuildDate>
		
			<atom:link href="https://thorsten-hans.com/tags/infrastructure-as-code/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Bicep and Terraform compared</title>
				<link>https://thorsten-hans.com/bicep-and-terraform-compared/</link>
				<pubDate>Mon, 26 Apr 2021 00:42:48 +0200</pubDate>
				<guid>https://thorsten-hans.com/bicep-and-terraform-compared/</guid>
				<description>&lt;p&gt;Infrastructure as Code (IaC) is an important technique when it comes to automation. Teams are starting their journey towards cloud-native often by automating everything. Infrastructure is no exception here. The continuously growing adoption of cloud services and digitalization are just some reasons why IaC tools like Terraform are so popular.&lt;/p&gt;&#xA;&lt;p&gt;Project Bicep is the new kid on the block. Bicep is a new language that is created to express Azure infrastructures as code.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Custom Validation Rules for Variables in Terraform</title>
				<link>https://thorsten-hans.com/custom-validation-rules-for-variables-in-terraform/</link>
				<pubDate>Tue, 21 Apr 2020 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/custom-validation-rules-for-variables-in-terraform/</guid>
				<description>&lt;p&gt;In Terraform, we use &lt;em&gt;Variables&lt;/em&gt; to make projects configurable and to reduce code duplication. We can harden variables, by applying individual validations to them.&lt;/p&gt;&#xA;&lt;p&gt;Obviously, providers like &lt;a href=&#34;https://www.terraform.io/docs/providers/azurerm/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;the official Azure Provider&lt;/a&gt;&#xA; come with validations on resource attributes. For example, consider describing an instance of &lt;a href=&#34;https://azure.microsoft.com/en-us/services/container-registry/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Azure Container Registry (ACR)&lt;/a&gt;&#xA;.&lt;/p&gt;&#xA;&lt;p&gt;ACR has several &lt;code&gt;required&lt;/code&gt; attributes, which must be provided by consumers. If consumers forget specifying a &lt;code&gt;required&lt;/code&gt; attribute, Terraform will not try to provision it. Instead, the operation will fail and report a corresponding error message to the user, as shown in figure 1.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Free English Terraform Webinar on Thursday the 16th of April</title>
				<link>https://thorsten-hans.com/free-english-terraform-webinar-april-2020/</link>
				<pubDate>Tue, 14 Apr 2020 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/free-english-terraform-webinar-april-2020/</guid>
				<description>&lt;p&gt;My fellow MVP &lt;a href=&#34;https://www.linkedin.com/in/damir-dobric-a2756286/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Damir Dobric&lt;/a&gt;&#xA; organizes the local Azure Meetup in Frankfurt. We know each other for many years and meet several times a year at different conferences. Back in September 2019, we met in Mainz during BASTA! 2019 and decided to do a local Meetup in Frankfurt and talk about Terraform in the context of Microsoft Azure. Due to the global impact of Coronavirus, we decided to transform the meetup into a virtual meetup.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Free German Terraform Webinar on Wednesday the 15th of April</title>
				<link>https://thorsten-hans.com/free-german-terraform-webinar-april-2020/</link>
				<pubDate>Thu, 09 Apr 2020 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/free-german-terraform-webinar-april-2020/</guid>
				<description>&lt;p&gt;At &lt;a href=&#34;https://thinktecture.com&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Thinktecture&lt;/a&gt;&#xA;, we have started a new, free webinar series to share experiences from real-world projects to demonstrate technologies and practices we believe in and love. As part of the webinar series, I will do a free online webinar in German on Wednesday the 15th of April 2020 at 10:30 (CEST).&lt;/p&gt;&#xA;&lt;p&gt;You can register for the webinar for free, using &lt;a href=&#34;https://www.bigmarker.com/conferences/c5ffcf9541b0/?utm_source=thorstensblog&amp;amp;utm_medium=campaign&amp;amp;utm_campaign=Webinar%20-%20Infrastructure%20as%20code&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;this registration link&lt;/a&gt;&#xA;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;During the webinar, I will explain what Terraform is and why you should care about it. You will learn how to build infrastructures for Microsoft Azure using Terraform and the HashiCorp Configuration Language (HCL). Additionally, I will explain how we structure large scale Terrform projects and demonstrate how to slice modules to increase re-use of infrastructure components.&#xA;During the webinar, I will explain what Terraform is and why you should care about it. You will learn how to build infrastructures for Microsoft Azure using Terraform and the HashiCorp Configuration Language (HCL). Additionally, I will explain how we structure large scale Terrform projects and demonstrate how to slice modules to increase re-use of infrastructure components.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Join my webinar about Terraform and Azure during Azure Week</title>
				<link>https://thorsten-hans.com/terraform-webinar-during-azure-week/</link>
				<pubDate>Thu, 10 Oct 2019 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/terraform-webinar-during-azure-week/</guid>
				<description>&lt;p&gt;We are getting closer to the European Azure and SharePoint Conference 2019 (ESPC2019), which takes place during December 2019 in Prague.&lt;/p&gt;&#xA;&lt;p&gt;A couple of speakers (all focussing Azure related topics) and myself agreed on delivering a vast amount of free content to ramp up your Azure skills before ESPC19.&lt;/p&gt;&#xA;&lt;p&gt;We will celebrate Azure week starting the 14th of October and have a &lt;a href=&#34;https://www.sharepointeurope.com/azure-week/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;great schedule&lt;/a&gt;&#xA;  for you.&lt;/p&gt;&#xA;&lt;p&gt;I will contribute a webinar about Terraform and Azure on Friday the 18th of October at 11 am CEST. You can &lt;a href=&#34;https://www.sharepointeurope.com/azure-week/#form&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;register for the webinar here&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Six golden rules of Infrastructure as Code (IaC)</title>
				<link>https://thorsten-hans.com/six-golden-rules-of-infrastructure-as-code-iac/</link>
				<pubDate>Mon, 06 May 2019 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/six-golden-rules-of-infrastructure-as-code-iac/</guid>
				<description>&lt;p&gt;Infrastructure as Code (IaC) is the process of describing all required infrastructure (such as servers, services or databases) to run your service or application. In this article, I want to share my six golden rules of Infrastructure as Code.&lt;/p&gt;&#xA;&lt;p&gt;Over the past couple of years, IaC gained a lot of traction; more and more people are interested in persisting all their infrastructure-related knowledge in code to collaborate on it and establish a common understanding of it and get rid of that critical project risk. However, IaC solutions should be treated like every other primary part of your solution and follow some rules. I&amp;rsquo;ve seen many IaC solutions and compiled the following six rules, which will help you building robust Infrastructure as Code solutions for your projects.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Terraform - State demystified</title>
				<link>https://thorsten-hans.com/terraform-state-demystified/</link>
				<pubDate>Sat, 30 Mar 2019 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/terraform-state-demystified/</guid>
				<description>&lt;p&gt;&lt;em&gt;State Management&lt;/em&gt; is essential in &lt;em&gt;Terraform&lt;/em&gt;. This post explains what State in &lt;em&gt;Terraform&lt;/em&gt; is, how it is mutated and how you should deal with it - no matter if you&amp;rsquo;re a one-person show or part of a development team.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#what-is-terraform-state&#34;&gt;What is Terraform State&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#terraforms-state-file&#34;&gt;Terraform&amp;rsquo;s State file&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#tracking-of-outputs&#34;&gt;Tracking of outputs&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#querying-state-using-cli&#34;&gt;Querying State using CLI&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#visualizing-terraform-dependecy-graph&#34;&gt;Visualizing Terraform Dependecy Graph&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#introducing-state-backends&#34;&gt;Introducing State Backends&lt;/a&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#state-locking&#34;&gt;State Locking&lt;/a&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;/ul&gt;&#xA;&lt;p&gt;Having &lt;em&gt;Terraform&lt;/em&gt; displaying detailed previews before applying modifications to cloud platforms is amazing. To deliver such a great experience, &lt;em&gt;Terraform&lt;/em&gt; uses the so-called &lt;em&gt;State&lt;/em&gt;. This article will explain what &lt;em&gt;State&lt;/em&gt; is, how it works and why it is mission-critical.&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>
	</channel>
</rss>
