This post is the start of a series where we want to talk about the long journey until Virtomize became a thing.
Virtomize is an automation solution developed to simplify virtual machine provisioning.
Every big thing starts small
Before founding Virtomize together with my co-founder Frank, I was working at a middle sized eCommerce company. My Job was administrating and maintaining hypervisor clusters and virtual machines. These virtual machines were mostly provisioned by hand or by using templates, which took us a lot of time. A normal virtual machine took about 1-2 hours to build, including creation, installation, configuration and customization. People had to wait on average 1-2 days to get a virtual machine from our IT department.
Our R&D department regularly required a lot of virtual machines for development and testing. Sales and marketing used a bunch of them for managing websites, forums or presentation systems and internal tools. And of course, IT used them for almost every infrastructure like webservers, mail servers, chat server, video tools, etc. We started automating this process, just to free up time for more important stuff.
The challanges of a prototype
After about one year, the first early prototype version was finished. It was capable of automating the creation, installation and configuration of virtual machines.
The overall magic was done using an automation tool called Jenkins , as well as a lot of hand written code to talk with the clusters. The prototype used an inventorization software called i-doit as a data backend to store all information about existing vms.
To automate the installation, we used a bunch of kickstart install scripts. These scripts are operating system dependent and only worked in specific network configurations.
Combining all this we had a solution for our provisioning problem. Finally, we were able to provide virtual machines quickly, within very specific environments. Virtual machines could be build within 10-15 minutes instead of hours. People had to wait way less to get their work done.
Pushing the limits
By this time we had about 20 requests for virtual machines per week. Creating, installing, configuring and customizing all these virtual machines by hand was not possible anymore. This would have been about 20-40h per week, so one full person to just doing it fulltime, which we didn’t have.
Our prototype allowed us to easily create virtual machines while doing our actual work. Only special customizations were done by hand. This drastically reduced the amount of time we needed for providing virtual machines for our collegues.
We also started investigating the idea of self-service. Instead of getting a request for a virtual machine and providing it, we wanted a platform that allows people to build the virtual machines by themselves. Since many of our collegues don’t have all the needed deep technical understanding, we had to simplify the usage for them.
So using our automation tools, we build an other layer of code to create a more restricted version of the prototype. These restrictions ensured that we have control about what type of virtual machines and configurations could be build to avoid security issues.
We gave this prototype of a very early self-service system to our R&D department . This was awesome since it reduced the amount of time people needed for their actual work and made the whole development and test processes faster.
In the next post we will speak about our journey on developing the prototype even further and investigating other concepts as well as the problems we run into.
Thanks for reading so far and see you in the Virtomize.