This is a guest post written and contributed by Gal Moav (@GalMoav), director of product management at Ravello Systems, a Rackspace Cloud Tools partner. Powered by the industry’s first Cloud Application Hypervisor, Ravello enables enterprise development teams to overcome internal capacity constraints and leverage the power of the cloud to supercharge their application development processes – resulting in faster time to market and higher quality.
The development and testing resource problem
Application development managers in enterprises face an acute problem day in and day out: they lack the resources for proper development and testing. This problem isn't new. In fact, it's been around for so long that most developers have learned to live with the pain. However, given increasing pressure from line of business owners to develop new applications and new features faster than ever, the problem is once again coming to the forefront in a big way.
Is the cloud a good solution?
Theoretically, from a 30,000-foot level, the public cloud — with its unlimited capacity — offers a good solution. However, using the cloud to develop and test an application that has to be deployed on-premise is near impossible, because the cloud is a completely different environment from the internal data center. In most cases, deploying an application on the cloud involves significant rewriting and re-coding. Just think about all the details: using the exact same hardened operating system with the same patch level and monitoring tools; identical physical specification (core count and memory size, network interface cards and disk controllers) and network and storage topology; controlling DNS names and DHCP address allocation; using virtual appliances (such as firewalls and load-balancers), and the list goes on and on. Let’s say you do all this and essentially rewrite your application to run in the cloud. Now what? Developing and testing that application is meaningless because it looks completely different from what the target production deployment on-premise will look like.
An ideal world
In an ideal world, developers would be able to replicate their application and its environment in the cloud, instantly, without making any changes whatsoever. They would be able to use the same VMs, the same networking and storage topology. Then, developers should be able to, instantly and on-demand, create as many copies of the application as they need for development and testing (integration testing, system testing, penetration testing, destructive testing, etc.). Such replicas of the application would be completely consistent with the on-premise production environment so issues are found early in the cycle, and not when the code hits staging or production.
Developers may want to take this concept further and implement Continuous Integration (CI). Doing so, every time a developer checks in code, their CI system fires up multiple copies of the production replica application in the cloud and runs tests in parallel. Developers will be able to collaborate on live application instances, make changes and save complete versions of the application including its infrastructure. For advanced users, the entire multi-VM application infrastructure stack (VMs, network config, storage config, etc.) should be programmable, managed with code and versioned along with the rest of the application.
At Ravello, we wanted to implement this vision of the ideal world, and quickly realized that doing so requires a fundamentally different approach. With that in mind, we developed what we call a Cloud Application Hypervisor.
Supercharge your application development with Ravello
The Cloud Application Hypervisor is a new technology that allows you to completely encapsulate your multi-VM application, along with its entire environment (networking and storage) and deploy it instantly on the Rackspace cloud (or any public cloud) – without making any changes to the VMs, OS or application.
Once you do that, you can create as many copies as you want for development and test with the click of a button or a simple API call. Advanced users can also integrate Ravello with their CI environments, work iteratively on live application instances and version the entire application and its infrastructure. (Click image to enlarge.)
Ravello is exposed as an easy to use SaaS offering. We have just opened up our beta to everyone, and you can try it out for free. We don’t require your credit card, or your cloud credentials. Check it out: www.ravellosystems.com.