Today’s hybrid clouds don’t live up to the name, in Gartner analyst Eric Knipp’s opinion. Without application portability, hybrid clouds are just a collection of remote and in-house applications that have been tailored for each environment and loosely integrated.
“When I think of hybrid cloud, I’m thinking of a place where I can write an application and then deploy it to any hosting location without changing the application at all,” said Knipp, Gartner managing VP. In a true hybrid cloud, workloads can be easily moved back and forth between private and public clouds to facilitate deployment and efficient scaling. Using either policy or some flick of a switch, a developer could make that same application scale to many other places, which may span private, public or even multiple public providers.
Deploying a single application across many environments with no real limitations is a capability that doesn’t exist today, said Knipp, who is co-author of Gartner’s 2015 Planning Guide for Cloud Computing. “To get there, we have to be architecting portable cloud applications in a way that dimensionally can live up to this hybrid cloud fantasy that we have today,” he explained. “I think it’s going to exist, because I see some building block technologies that are maturing.”
Using a platform as a service (PaaS) framework, like Red Hat OpenShift or Cloud Foundry, is a first step toward such “real” hybrid clouds. PaaS greatly increases application developers’ productivity by outsourcing the “plumbing” required for software development. PaaS provides infrastructure provisioning, development tools and cloud testing so that developers can focus on building the business logic and other important features.
Some say that Docker is the best basic building block for the hybrid cloud, but Knipp doesn’t. Docker is an open source container program in which an application and its dependencies can be bundled. A container is where a program building block, or component, can be run. “Docker is a useful enabling technology, but doesn’t solve most portability challenges,” Knipp said. All Docker enables is embedding software into the Docker image that can be shared. “It doesn’t help you with the external dependencies, and that’s where the developer’s problem really lies.” Even before Docker, Knipp said, it wasn’t that hard to build an application, even as a .jar, that could be deployed across many different instances of Tomcat.
“Backing services is what was hard to solve before Docker and still remains hard to solve after Docker,” Knipp explained. All the components involved — the database, the message queues, the in-memory data grids, the analytics service, and so on – add tremendous complexity. It’s not just what’s in that application that’s difficult to handle, it’s all the backend services, Knipp said. PaaS helps by providing and automating many of those services.
Portability has to be the key non-functional requirement consideration for any new application that’s being built in the cloud. “Just because I can take my application and drop it someplace else doesn’t actually make it portable,” Knipp concluded. “For me, hybrid cloud will only be achieved when we have a much higher degree of application portability.”