This post will introduce you to the concept of templating and how to decide on the best option for your business. You’ll learn about some of the benefits of templating and why it’s important for organizations that deploy cloud infrastructure on a regular basis.
What is IaaS?
IaaS is a type of cloud computing that provides virtualized components of physical servers, storage devices and networking equipment to create IT infrastructure. It’s one of the four major categories of cloud services—the others being software as a service (SaaS), platform as a service (PaaS) and serverless computing.
- IaaS offers compute, storage, networking and management resources over the internet on demand; you only pay for what you use. It lets you bypass buying and managing hardware by using virtual hardware like virtual machines (VMs), virtual networks and virtual storage instead.
- The largest IaaS vendors are Amazon Web Services, Microsoft Azure and Google Cloud, who provide access to raw computing power that can be used in any way you see fit, efficiently creating environments that get you up and running quickly.
- A “hybrid” deployment includes setting up infrastructure on more than one vendor as well as possibly on-premise.
IaaS templates are pre-built infrastructure as code where each IaaS vendor has their own scripting language that you must learn (and love?). Whether you are aiming to use (or currently) a Cloud IaaS platform, exploring a hybrid solution or even bringing the Cloud tech on-prem, IaaS templates will play a large role in ensuring that you can control, version and maintain your deployed infrastructure. Running a Cloud-based IT organization without templates only leads to chaos and tremendous technical debt (don’t worry, we’ve been there and done that).
Reasons to consider using templates
You may be wondering why we should go through all this effort in the first place. Well, there are several reasons:
- Templates help you stand up a new environment faster and more easily. You can use templates as a way to organize your IaaS deployments as well as help you build copies of those deployments so you can iterate quickly for your innovation. They also allow you to share your innovation outside of your cloud, for business continuity or custom installations or even if that’s how you sell your product.
- Templates help secure the environment because they give security tools the ability to scan proposed deployment architecture for problems BEFORE anything is deployed! This gives early detection AND avoids technical debt/security costs! You should always have an active security scan in place as well, ideally every 30 days. New vulnerabilities are discovered all the time.
- Finally, templates should be managed by software development practices like Gitflow with post-PR automation that pushes those changes out. This process creates an audit trail for change management processes too!
IaaS templates automate the creation of resources.
Terraform is an open source fully independent system that can orchestrate AWS, Azure and Google. VMWare, OpenStack and a few others from an on-premises perspective have templates that can orchestrate building infrastructure on their virtualization platforms.
Native templates are the closest to parity with what features are available for the IaaS platform. They often lag behind a bit, but usually not by much. The integration of these into your workflow can be extremely powerful, as well as exposing you to tools and technologies that will be useful for other parts of your application.
On the negative side, they can be a bit clunky/hard to use for abstracting out common components (as they have their own quirks and limitations), so if you’re going down this path, just know that it can be a steep learning curve.
As an IaaS provider, Terraform is a great option for your cloud templates. It provides abstraction from any underlying vendor and enables hybrid deployments using one template technology. You can invoke existing or not implemented vendor templates too. Additionally, it’s open source without a vendor opinion.
Another level of sophistication is to use Packer with Terraform where Packer would build the machine images tailored for each IaaS vendor in your stack and Terraform would deploy them. This saves time by allowing you to make changes to your machine images in one place and hand them off to be deployed.
Keep in mind that it doesn’t always support every type of technology that an IaaS vendor has available and you may have to learn something that isn’t part of the IaaS vendor’s native tech.
As you can see, there are a wide variety of IaaS templates that can be used for your infrastructure. Templates lead to well-organized, securable and maintainable cloud deployments. Pick an approach and get to innovating!
Need help choosing an approach? Contact the Valtira DevOps team and we’ll give you a nudge in the right direction!