Save to My DOJO
In this post, we’ll be covering 7 critical benefits to adopting an Infrastructure as Code (IoC) approach for your VMware environment.
With the increasing hype of the cloud, we are starting to see more and more buzz around the benefits of migrating to the cloud. Infrastructure as Code is one of those benefits, however, it’s not just a cloud term. Infrastructure as Code can be implemented on-premise too even for those who are not ready yet to migrate to the cloud.
What is Infrastructure as Code? It is the coined phrase for taking a developer approach to defining our infrastructure components like storage, compute and networking. We are essentially adopting the concepts of how a developer would handle building an application and using those methods for building our infrastructure. Just how a developer stores their application’s code in source control, we store the code for our infrastructure in some sort of source control as well like Git. The benefits of Infrastructure as Code are so powerful that we are starting to see companies separate themselves from their competitors by utilizing this approach in their IT Environment. Below are some of the benefits gained from adopting the IaC model.
Want to jump right in with IaC and VMware? Take a look at our article about Terraform and VMware!
Increased Site Reliability
The traditional IT operating model consists of groups or teams that run monthly or daily checks on devices to ensure the environment is healthy. I’ve been apart of several teams in my System Administrator days who were tasked with this very role. Running health checks manually on systems is never going to be 100 percent reliable because there are too many human variables like high workload, sick days, or holidays. When our environment is defined in code we can then enforce that code using Configuration Management tools like Ansible, Puppet, or Chef. The daily or monthly checks that are done by an entire team can now be done every 15 minutes 24/7 365 days out of the year. Also, we are not just getting a “node up” type of insight like you would get from a monitoring platform. With Configuration Management you get a fine-grained insight into the environment and with the ability to define the code yourself the possibilities are almost limitless. If SQL isn’t configured according to our standards, we will get an alert and know about it. If Windows doesn’t have feature X installed, we will know about it and installed it. Having this sort of power over the configuration of our environment now gives us site reliability on a whole new level.
Agility and Efficiency In Deploying Infrastructure
Back in the day we were doing manual deployments of infrastructure, procuring server hardware for each application and deploying everything by hand. Nowadays with Virtual Machines, we are able to move much quicker and most companies have some sort of automated VM deployment process. With Infrastructure as Code, the efficiency of our deployments are taken to the next level. We don’t have to maintain these complex ad-hoc scripts that require hundreds of lines of code to deploy and configure a VM. With tools like Packer, we can define the creation and configuration of our VMware templates all through code and then work in a SecOps process like scanning those newly created templates with a vulnerability scanner to ensure we are deploying up to date templates. With an IaC tool like Terraform, we can define our VM deployment in under 100 lines of code and even turn our deployment code into a module that can be reused over and over again. Then with Puppet, we can enforce the configuration on our VM and ensure that nothing changes unless we want it to.
Disaster Recovery and Migration
Migrating or rebuilding infrastructure that has already been defined in code quickly becomes a trivial task. The code for the system is already there, you just have to re-deploy it and poof, everything is there again. We no longer have to mount a Windows ISO or find the golden template to deploy from because it’s already there defined in the code. This can be extremely powerful and a great real-life example is a company in California that was using Puppet. They had a natural disaster in one of their data centers due to a forest fire and had to evacuate resources elsewhere. Turns out they were able to rebuild everything in another data center in under 1 hour because they were using Puppet to define the resources in code.
Because we are storing our configuration and infrastructure code in source control, we now get the ultimate benefit of source control, change tracking. During an outage, everyone is scrambling to find out what has changed. With IaC we can see in detail all changes that were made to the system. Not only is change tracking on infrastructure great for troubleshooting, but it’s also amazing for rolling back a system. Imagine if you made a devastating change to 100 nodes, with IaC you just revert the code back and redeploy the code again. This can be a life saver for companies that lose money by the thousands during an unplanned outage.
Remove Skill Set Silos
Once the installation and configuration of an application has been defined in code, we no longer need to depend on specific teams or employees that specialize in installing and configuring that software. If we automate the deployment of SQL or Citrix, then anyone on the team can deploy it with the tools and it will be configured the same way every time. Now the person who used to do all the SQL installs can focus on other things that provide more value to the company.
Process Synergy for Hybrid Cloud or Future Cloud Endeavors
IaC is now the recommended way for managing Cloud environments like AWS, Azure, and GCP. Because IaC tools like Terraform are cloud-agnostic, the process for deploying and managing infrastructure doesn’t change regardless of where the infrastructure is being housed. Now don’t get this part confused, the PROCESS won’t change but the code that will be deployed will, there are too many differences between on-prem and the various clouds to have one written configuration be reused for all of them. But if the team is already familiar with Terraform and how to deploy and manage configurations, they will have an extremely easy time with hybrid cloud or any future cloud adoptions. Packer, another cloud-agnostic IAC tool, automates the creation of Virtual Machine images in both VMware, AWS, Azure, and GCP. The great part about this is that with Packer an Image can be created and deployed to each of these environments AT THE SAME TIME!
Gain Time Back
Investing in IaC provides an efficiency on the team that allows employees to gain their time back. Because of the increased site reliability, employees aren’t getting the weekend phone calls. They are also no longer having to perform tedious tasks like clicking through application installs, spot-checking systems, or running reports. Instead, Engineers can focus on being innovative and working on projects that will be of more benefit to the company.
How to Get Started with Infrastructure as Code
Now that we’ve gone over some of the benefits of IaC with VMware, where do we start? First, we will need to look into some of the toolsets out there. The typical strategy at the moment is to use an orchestration tool like Terraform or Pulumi combined with a Configuration Management tool like Ansible, Puppet, Chef, or SaltStack. The orchestration tool does the high-level provisioning of the infrastructure components while the configuration management tool handles the configuration and enforcement of the infrastructure component. Each tool has it’s pros and cons and it really depends on your environment to figure out which one is best. Most IaC tools are open source so getting started and doing some hands-on testing is pretty easy. I recommend taking it one step at a time and start with deploying something simple and evolve from there. If you’re interested in playing around with Terraform, be sure to check out our article on how to get started with Terraform on VMware. IaC has a big role in modernizing your on-premise infrastructure, it can provide amazing benefits like infrastructure agility when done correctly and should be seriously looked at by any VMware Administrator.
Not a DOJO Member yet?
Join thousands of other IT pros and receive a weekly roundup email with the latest content & updates!