Rapid development and deployment is a hallmark of DevOps. The faster pace doesn’t change the need for testing applications before they’re pushed to production, or QA testing the code and infrastructure, though. The tricky part for many organizations is that different groups need access to the same environment, and creating duplicate environments can be tedious.
There are plenty of tools out there that enable an IT admin to quickly create and provision virtual servers. The virtual servers can even be created from base images that include all of the necessary applications and configuration to match the servers in production. That part is fairly simple.
Where it starts to become challenging is the rest of the infrastructure. The virtual servers might be identical to the production servers, but unless the switches, routers, connections to other servers and applications, IP addresses, and every other aspect of the production infrastructure match identically, the testing or development done in the secondary environment might not be completely valid.
In 2011, the core team that introduced the KVM hypervisor—now the standard virtualization technology in Linux—founded Ravello Systems to address and solve this challenge. The Ravello Systems team understood that it’s possible to migrate virtual servers to a new environment, but that doing so introduces other issues, and the resulting environment is not an exact duplicate of the original. They set out to find a way for an entire infrastructure to keep up with the pace of agile development.
Ravello provides organizations with a way to implement repeatable deployments—complete clones—of complex multi-tier production environments at the push of a button. It’s a concept they call nested virtualization. Ravello saves a blueprint of the environment, and enables IT admins to spin up instances of the complete IT infrastructure, including networking and storage configurations, with a single click or API call.
One organization that has adopted Ravello for managing rapid development is Deutsche Telekom. Deutsche Telekom (DT)—the fourth largest wireless service provider in the world—maintains a cloud telephony service that is a complex multi-tier application with multiple virtual machines, and network appliances from F5 Networks, Brocade, and Palo Alto Networks. DT uses Chef and Jenkins to automate many aspects of continuous integration and continuous development, but it needed a solution to keep up with capacity needs without the expense and effort involved in expanding the physical datacenter environment.
“Creating a copy of our production-like environment in Ravello was easy. We simply uploaded our base image, and virtual appliance form factors of our physical appliances, and then used the Chef bootstrapping support that Ravello offers to bootstrap into our existing Chef infrastructure,” said Ram Akuka, director of DevOps at Deutsche Telekom HBS in a statement. “What we are building is a truly large scale system with millions of concurrent users and transactions, so by continuously developing with Ravello we can easily scale to meet our customer’s critical business communication needs twenty-four by seven.”
The first wave of virtualization made server platforms hardware agnostic. A virtual machine of any server operating system could be deployed and run from virtually any x86 hardware through virtualization. Ravello takes that a step farther by taking the entire virtualized environment, and making it cloud agnostic. The Ravello virtualized infrastructure can be deployed on AWS, Azure, or any other cloud platform.
Ravello also keeps the pricing and invoicing for the service simple. Ravello charges customers on a per application basis rather than per VM. The Ravello pricing also includes the underlying cloud platform. You get one bill from Ravello, and you don’t need to pay the cloud provider separately.
If you’re struggling to scale the scope and capacity of your infrastructure to keep up with demand, or you’re having challenges with development or testing in environments that aren’t exact clones of the production environment, you should take a closer look at Ravello and see if it will help you resolve those issues.