Getting Started with Atmos
Atmos is a cloud architecture framework for native Terraform.
Use Atmos to break your architecture into reusable Components that you implement using Terraform "root modules". Then, tie everything together using Stack configurations defined in YAML.
If you're familiar with mainstream programming frameworks, then you'll feel right at home with Atmos. It's a cloud-agnostic framework for managing your cloud infrastructure using native Terraform. You'll benefit from a well-organized project layout, best practices, design patterns, and a supportive community ready to help.
If you're new to Terraform or struggling to manage your infrastructure at scale, then Atmos is you. It's been proven to work for countless venture-backed startups and enterprises, and we're confident it will work for you too.
Are you tired of doing Terraform the old way? Try the new way.
Try Quick Start
Learn Atmos
Screenshots
To get an idea of what it looks like using atmos
on the command line, just try our quickstart and run the atmos
command to start
an interactive UI in the terminal. Use the arrow keys to select stacks and components to deploy.
In Atmos, you can easily search and navigate your configuration from the built-in UI.
Introduction
With Atmos, you gain simplified control over your cloud resources, enabling you to manage unlimited environments, services, and configurations using simple, clear YAML configuration files. Best of all, it works without writing a single line of HCL or code generation. This approach not only ensures that your infrastructure's deployment and scaling are as straightforward as executing a single command, but also cleanly separates your configuration from your Terraform code keeping it portable, thereby streamlining the entire process.
Designed to operate seamlessly across diverse environments—be it production, staging, development, or testing — Atmos integrates perfectly into continuous integration (CI/CD) workflows with its GitHub Actions or support for other TACOS. It offers a comprehensive set of commands for managing the lifecycle of your cloud infrastructure, from creation to maintenance and beyond.
By leveraging Atmos in conjunction with Cloud Posse's expertise in AWS, terraform blueprints, and our knowledgeable community, teams can achieve operational mastery and innovation faster, transforming their infrastructure management practices into a competitive advantage.
How does Atmos work?
At a high-level, Atmos is responsible for managing the configuration that gets passed to Components when they are instantiated.
To make this less abstract, we're going to focus on Terraform and how configuration gets passed to it.
The secret to scaling architectures with Terraform, is to decompose it into smaller root modules. We want to keep these root modules
as generic and reusable as possible by parameterizing them. In doing so, we shift the complexity from the HCL code to managing
the configuration itself. In terraform, there is the concept of variable files (aka "var files"),
which are JSON-esque configuration files and how external configuration is passed to terraform plan
using
the -var-file
argument.
All we need to do is tap into this power, and pass our own configuration that comes from Atmos.
With Atmos, we organize our configuration into Stacks. Stacks are YAML manifests that compose all the
Components (e.g. Terraform root modules) we need to bring up our environment. For example, in its
simplest form, we may have production
, dev
, and staging
stacks. We can then deploy any of these stacks to provision
everything using Terraform. All that Atmos does is deep-merge the variables from the stack configurations and produce a single "var file"
that we pass to the terraform plan
. There's very little magic, which is how to ensure future compatibility with Terraform and
interoperability with the entire Terraform ecosystem.
- Terraform configuration is difficult to manage at scale without tooling
- Terraform by itself is not enough to be successful
- Atmos makes managing those configurations easier
Major Benefits
Atmos offers crucial benefits for funded startups and enterprises aiming to efficiently scale their infrastructure and teams. In dynamic, growth-focused environments, its integration into DevOps practices ensures agility, compliance, and cost-effectiveness, providing key competitive advantages for managing complex systems with precision.
- Remove Guesswork and Confusion: Make Terraform operations easier to understand so that teams can manage their own Terraform projects.
- Establish Company-Wide Standards: Simplify the management and enforcement of infrastructure standards, with documented processes for repeatable and efficient collaboration.
- Ease of Configuration Management & Environments: Simplify managing complex configurations, ensure uniform deployments across environments, and replace homegrown solutions.
- Policy Compliance: Help maintain compliance with internal and external regulations.
- Cost Savings: Leverage your existing GitHub and GitHub Enterprise setups for cost-effective Terraform automation and collaboration, avoiding expensive tools.
Core Features
Atmos streamlines Terraform orchestration, environment, and configuration management, offering developers and DevOps a set of powerful tools to tackle deployment challenges. Designed to be cloud agnostic, it enables you to operate consistently across various cloud platforms. These features boost efficiency, clarity, and control across various environments, making it an indispensable asset for managing complex infrastructures with confidence.
- Terminal UI Polished interface for easier interaction with Terraform, workflows, and commands.
- Native Terraform Support: Orchestration, backend generation, varfile generation, ensuring compatibility with vanilla Terraform.
- Stacks: Powerful abstraction layer defined in YAML for orchestrating and deploying components.
- Components: A generic abstraction for deployable units, such as Terraform "root" modules.
- Vendoring: Pulls dependencies from remote sources, supporting immutable infrastructure practices.
- Custom Commands: Extends Atmos's functionality, allowing integration of any command with stack configurations.
- Workflow Orchestration: Comprehensive support for managing the lifecycle of cloud infrastructure from initiation to maintenance.
Atmos is Open Source (APACHE2)
Best of all Atmos is truly open-source (APACHE2) with an active community supporting it. There are no strings attached, and it's under active development with hundreds of GitHub stars.
There's also an ecosystem of tools that it works with, and Terraform modules downloaded hundreds of millions of times.
We encourage you to become a part of our movement and make a significant impact on the industry as a whole.
Join us on Slack or tune-in on our Weekly "DevOps" Office Hours
What Atmos is Not...
It might help to also understand what Atmos is not attempting to replace:
- Atmos is not an alternative for certain tools. Under the hood, it still executes
terraform
,kubectl
,docker
,helm
, etc. Atmos composes tools together via Stack configurations and orchestrates their execution via workflows, custom commands, or other integrations. - Atmos is not an alternative to CI/CD systems. It complements these systems by being an operational tool that can be invoked from within CI/CD pipelines, as detailed in our integrations.
- Atmos is not a competitor to Terraform Cloud or Terraform Enterprise. It’s a command-line tool that makes working with other
CLI’s like
terraform
,helm
and other infrastructure management tools better. It streamlines infrastructure configuration management and integrates nicely with existing CI/CD pipelines. Atmos is not a commercial product and has no proprietary lock-ins. - Atmos is not tied to any specific cloud provider. It is cloud-agnostic, and designed to work across various cloud platforms (e.g. AWS, GCP, Azure, etc.), enhancing interoperability rather than tying users to a single cloud environment.
- Atmos is not a configuration management database (CMDB). Although it can manage and deploy the desired state of configurations, it doesn't serve as a repository for tracking the actual state of IT assets and configurations in the traditional sense of a CMDB.
- Atmos is not a replacement for development environments or IDEs. It focuses on the orchestration and deployment aspects of infrastructure, without aiming to replace the tools developers use to write and test code.
Live Demo of Atmos
Here's a live demo we did on our weekly "Office Hours".
How do we make money?
Cloud Posse sells reference architectures for AWS that are based on Atmos and Terraform. Our typical customers are Funded Startups and Enterprises that want to leverage AWS together with platforms like GitHub, GitHub Actions, Datadog, OpsGenie, Okta, etc.
Next Steps
- Review the Core Concepts. Learn about our conventions.
- Check out our Quick Start. Get started in as little as 30 minutes.
- Check out our slides. Present a compelling case for using Atmos at your company.