How Terraform Simplifies Orchestrating All Quiet

Image

🏋️ Handling incidents is tough. That's why All Quiet is easy to use. Learn how our Terraform provider simplifies and automates managing resources in All Quiet.

Updated: Tuesday, 09 July 2024

Published: Tuesday, 09 July 2024

Today, almost every company is relying on Software as a Service (SaaS) tools. Businesses use SaaS applications for everything from project management to customer relationship management, and more. However, managing these tools, especially at scale, can be a daunting task. This is where Terraform comes into play. In this blog post, we'll explore what Terraform is, how it works, and why it simplifies orchestrating your SaaS stack, including All Quiet, particularly when it comes to managing users. We'll also provide a short example.

What is Terraform?

Terraform is an open-source infrastructure as code (IaC) tool that allows you to define and provision infrastructure using a high-level configuration language. Unlike traditional manual processes, Terraform uses declarative configuration files to specify the desired state of your infrastructure. Once defined, Terraform will automatically provision and manage the resources to match that state.

How Does Terraform Work?

At its core, Terraform operates in a straightforward cycle: write, plan, apply.

1. Write: Define the desired state of your infrastructure in configuration files using HashiCorp Configuration Language (HCL) or JSON.

2. Plan: Generate an execution plan showing what actions Terraform will take to achieve the desired state.

3. Apply: Execute the plan, creating, modifying, or destroying resources as necessary to match the configuration.

Terraform relies on providers to interact with various platforms and services. Each provider offers a set of resource types and data sources that Terraform can manage. To use the All Quiet Provider for Terraform, you can either follow our setup documentation or directly check our resource documentation on Terraform.

Simplifying SaaS Management with Terraform

When it comes to managing SaaS tools, Terraform shines in several key areas:

Unified Management

One of the biggest challenges in managing multiple SaaS tools is the lack of a unified interface. Each tool often has its own admin panel, API, and set of configurations. Terraform addresses this by providing a single, consistent interface to manage a wide range of SaaS applications. With providers available for popular SaaS tools like AWS, Google Workspace, GitHub and also, All Quiet, you can manage all your SaaS configurations from a single set of Terraform files.

Consistent User Management

User management across various SaaS tools can quickly become unmanageable, especially as organizations grow. Terraform simplifies this by allowing you to define user roles, permissions, and access controls in a centralized manner. For example, you can use Terraform to create users in Google Workspace, manage repository access in GitHub and assign roles in All Quiet, all from the same configuration.

Automation and Scalability

Terraform's automation capabilities are a game-changer for scaling SaaS management. By defining your desired state in code, you can easily replicate and scale your configurations across multiple environments. This is particularly useful for onboarding new employees, where you can automate the provisioning of user accounts and access permissions across all necessary SaaS tools.

Practical Example: Managing Users with Terraform

Let's consider a practical example of managing users across different SaaS tools, including All Quiet, using Terraform.

Step 1: Define Providers

First, we define the providers for the SaaS tools we want to manage. For this example, let's use Google Workspace and All Quiet.

        
provider "googleworkspace" {
    credentials = file("path_to_credentials.json")
    customer_id = "your_customer_id"
}

provider "allquiet" {
    api_key = "your_api_key"
}
    
   
Step 2: Manage Users

Next, we define the users we want to manage. In All Quiet, you manage users via the “allquiet_team” resource. New users receive an invite to create their own password.


        
resource "googleworkspace_user" "example_user" {
  primary_email = "john.doe@example.com"
  name {
    given_name = "John"
    family_name = "Doe"
  }
}

resource "allquiet_team" "example_team" {
  display_name = Example Team"
  time_zone_id = "America/Los_Angeles"
  incident_engagement_report_settings = {
    day_of_week = "mon"
    time        = "09:00"
  }
  members = [
    {
      email = "john.doe@example.com"
      role  = "Administrator"
    },
    ...
  ]
} 
        
   
Step 3: Apply the Configuration

Finally, we apply the configuration to provision the users.



terraform init
terraform plan
terraform apply

All Quiet Logo

© 2024 All Quiet GmbH. All rights reserved.