{"id":22771956,"date":"2024-12-26T07:00:15","date_gmt":"2024-12-26T15:00:15","guid":{"rendered":"https:\/\/thenewstack.io\/?p=22771956"},"modified":"2025-02-03T17:54:20","modified_gmt":"2025-02-04T01:54:20","slug":"infrastructure-as-code-in-2024-why-its-still-so-terrible","status":"publish","type":"post","link":"https:\/\/thenewstack.io\/infrastructure-as-code-in-2024-why-its-still-so-terrible\/","title":{"rendered":"Infrastructure as Code in 2024: Why It&#8217;s Still So Terrible"},"content":{"rendered":"<p>From deep within the Looker traffic reports of The New Stack, we have unearthed the most viewed posts from 2024 about the subject of Infrastructure as Code (IaC). Collectively, what they show is that, despite IaC&#8217;s promise in scaling IT systems, it still has many issues that drive DevOps folks crazy.<\/p>\n<p>&#8220;Having used Terraform extensively, I genuinely appreciate the magic of Infrastructure as Code as an accelerant. However, refactoring is a reality of &#8216;Day 2&#8217; operations and doing this with Terraform is still extremely painful to get right,&#8221;&nbsp; <a href=\"https:\/\/www.linkedin.com\/in\/mattmoor\/\" class=\"ext-link\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">Matt Moore<\/a>, founder and CTO of security company <a href=\"https:\/\/www.chainguard.dev\/?utm_content=inline+mention\" class=\"ext-link\" target=\"_blank\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">Chainguard<\/a>, told TNS.<\/p>\n<p>Cloud services created the need for the practice of &#8220;Infrastructure as Code<em>,&#8221; <\/em>as organizations set up their operations on <a href=\"https:\/\/aws.amazon.com\/?utm_content=inline+mention\" class=\"ext-link\" target=\"_blank\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">Amazon Web Services<\/a> and other providers. Declarative, domain specific languages were created by <a href=\"https:\/\/thenewstack.io\/puppets-open-source-community-plans-to-fork-the-program\/\" class=\"local-link\">Puppet<\/a> and <a href=\"https:\/\/www.chef.io?utm_content=inline+mention\" class=\"ext-link\" target=\"_blank\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">Chef<\/a> and as a way to automate configuration and provisioning work in setting up and maintaining these systems.<\/p>\n<p>And <a href=\"https:\/\/roadmap.sh\/kubernetes\" class=\"ext-link\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">Kubernetes<\/a>, with its ability to orchestrate microservices, put this practice into overdrive. And so <a href=\"https:\/\/www.hashicorp.com\/?utm_content=inline+mention\" class=\"ext-link\" target=\"_blank\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">HashiCorp&rsquo;s<\/a> <a href=\"https:\/\/thenewstack.io\/new-terraform-features-manage-migrations-modules\/\" class=\"local-link\">Terraform<\/a> surfaced to manage this next level of cloud provisioning.<\/p>\n<p>But despite the great value Terraform and associated IaC tools have brought, <a href=\"https:\/\/thenewstack.io\/DevOps\/\" class=\"local-link\">DevOps teams<\/a> are feeling more frustrated than ever.<\/p>\n<p>The New Stack&#8217;s&#8217; 10 most popular IaC stories from 2024 show the frustrations they are feeling, and some possible paths going forward.<\/p>\n<h2><strong>1.<\/strong> <strong><a href=\"https:\/\/thenewstack.io\/infrastructure-as-code-is-dead-long-live-infrastructure-from-code\/\" class=\"local-link\">Infrastructure as Code Is Dead: Long Live Infrastructure from Code<\/a><\/strong><\/h2>\n<p>In this contributed post, <a href=\"https:\/\/www.linkedin.com\/in\/asifawan\/\" class=\"ext-link\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">Asif Awan<\/a>, co-founder and chief product officer at a company then called <a href=\"https:\/\/thenewstack.io\/appcd-lifts-developer-load-by-automating-infrastructure-from-code\/\" class=\"local-link\">appCD<\/a> but now known as <a href=\"https:\/\/stackgen.com\/\" class=\"ext-link\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">StackGen<\/a>, noted that managing, maintaining and deploying applications and infrastructure securely and consistently remains an incredibly complicated challenge.<\/p>\n<p>&#8220;Just as IaC expanded the ability to deploy to the cloud, it added complexity to that deployment by combining teams with different experiences and expertise and requiring them to find new ways to work together,&#8221; Awan noted.<\/p>\n<p>The solution, he suggested was to &#8220;generate the infrastructure your application needs based on the version of your application being deployed.&#8221;<\/p>\n<p>This approach he called &#8220;<a href=\"https:\/\/thenewstack.io\/infrastructure-as-code-from-imperative-to-declarative-and-back-again\" class=\"local-link\">Infrastructure from Code<\/a>.&#8221;<\/p>\n<h2><strong>2.<\/strong> <strong><a href=\"https:\/\/thenewstack.io\/how-we-evolved-from-iac-to-environments-as-code\/\" class=\"local-link\">How We Evolved from IaC to Environments as Code<\/a><\/strong><\/h2>\n<p><a href=\"https:\/\/www.linkedin.com\/in\/edan-evantal-2153764\" class=\"ext-link\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">Edan Evantal<\/a>, CTO of <a href=\"https:\/\/www.quali.com\/?utm_content=inline+mention\" class=\"ext-link\" target=\"_blank\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">Quali<\/a> noted that IaC tools were designed for velocity and automation, not as the source of truth for environments. Great for deploying cloud services, they are pretty terrible as a tool for predicting how code changes can change app performance<\/p>\n<p>Also,&nbsp;IaC tools don&rsquo;t play nicely together.<\/p>\n<p>He noted that Quali rethinks the IaC process, defining everything a developer needs to launch an environment, in such a way that it is easy for machines and humans to understand. Then, teams can use <a href=\"https:\/\/thenewstack.io\/4-core-principles-of-gitops\/\" class=\"local-link\">GitOps<\/a> as a base to launch applications.<\/p>\n<h2><strong>3.<\/strong> <strong><a href=\"https:\/\/thenewstack.io\/terraform-isnt-dead\/\" class=\"local-link\">Terraform Isn&rsquo;t Dead<\/a><\/strong><\/h2>\n<p><a href=\"https:\/\/nitric.io?utm_content=inline+mention\" class=\"ext-link\" target=\"_blank\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">Nitric<\/a>&#8216;s <a href=\"https:\/\/www.linkedin.com\/in\/rak-siva-b9360816a\/\" class=\"ext-link\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">Rak Siva<\/a> is also a proponent of Infrastructure <em>from <\/em>Code (IfC).<\/p>\n<p>The problem, Siva wrote, is&#8221;when a developer decides to replace a manually managed storage bucket with a third-party service alternative, the corresponding IaC scripts must also be manually updated, which becomes cumbersome and error-prone as projects scale. The desync that occurs between the application and its runtime can lead to serious security implications, where resources are granted far more permissions than they require or are left rogue and forgotten.&#8221;<\/p>\n<p>He added, &#8220;Infrastructure from Code automates the bits that were previously manual in nature.&nbsp; Whenever an application changes, IfC can help provision resources and configurations that accurately reflect its runtime requirements, eliminating much of the manual work typically involved.&#8221;<\/p>\n<p>Siva noted that the the developer doesn&#8217;t write the low-level configuration code, for tasks like setting up IAM roles and permissions, but rather, they just need to know its available.<\/p>\n<p>Nitric offers an open source IfC framework for building in your language of choice and deploying to all the major clouds.<\/p>\n<p>&nbsp;<\/p>\n<blockquote class=\"twitter-tweet tw-align-center\">\n<p dir=\"ltr\" lang=\"en\">Infrastructure as Code is unidirectional and has an asymmetric experience where changes (writes) and observations (reads) are performed through different tools. What are some consequences of that? Is it really necessary?<a href=\"https:\/\/t.co\/O1WJX6yhic\" class=\"ext-link\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">https:\/\/t.co\/O1WJX6yhic<\/a><a href=\"https:\/\/twitter.com\/hashtag\/infrastructureascode?src=hash&amp;ref_src=twsrc%5Etfw\" class=\"ext-link\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">#infrastructureascode<\/a><\/p>\n<p>&mdash; Brian Grant (@bgrant0607) <a href=\"https:\/\/twitter.com\/bgrant0607\/status\/1871245193783255101?ref_src=twsrc%5Etfw\" class=\"ext-link\" rel=\"external nofollow\" onclick=\"this.target=&#039;_blank&#039;;\">December 23, 2024<\/a><\/p><\/blockquote>\n<p>