As part of my #SummerProject of exploring deeper into Infrastructure as Code, Public Cloud and Cloud Native it led me back to a session that I delivered last year at VeeamON.
The concept of the session was to highlight some of the things we had done from a community point of view with CHEF and Veeam to really show Day 0 operations and getting Veeam up and running in a declarative fashion.
Why did we choose to automate Veeam deployments?
We wanted to come up with way to consistently deploy Veeam servers. When you look at the difference between simple deployments and more advanced environments, we found that everyone can benefit from this consistent model
What is configuration management?
Established set of rules by which an application or environment is created, maintained and destroyed
Provides for a consistent methodology of delivery
Advanced concepts allow for self-healing and protection from configuration drift
Ongoing and not a one-time process
Benefits of configuration management
- Application or environment desired states are declared in a repeatable format
- Configurations can be versioned like any application code
- Parameterization allows for a one-to-many delivery of solutions
- Overall manpower hours and time-to-market reduced for new environments
- A desired state creates an audit trail and self-healing remediation
What is CHEF?
Server / client configuration management software where configuration ‘recipes’ are applied to servers
Supports a pull method whereby a client checks into a central CHEF server to gather configuration updates and apply those to the host
A cookbook contains one or more recipes with each responsible for a specific configuration state
Key CHEF Terms
CHEF Server: A centralized, multi-tenant aware host to which all clients will connect; Serves as the central storage of configurations and environment specifics
CHEF Client: A client-side application installed on the host, which is responsible for gathering the configuration details from the CHEF Server and applying the desired state to the host
Cookbook: A collection of one or more recipes typically focused on the deployment of an application or set of applications
Recipe: The desired state to which a host should be configured
Why is configuration management important in the enterprise?
- Reduction in large deployment lead times due to limited number of build engineers
- Reduction in growing list of outdated templates and images
- Reduction in yearly release cycle for updated templates
- Development teams impacted by testing against unsupported images
Delays in product release
Back and forth and long lead times for servers
- Changes to images and deployed servers required manual intervention
Why did we choose CHEF?
Chef gives us a universal delivery method that benefits every size organization. Chef also includes some of the best cross-platform support and testing for Windows environments. Since Veeam is deployed on Windows, this was a major win.
Desired State / Configuration / Consistently Deployed
It is important to consider the difference between a one-time use script and on-going delivery.
By using a tool like Chef, we can create a standardized delivery of all Veeam products that can be consistent across organizations. It was also an Enterprise tool, there are many different Desired State configuration tools available. Our initial investigation showed that CHEF was not only a leader in this space but a visionary in how Configuration as Code can be delivered.
Rapidly spin up / down extra components based on workload (On-Demand)
This is at the heart of what we wanted to accomplish. The ability to quickly add backup capacity as the need arises and release those licenses (this is Windows) when we don’t need them.
Grow, change, expand, shrink, evolve
We saw the DevOps and Cloud as cornerstones to how companies are evolving their business. Why should your backup software not be able to meet those goals?
Veeam traditionally has been really simple to install and deploy, although over the past years I have been involved in some large-scale deployments and installations of Veeam and whilst it works, the number of components required in these environments can take a while in the traditional sense.
Veeam needs at least one Windows OS to run all components, but also all other components can be scaled out in terms of architecture. (this is talking pre v10 where we introduce Linux Proxies) Veeam proxies in pre v10 require multiple VMs or physical systems to act as that data mover. Even with a template to deploy them if you need 10 to 100 that’s a lot of manual labor to get them running.
Now, imagine you have 10,000 VMs to protect, how much effort is it to deploy the scale-out architecture?
This was the reason for what we were doing with CHEF.
The second part of this post will go a little deeper into how and what we have done but also how you can get started here.