Skip to content

Terraform

Keanelek Enns edited this page Mar 9, 2022 · 18 revisions

Why Terraform?

Terraform is a tool developed by HashiCorp with the purpose of codifying your cloud services setup and integrating it into your workflow. This allows for reproducibility, consistency, state management, revision management, and centralized control over all of your cloud services. Terraform is great, and it's only getting more popular among DevOps engineers.

But there's a problem: the HashiCorp Configuration Language (HCL). Go ahead, take a look at the Terraform registry and whatever tutorials you can find on the web and try to get a working configuration file setup for your project. Maybe you are a DevOps guru who constantly keeps up with the ever changing state of cloud services, and Terraform's configuration options make perfect sense to you, in that case, more power to you! On the off chance, however, that you are new to Terraform, or you just haven't had a decade or so to learn all there is to learn in the DevOps world, we are here for you!

Why DevXP?

DevXP makes it easy for you to create working Terraform configuration files in under a minute. That way, you get all the benefits of Terraform mentioned above without having to struggle through the early stages of learning the tool and language.

Sure, you might be able to get an EC2 instance running with a bit of work, but usually companies and projects have much more complex requirements. How do you get your resources to communicate with one another? How do you make sure you are following best practices and creating a product that is secure? DevXP, that's how. DevXP provides you with a jumping off point to springboard your development.

Providers

Cloud service providers are companies that establish public clouds, manage private clouds, or offer on-demand cloud computing components (also known as cloud computing services) like Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), and Software-as-a-Service(SaaS). Cloud services can reduce business process costs when compared to on-premise IT.

Using a cloud provider is a helpful way to access computing services that you would otherwise have to provide on your own, such as:

  • Infrastructure: The foundation of every computing environment. This infrastructure could include networks, database services, data management, data storage (known in this context as cloud storage), servers (cloud is the basis for serverless computing), and virtualization.
  • Platforms: The tools needed to create and deploy applications. These platforms could include operating systems like Linux®, middleware, and runtime environments.
  • Software: Ready-to-use applications. This software could be custom or standard applications provided by independent service providers.

         -- RedHat

DevXP supports services from three of the biggest cloud service providers out there: Amazon, Google, and Microsoft. These services are delivered through their respective cloud service platforms: Amazon Web Services, Google Cloud Platform, and Microsoft Azure.

Resources

This section aims to explain what a resource is, and give details about the resources that are configurable through DevXP.

Terraform uses the term resource as a generic term for most cloud services. An EC2 server or a lambda function from AWS are examples of resources.

Microsoft Azure defines a resource in the following way:

A manageable item that is available through Azure. Virtual machines, storage accounts, web apps, databases, and virtual networks are examples of resources. Resource groups, subscriptions, management groups, and tags are also examples of resources.

Supported Resources

Here is a list of the resources currently supported by DevXP. Please contact one of the authors if there are specific resources you would like to see in the future:

  • AWS
    • EC2
    • S3
    • Lambda Functions
    • Glacier Vault
    • Dynamo DB
  • GCP
    • GCE
    • Google Storage Bucket
  • Azure (Coming Soon!)

For more information on how to configure these resources, please refer to the resource configuration section inside the usage page of the wiki.

Clone this wiki locally