Natural LanguageThought Leadership7 min readJune 30, 2025

Beyond HCL: Why Natural Language is the Future of Infrastructure

Every infrastructure language asks humans to think like machines. Natural language flips this - machines finally understand humans.

o
ops0 Engineering
Technical Team

Key Takeaways

  • Natural language aligns implementation with intent better than HCL
  • Machines should own implementation while humans own intent
  • AI generates the code for audit trails, but humans don't write it
  • ops0 IaC turns natural language into production-ready infrastructure code

Every infrastructure language makes the same tradeoff. It asks humans to think like machines.

HCL wants you to think in resources and providers. YAML wants you to think in indentation and key-value pairs. Even tools that let you use "real" programming languages still require you to think in terms of cloud primitives and API objects.

This is backwards. Machines should understand humans, not the other way around.

The Syntax Tax

Consider what happens when you need a simple database.

You know what you want: a Postgres database for your production application. Encrypted. Backed up. Accessible from your application servers. Standard stuff.

Now write the Terraform.

You need a database instance resource. But first you need a subnet group. Which requires subnet resources. Which require a VPC. You need a security group with the right ingress rules. You need a parameter group if you want non-default settings. You need to think about encryption keys. You probably want secrets management for the credentials.

Forty lines of HCL minimum. More likely a hundred. And you haven't thought about backups, monitoring, or read replicas yet.

This is the syntax tax. The cost of translating simple intent into complex configuration. It exists because infrastructure languages were designed to describe cloud resources, not human requirements.

The Abstraction Trap

"But we have modules!"

Yes, and modules are better than raw resources. But they don't solve the fundamental problem - they just move it.

Now instead of writing resources, you're writing module calls. Instead of learning cloud APIs, you're learning module interfaces. The abstraction layer shifted, but the translation requirement didn't.

And modules have their own challenges. They go stale. They don't cover your exact use case. They require you to understand what they're doing anyway, because eventually something goes wrong and you need to debug it.

The module ecosystem is a community-driven attempt to solve the translation problem. It's valuable work. It's also not enough.

What Natural Language Actually Enables

Natural language isn't just a more convenient syntax. It's a fundamentally different relationship between human and machine.

When you say "I need a production Postgres database," you're not describing resources. You're describing outcomes. The word "production" carries implicit requirements: high availability, encryption, monitoring, backup, security hardening. The word "Postgres" implies specific performance characteristics and operational patterns.

A sufficiently intelligent system doesn't need you to spell these out. It knows what production means in your context. It knows your organization's security policies. It knows the compliance requirements that apply to your industry.

This is why natural language scales better than configuration languages. As your requirements get more complex, your intent statements stay simple. "I need a production Postgres database with read replicas in two regions" is barely longer than the original sentence, but it would require hundreds of additional lines of HCL.

Intent vs. Implementation

Here's the core insight: humans should own intent, machines should own implementation.

You decide what you need. The machine decides how to build it. You set the constraints. The machine works within them. You define success. The machine achieves it.

This isn't a reduction in control. It's a clarification of control. You control what matters - the outcomes, the policies, the boundaries. You delegate what doesn't - the syntax, the API calls, the resource dependencies.

In practice, this means you can say: "Deploy this to production with our standard security configuration" and trust that the machine knows what "standard security configuration" means because it has access to your policies, your history, your organization's definition of standard.

The Safety Argument

The counterargument writes itself: "Natural language is ambiguous. Configuration languages are precise. You can't build reliable infrastructure on ambiguous foundations."

This concern is worth examining.

Configuration languages are precise in syntax and ambiguous in intent. The machine knows exactly what resources to create. It has no idea if those resources are what you actually needed.

Natural language is flexible in syntax and precise in intent. The sentence "I need a production database" could be implemented many ways. But the intent - a database suitable for production use - is clear.

Which kind of precision matters more?

Every infrastructure incident caused by "I deployed the wrong thing" is a failure of intent precision. The configuration was correct. The configuration was also wrong, because it didn't match what was actually needed.

Natural language, combined with AI that understands context, produces more reliable infrastructure because it aligns implementation with intent. The machine asks clarifying questions when intent is unclear. It validates that implementation matches requirements. It catches the gap between what you said and what you meant.

The Audit Trail Question

"But we need everything in code for audit purposes."

You still get code. You always get code. The AI generates infrastructure-as-code because that's how you deploy and track changes. Git history still works. Pull request reviews still work. Compliance requirements are still met.

The difference is who writes the code. Today, humans write it and machines execute it. Tomorrow, machines write it and humans approve it.

This is a better division of labor. Humans are good at reviewing, understanding implications, catching edge cases. Humans are less good at writing hundreds of lines of error-free configuration. Let each party do what they're good at.

The Terraform Transition

Terraform isn't going to disappear overnight. Millions of lines of HCL exist. Thousands of teams have built their workflows around it. The investment is enormous.

But the transition has a clear path.

First, AI reads your existing Terraform and understands what it does. Not just parses it - understands the intent behind it. This is what ops0's Discovery does with existing infrastructure: turns implementation back into intent.

Second, AI generates new Terraform from natural language. You describe what you need; the IaC feature writes the code. You review and approve. Your repository stays full of HCL, but you never wrote any of it.

Third, the HCL becomes an implementation detail. You stop looking at it because you don't need to. It exists, it's important for audit trails, but it's not something humans need to interact with directly.

This is how every programming paradigm shift works. The old layer doesn't disappear - it recedes. Assembly is still there, under C. C is still there, under Python. Terraform will still be there, under natural language.

What We Gain

We gain speed. Infrastructure that took days to write takes minutes to describe.

We gain consistency. AI doesn't make typos. It doesn't forget security groups. It doesn't copy-paste incorrectly.

We gain scalability. The time to describe ten databases is barely more than the time to describe one.

We gain accessibility. Developers who never learned Terraform can now provision infrastructure. The barrier to entry for infrastructure work drops dramatically.

We gain focus. Infrastructure engineers stop being syntax specialists and start being architecture advisors. The work gets more interesting, not less.

ops0's Approach

ops0's IaC feature embeds natural language throughout. Describe what you need, and it generates production-ready infrastructure code.

But it goes further. The generated code syncs to Git automatically. It can be deployed directly. The Resource Graph shows you what will be created before you commit.

Natural language isn't a gimmick in ops0. It's the primary interface.

The future of infrastructure isn't better configuration languages. It's the end of configuration languages as a human interface.

Ready to Experience ops0?

See how AI-powered infrastructure management can transform your DevOps workflow.

Get Started

From code to cloud in
minutes, not days.

All services are online
MADE WITH IN DALLAS, TEXAS
Beyond HCL: Why Natural Language is the Future of Infrastructure - ops0 Blog | ops0