{"id":1083,"date":"2025-10-14T07:56:16","date_gmt":"2025-10-14T05:56:16","guid":{"rendered":"https:\/\/aymen-segni.com\/?p=1083"},"modified":"2025-10-14T07:56:16","modified_gmt":"2025-10-14T05:56:16","slug":"how-to-fail-at-terraform","status":"publish","type":"post","link":"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/","title":{"rendered":"How to Fail at Terraform?"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>Infrastructure as Code, particularly with tools like Terraform, has become indispensable in managing cloud resources. Its widespread adoption is well-deserved due to its extensive ecosystem and compatibility with a wide range of platforms. However, while many teams excel in their Terraform implementations, numerous others find themselves grappling with technical debt and sprawling, insecure infrastructures. Even seasoned engineers are not immune to making mistakes. These errors often arise subtly, stemming from minor design decisions and seemingly innocuous implementation shortcuts. The challenges go beyond mere syntax errors or failed <code>terraform apply<\/code> commands. They lie in deeper, foundational issues that transform small oversights into significant problems. These troubles can accumulate to such an extent that the only viable option appears to be a total overhaul of the system. Let\u2019s examine some common pitfalls that organizations frequently encounter in their Terraform journey.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-79ec4843d20357f4e1198512060cf69b\">It All Starts with Design (Or Lack Thereof)<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>The choices you make before you write a single line of HCL will echo through the entire lifecycle of your project. This is probably the most critical phase, yet it&#8217;s often the most neglected. There&#8217;s a persistent tendency to pour all the design effort into the application itself, leaving the infrastructure configuration as an afterthought. This is where the first seeds of technical debt are sown.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-5ccf36a789ce119c90f927163997534d\">The &#8220;Not Invented Here&#8221; Trap<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>You\u2019ve probably heard it called &#8220;reinventing the wheel.&#8221; An engineering team feels compelled to build their own Terraform configuration from the ground up because they &#8220;don&#8217;t trust&#8221; a third-party module or it isn&#8217;t a <em>perfect<\/em> fit for their specifications.<\/p>\n\n\n\n<p>Now, sometimes a bespoke solution is genuinely necessary. But more often than not, this impulse is a sign of something else. It might be a cultural resistance to external ideas, or it might just be a failure to properly evaluate existing options. When teams insist on building everything themselves, they often end up duplicating work that&#8217;s already been solved, tested, and hardened by the community. This wastes time and can isolate the team from valuable innovations.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-de43c8fa74cf8f48c63bdd7fb32f18be\">The Monolith Configuration<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>One of Terraform&#8217;s best features is its support for modularity, but you wouldn&#8217;t know it from looking at many codebases. Too many infrastructure setups aren&#8217;t designed to scale.<\/p>\n\n\n\n<p>The story usually goes something like this:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"has-black-color has-text-color has-link-color wp-elements-6e8ea0a0726b58a47dc894f2d29caa50\">The design phase for a new app wraps up. Time to build!<\/li>\n\n\n\n<li class=\"has-black-color has-text-color has-link-color wp-elements-9995094386231704932ab7a647f8b547\">There&#8217;s a massive push to get a working stack shipped. Yesterday.<\/li>\n\n\n\n<li class=\"has-black-color has-text-color has-link-color wp-elements-36ebf892c467d64e7fabaeb414afc462\">Some Terraform code is quickly thrown together in the root of the application repository.<\/li>\n\n\n\n<li class=\"has-black-color has-text-color has-link-color wp-elements-af2d6c6340b90c7da43fe9199e9103b1\">Success! Version 1 is live. The servers and databases are humming along.<\/li>\n<\/ol>\n\n\n\n<p>The problem is, the process stops there. When it&#8217;s time to deploy a new application, the whole frantic cycle repeats. If the first app needs a new region, it&#8217;s just bolted onto the same root module. Over time, this thing grows into an unmanageable beast. What about a QA environment? Or disaster recovery? Without modules, engineers are forced to copy and paste code, creating a tangled web of configurations that nobody fully understands or wants to touch. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-315ba2e907b307e84c9e3755ea60d726\">Designing in a Silo<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>One of the original promises of DevOps was to break down the walls between developers and operations. Yet, in many places, those walls are still standing strong. We still see application designs thrown over the wall to DevOps or Cloud engineers, who are then expected to just implement them, no questions asked.<\/p>\n\n\n\n<p>This is the opposite of how it should work. Deployment velocity &#8211; how quickly and reliably you can ship code &#8211; is a key measure of success. If design feedback is bouncing between disconnected teams and people are arguing over technical ownership, that velocity grinds to a halt.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-9f2422bffa1e29555a27f0372c751fcb\">When Deadlines Get Unrealistic<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>Poor design and collaboration inevitably lead to another problem: engineers get squeezed by impossible deadlines. The effort to implement the infrastructure wasn&#8217;t properly factored into the plan because the plan was made in a vacuum.<\/p>\n\n\n\n<p>Looming deadlines lead to shortcuts. Shortcuts lead to tech debt. And tech debt often leads to security issues. Engineers tend to be an optimistic bunch, underestimating the time and effort a task will take. The initial plan assumes a perfect world with no interruptions. Then reality hits, and the constant firefighting can doom a project before it even gets off the ground.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-8d34ef1406db5b9bbd6d62cc526a24bd\">Good Intentions, Bad Practices<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Even with a decent design, the implementation can go off the rails. And while design flaws are easier to fix when caught early, implementation failures tend to be far more expensive to untangle.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-4bcad4adb6132c8a70fe194fd5fac567\">The Wild West of Naming Conventions<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>A Terraform codebase with no enforced standards is a special kind of nightmare. Once this chaos sets in at scale, it&#8217;s incredibly difficult to walk back.<\/p>\n\n\n\n<p>You&#8217;ll see breakdowns like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-black-color has-text-color has-link-color wp-elements-0a2f0c1231bb8a4d54e540f23b6b0924\">No consistent way of naming resources (<code>prod-db<\/code> in one place, <code>db-PROD<\/code> in another).<\/li>\n\n\n\n<li class=\"has-black-color has-text-color has-link-color wp-elements-2371db8009285e9b2b2a53acd7b99867\">Hardcoded settings that should have been input variables from the start.<\/li>\n\n\n\n<li class=\"has-black-color has-text-color has-link-color wp-elements-3fc9989475df020c3250ca3061cf04d7\">One app stack is organized by environment folders, another uses workspaces, and a third crams everything into one module with a mountain of parameters.<\/li>\n\n\n\n<li class=\"has-black-color has-text-color has-link-color wp-elements-4c293e169f1a11d9c385653a4716a608\">An IAM policy might be a <code>data<\/code> source, a HEREDOC, or an <code>aws_iam_role_policy<\/code> resource, depending on who wrote it that day.<\/li>\n<\/ul>\n\n\n\n<p>Here\u2019s a classic example that seems small but causes big headaches: hyphens versus underscores in resource names.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"># Is it snake_case?\nresource \"aws_instance\" \"frontend_web_server\" { ... }\n\n# Or kebab-case? Or CamelCase?\nresource \"aws_instance\" \"frontend-webServer\" { ... }\n<\/code><\/pre>\n\n\n\n<p>Both of these will create an EC2 instance, but their addresses within Terraform&#8217;s state will be different. This might seem trivial, but in a large codebase full of references and outputs, these little inconsistencies create friction. They make the infrastructure harder for new engineers to understand and can create a fear of making changes.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-fd3a290a85d7c1c315877fa7dd9b0298\">Letting Everything Sprawl<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>As mentioned before, Terraform gives us tools like modules and workspaces to keep our code DRY (Don&#8217;t Repeat Yourself). Deployments with tons of repeated code are brittle and a pain to work with.<\/p>\n\n\n\n<p>When faced with a tangled mess of resources, an engineer&#8217;s first impulse is often to propose a complete rewrite. Unfortunately, this &#8220;scorched-earth&#8221; approach usually just makes the problem worse. Now you have the old, sprawling system <em>and<\/em> a new one to manage.<\/p>\n\n\n\n<p>Resource sprawl isn&#8217;t just messy; it&#8217;s expensive and insecure. You can&#8217;t secure something if you don&#8217;t even know it exists. Using hardened, reusable Terraform modules creates a set of standard, opinionated building blocks. This reduces duplicated effort and tightens your security posture from the start.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-c42ef87cf53dab0f0faf49852f6228ee\">The Myth of the Laptop Deploy<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>CI\/CD pipelines are the engine of modern software delivery. They let us check in, test, and deploy code quickly and reliably. Terraform code should be treated just like application code: put it in version control, lint it, test it, and deploy it automatically.<\/p>\n\n\n\n<p>Running <code>terraform apply<\/code> from a laptop is fine when you&#8217;re learning, but it&#8217;s not a viable strategy for a team managing production environments. It creates a single point of failure (what happens when that person is on vacation?) and leaves no audit trail. Terraform has features like remote state and state locking that are specifically designed for teams and automation. Use them.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-924b5b4eb06c03565ecdd9b9091cffcf\">Flying Blind Without Policy and Tests<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>Policy-as-code engines like Open Policy Agent (OPA) or HashiCorp&#8217;s Sentinel can act as guardrails. They can automatically prevent someone from deploying an S3 bucket that&#8217;s open to the world or an IAM role with overly permissive access.<\/p>\n\n\n\n<p>Without these checks, you&#8217;re left relying on manual reviews, which are slow, error-prone, and simply don&#8217;t scale. Policies provide the safety net that allows teams to move quickly and autonomously without compromising on security or standards.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-b52635381163dda11fbdda30a43ce3c9\">The Slow Decay of Operational Neglect<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>These failures aren&#8217;t unique to infrastructure; they plague all kinds of software projects. Organizations have a habit of forgetting about the &#8220;soft&#8221; work, like documentation and routine maintenance, once a project is live.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-b7830ee534cf1017946aa55669d24e10\">Forgetting to Build a Knowledge Base<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>Teams often don&#8217;t invest the time to build a solid foundation of knowledge. Things like documentation, architecture diagrams, and Architectural Decision Records (ADRs) are essential for a project&#8217;s long-term health.<\/p>\n\n\n\n<p>The pain from this neglect might not be felt right away. The first generation of engineers on the project has all the context in their heads. But what happens a year or two later when those people have moved on? Without a written record of <em>why<\/em> certain decisions were made, the project&#8217;s continuity is at risk. New engineers will be tempted to start from scratch rather than trying to understand the existing system, leading to the &#8220;now you have two problems&#8221; situation all over again.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-0a32448b86307298f4d15a41c7f7938b\">Chasing the &#8220;New&#8221; and Ignoring the Debt<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>Once a project ships, it&#8217;s often forgotten. All the attention and rewards go to the next shiny new thing. No engineer wants to get stuck maintaining old projects.<\/p>\n\n\n\n<p>Over time, this culture leads to a massive accumulation of technical debt. For Terraform, which can have multiple releases with breaking changes each year, this means older configurations become brittle and locked into outdated versions.<\/p>\n\n\n\n<p>The fix for this is cultural. If the only thing that gets rewarded is shipping new features, you&#8217;ll end up with a graveyard of unmaintained projects. A healthy engineering culture celebrates craftsmanship and maintenance just as much as it celebrates a greenfield launch.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-93845ca574305bd8d03fd93b486c5277\">Getting It Right Is More Than a Technical Problem<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Avoiding these pitfalls isn&#8217;t just about writing better code. It&#8217;s about fostering an engineering culture that values pragmatic design, collaboration, and long-term maintenance. It means embracing Terraform&#8217;s ecosystem instead of trying to build everything from scratch.<\/p>\n\n\n\n<p>Organizations that commit to this approach will end up with more than just high-performing infrastructure. They&#8217;ll build more empowered and effective engineering teams.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Teams rarely fail Terraform on syntax. They fail on design and discipline: monolith configs, copy-paste sprawl, laptop applies, and no policy or tests.<\/p>\n","protected":false},"author":1,"featured_media":1176,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[19,6,47,2,27,16],"class_list":["post-1083","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-non-classe","tag-deployment","tag-devops","tag-infar-as-code","tag-kubernetes","tag-sre","tag-terraform"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Fail at Terraform? - Run It On Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Fail at Terraform? - Run It On Cloud\" \/>\n<meta property=\"og:description\" content=\"Teams rarely fail Terraform on syntax. They fail on design and discipline: monolith configs, copy-paste sprawl, laptop applies, and no policy or tests.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/\" \/>\n<meta property=\"og:site_name\" content=\"Run It On Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-14T05:56:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/aymen-segni.com\/wp-content\/uploads\/2025\/10\/how-to-fail-in-terraform-1024x683.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"683\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"aymen-segni\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/x.com\/axsegni\" \/>\n<meta name=\"twitter:site\" content=\"@axsegni\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"aymen-segni\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/\"},\"author\":{\"name\":\"aymen-segni\",\"@id\":\"https:\/\/aymen-segni.com\/#\/schema\/person\/32033966e7bd410bbaf1b79c7e94b59d\"},\"headline\":\"How to Fail at Terraform?\",\"datePublished\":\"2025-10-14T05:56:16+00:00\",\"dateModified\":\"2025-10-14T05:56:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/\"},\"wordCount\":1568,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/aymen-segni.com\/#\/schema\/person\/32033966e7bd410bbaf1b79c7e94b59d\"},\"keywords\":[\"deployment\",\"devops\",\"infar-as-code\",\"kubernetes\",\"sre\",\"terraform\"],\"articleSection\":[\"Non class\u00e9\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/\",\"url\":\"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/\",\"name\":\"How to Fail at Terraform? - Run It On Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/aymen-segni.com\/#website\"},\"datePublished\":\"2025-10-14T05:56:16+00:00\",\"dateModified\":\"2025-10-14T05:56:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/aymen-segni.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Fail at Terraform?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/aymen-segni.com\/#website\",\"url\":\"https:\/\/aymen-segni.com\/\",\"name\":\"Run It On Cloud\",\"description\":\"Accelerate your Cloud &amp; MLOps Journey\",\"publisher\":{\"@id\":\"https:\/\/aymen-segni.com\/#\/schema\/person\/32033966e7bd410bbaf1b79c7e94b59d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/aymen-segni.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/aymen-segni.com\/#\/schema\/person\/32033966e7bd410bbaf1b79c7e94b59d\",\"name\":\"aymen-segni\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/aymen-segni.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/aymen-segni.com\/wp-content\/uploads\/2025\/02\/72799.jpg\",\"contentUrl\":\"https:\/\/aymen-segni.com\/wp-content\/uploads\/2025\/02\/72799.jpg\",\"width\":896,\"height\":1152,\"caption\":\"aymen-segni\"},\"logo\":{\"@id\":\"https:\/\/aymen-segni.com\/#\/schema\/person\/image\/\"},\"description\":\"Staff Engineer with over a decade of experience in building, scaling, and leading MLOPS, Cloud Native, SRE, and DevOps platforms across high-growth and enterprise environments. I specialize in architecting production-grade systems with a strong emphasis on resilience, security, and developer experience; bringing together deep expertise in distributed systems, Kubernetes, and modern platform engineering to empower engineering teams and accelerate business value. My work spans Cloud (AWS, GCP, Azure, OpenStack), Kubernetes, SRE (SLOs, observability, incident response), AI infrastructure and AgentOps (vLLM, Nvidia, RayServe, etc), and Platform Engineering (Backstage, Keptn, GitOps, self-service). I\u2019ve led teams through Cloud Native transformations, established scalable SRE practices, and built internal platforms that streamline operations and reduce cognitive load. With a strong programming background, and Infrastructure as Code (Terraform, Helm, Ansible), I drive automation-first approaches to eliminate toil, ensure reliability, and enable secure, compliant deployment pipelines. My focus today is on building Cloud Native AI platforms, where DevOps meets AI Infrastructure Stacks to support scalable, production-ready LLMs and AI Platforms. As a dedicated mentor, both within my teams and through platforms like MentorCruise, I am passionate about helping engineers perform at their best and assisting organizations in scaling with confidence. Driven by systems thinking, platform-as-a-product mindset, and engineering excellence, I help teams ship faster, operate smarter, and scale with confidence.\",\"sameAs\":[\"https:\/\/aymen-segni.com\",\"https:\/\/www.linkedin.com\/in\/aymen-segni\",\"https:\/\/twitter.com\/https:\/\/x.com\/axsegni\"],\"url\":\"https:\/\/aymen-segni.com\/index.php\/author\/admin8647\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Fail at Terraform? - Run It On Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/","og_locale":"en_US","og_type":"article","og_title":"How to Fail at Terraform? - Run It On Cloud","og_description":"Teams rarely fail Terraform on syntax. They fail on design and discipline: monolith configs, copy-paste sprawl, laptop applies, and no policy or tests.","og_url":"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/","og_site_name":"Run It On Cloud","article_published_time":"2025-10-14T05:56:16+00:00","og_image":[{"width":1024,"height":683,"url":"https:\/\/aymen-segni.com\/wp-content\/uploads\/2025\/10\/how-to-fail-in-terraform-1024x683.png","type":"image\/png"}],"author":"aymen-segni","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/x.com\/axsegni","twitter_site":"@axsegni","twitter_misc":{"Written by":"aymen-segni","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/#article","isPartOf":{"@id":"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/"},"author":{"name":"aymen-segni","@id":"https:\/\/aymen-segni.com\/#\/schema\/person\/32033966e7bd410bbaf1b79c7e94b59d"},"headline":"How to Fail at Terraform?","datePublished":"2025-10-14T05:56:16+00:00","dateModified":"2025-10-14T05:56:16+00:00","mainEntityOfPage":{"@id":"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/"},"wordCount":1568,"commentCount":0,"publisher":{"@id":"https:\/\/aymen-segni.com\/#\/schema\/person\/32033966e7bd410bbaf1b79c7e94b59d"},"keywords":["deployment","devops","infar-as-code","kubernetes","sre","terraform"],"articleSection":["Non class\u00e9"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/","url":"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/","name":"How to Fail at Terraform? - Run It On Cloud","isPartOf":{"@id":"https:\/\/aymen-segni.com\/#website"},"datePublished":"2025-10-14T05:56:16+00:00","dateModified":"2025-10-14T05:56:16+00:00","breadcrumb":{"@id":"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/aymen-segni.com\/index.php\/2025\/10\/14\/how-to-fail-at-terraform\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/aymen-segni.com\/"},{"@type":"ListItem","position":2,"name":"How to Fail at Terraform?"}]},{"@type":"WebSite","@id":"https:\/\/aymen-segni.com\/#website","url":"https:\/\/aymen-segni.com\/","name":"Run It On Cloud","description":"Accelerate your Cloud &amp; MLOps Journey","publisher":{"@id":"https:\/\/aymen-segni.com\/#\/schema\/person\/32033966e7bd410bbaf1b79c7e94b59d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/aymen-segni.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/aymen-segni.com\/#\/schema\/person\/32033966e7bd410bbaf1b79c7e94b59d","name":"aymen-segni","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/aymen-segni.com\/#\/schema\/person\/image\/","url":"https:\/\/aymen-segni.com\/wp-content\/uploads\/2025\/02\/72799.jpg","contentUrl":"https:\/\/aymen-segni.com\/wp-content\/uploads\/2025\/02\/72799.jpg","width":896,"height":1152,"caption":"aymen-segni"},"logo":{"@id":"https:\/\/aymen-segni.com\/#\/schema\/person\/image\/"},"description":"Staff Engineer with over a decade of experience in building, scaling, and leading MLOPS, Cloud Native, SRE, and DevOps platforms across high-growth and enterprise environments. I specialize in architecting production-grade systems with a strong emphasis on resilience, security, and developer experience; bringing together deep expertise in distributed systems, Kubernetes, and modern platform engineering to empower engineering teams and accelerate business value. My work spans Cloud (AWS, GCP, Azure, OpenStack), Kubernetes, SRE (SLOs, observability, incident response), AI infrastructure and AgentOps (vLLM, Nvidia, RayServe, etc), and Platform Engineering (Backstage, Keptn, GitOps, self-service). I\u2019ve led teams through Cloud Native transformations, established scalable SRE practices, and built internal platforms that streamline operations and reduce cognitive load. With a strong programming background, and Infrastructure as Code (Terraform, Helm, Ansible), I drive automation-first approaches to eliminate toil, ensure reliability, and enable secure, compliant deployment pipelines. My focus today is on building Cloud Native AI platforms, where DevOps meets AI Infrastructure Stacks to support scalable, production-ready LLMs and AI Platforms. As a dedicated mentor, both within my teams and through platforms like MentorCruise, I am passionate about helping engineers perform at their best and assisting organizations in scaling with confidence. Driven by systems thinking, platform-as-a-product mindset, and engineering excellence, I help teams ship faster, operate smarter, and scale with confidence.","sameAs":["https:\/\/aymen-segni.com","https:\/\/www.linkedin.com\/in\/aymen-segni","https:\/\/twitter.com\/https:\/\/x.com\/axsegni"],"url":"https:\/\/aymen-segni.com\/index.php\/author\/admin8647\/"}]}},"jetpack_featured_media_url":"https:\/\/aymen-segni.com\/wp-content\/uploads\/2025\/10\/how-to-fail-in-terraform.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/aymen-segni.com\/index.php\/wp-json\/wp\/v2\/posts\/1083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aymen-segni.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aymen-segni.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aymen-segni.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aymen-segni.com\/index.php\/wp-json\/wp\/v2\/comments?post=1083"}],"version-history":[{"count":3,"href":"https:\/\/aymen-segni.com\/index.php\/wp-json\/wp\/v2\/posts\/1083\/revisions"}],"predecessor-version":[{"id":1178,"href":"https:\/\/aymen-segni.com\/index.php\/wp-json\/wp\/v2\/posts\/1083\/revisions\/1178"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aymen-segni.com\/index.php\/wp-json\/wp\/v2\/media\/1176"}],"wp:attachment":[{"href":"https:\/\/aymen-segni.com\/index.php\/wp-json\/wp\/v2\/media?parent=1083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aymen-segni.com\/index.php\/wp-json\/wp\/v2\/categories?post=1083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aymen-segni.com\/index.php\/wp-json\/wp\/v2\/tags?post=1083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}