-
Notifications
You must be signed in to change notification settings - Fork 1
Terraform
Suppose you have been tasked with setting up a set of cloud services for your company's project. You can head over to the cloud service provider of your choice and start configuring to your heart's content, but there are a couple problems. What happens if, as the months go by, you need to set up more resources, but you have lost track of the configuration options you chose when initially setting everything up and are not sure of how these new resources are going to connect to the old ones. Or perhaps you would like to try a new configuration set up, but you don't really know how to capture the old configuration in a concise manner, and you don't really care to go back and manually set it up the way it was before anyways, so you miss out on the chance to discover a better approach. Enter 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. Feel free to take a look at this blog on what problem Terraform is solving as well as these videos on what Terraform is and how it works.
But there's a new 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!
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 as well as on going support to keep you up to date on the ever changing world of DevOps and cloud services.
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.
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.
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 supported in the future:
For more information on how to configure these resources through DevXP, please refer to the resource configuration section inside the usage page of the wiki.
Example text to see the size
Support for Microsoft Azure features is on its way!
DevXP - Empowering developers by making DevOps simple.