Skip to content
Jason Williscroft edited this page Aug 15, 2024 · 7 revisions

Metastructure in a Nutshell

Where other tools use special syntax & structure to ENCAPSULATE Terraform code, Metastructure uses a powerful template engine to GENERATE Terraform code.

Contents

Welcome to Metastructure!

Metastructure is a command-line tool that works in conjunction with Terraform and all the other things to generate & manage a complex AWS infrastructure.

With Metastructure you can...

  • Write a true global configuration. Manage your entire enterprise from a single YAML file.

  • Actually use SSO in Terraform. Zero credentials management, ever.

  • Integrate all the things. Your configuration goes where Terraform can't.

  • DRY up your code base. Because close doesn't count.

Metastructure leverages the tools you already use to do the things you already do... just faster, smaller, and safer.

Explore this wiki to learn more, or clone the Metastructure Template Repo to get started!

Design Principles

If you don't know what good looks like, then how will you know when you've built it?

After 40 years writing mission-critical software, I've learned the hard way that a principled approach delivers the best results. If you don't know what good looks like, then how will you know when you've built it?

Metastructure is designed to help your code embody these principles:

  • Code >> Conduct - Your developers should be writing instructions for machines. If they're OPERATING machines, you aren't done yet.

  • DRY >> WET - Don't Repeat Yourself. Ever. If you do, it's a code smell.

  • SOLID >> !SOLID - SOLID is what good looks like. Period. If you can't apply these principles to your code, that's a DESIGN smell.

  • Generic Logic + Custom Config >> Custom Logic - Generic, config-driven code requires superior architecture. The reverse is also true. What kind of thing do YOU want to build?

  • Automation >> Encapsulation + Risk - You wouldn't let a human employee take a critical risk without at least having the option to double-check his work. How much smarter are your tools?

See The Trouble With Terraform to learn what problems Metastructure solves.

So What Next?

Metastructure is a powerful IDEA, but the tool itself is fairly simple. The real magic is in the templates you create to generate your infrastructure code.

The Metastructure Template Repo aims to provide an enterprise-grade reference infrastructure that can serve as a robust starting point for your own projects.

At the moment...

  • I'm adding a critical mass of key features to the Metastructure Template Repo to make it a more useful reference. At a minimum this will include the existing SSO implementation, full cross-account CloudWatch audit logging, and a GitHub Actions-based DevOps pipeline.

  • I'm developing a course on Udemy to present Metastructure and work organically through the process of developing the Metastructure Template Repo.

So stay tuned!

I ❤️ Metastructure! How Can I Help?

You are AWESOME! 👊

The best way to help is to clone the Metastructure Template Repo and start building your own infrastructure with it!

Want to add a new generic pattern or feature to the template implementation? Start a discussion and I'll help!

Want to work on the core Metastructure tool? See How To Contribute for more info!