{ DreamFactory: 'Blog' }

Avoid Cloud Lock-In With Service Virtualization

Posted by Bill Appleton

Find me on:

Fri, Jul 18, 2014

bill-appleton-author-mobile-archMy previous blog covered the new trend of cloud platform vendors creating developer facing services in an attempt to lock customers into proprietary interfaces. The danger for enterprise customers is that switching costs will rise, and this will reduce the flexibility and increase the cost of application deployments. Proprietary interfaces will reduce the compatibility between public, private, and hybrid cloud installations as well. But there is a great solution to this problem: a service platform like DreamFactory can abstract all of the connections to backend data sources and provide a virtualization layer at the service level. This allows applications to migrate between clouds, servers, and databases with ease. 

Cloud Virtualization Technologies

Before we dive in, there are other interesting forms of virtualization that should be mentioned. For example, VMware provides virtualization at the operating system level. Their virtual machines are highly portable between computers, because every host looks the same to every guest. A more recent development is Docker, an open-source project that automates the deployment of applications inside Linux software containers. Docker provides virtualization and packaging at the application process level.

And by the way, DreamFactory works great with both VMware and Docker. We have a virtual appliance for VMware and are also available in the VMware marketplace. Docker is quite new, but we are working on a Docker package that will be available soon. We also have buildpacks in production for the PaaS ecosystem. All of this simply means that the DreamFactory software package can be installed on any cloud, server, or data center.


So VMware comes in handy when you want to move operating systems between machines, and Docker is useful for moving applications between operating systems. But DreamFactory can seamlessly move cloud services between applications. We provide an abstraction layer between all of the different services that your application uses and the backend database connections, file storage systems, and RESTful interfaces. This is an incredibly useful capability for a number of reasons discussed below.

Developer Facing Services

Web services are becoming very important for application development. Mobile devices like phones and tablets must use REST APIs for collaborative activities and database access. But all of these services can have different characteristics. Some use XML, some use JSON. Some use SOAP, some use REST. Each service has unique user authentication and security requirements. Some important assets like SQL databases don't have a REST interface at all, developers have to build one. Some NoSQL databases have an interface but can't be called from a client due to security constraints. Unfortunately developers have to figure out how to navigate this API jungle.


If that wasn't bad enough for developers, the companies they work for end up being locked in to all these services. For example, a mobile application written in HTML5 and PhoneGap will include external service calls embedded in JavaScript. A native mobile application for iOS, Android, or Windows 8 will include external service calls in the Objective C, Java or .Net code. Since this compiled code is deployed on a phone or tablet, changing a service can require a visit the App Store for updates. Companies locked in to a proprietary service lose the flexibility they need to make good decisions. What if a service becomes too expensive? What if application requirements change? What if a better alternative becomes available?  


DreamFactory is the perfect solution for preventing interface lock-in. First off, DreamFactory is an open source software package that is easy to install on your private cloud or any other server. We offer a commercial license and support package for customers who need one but otherwise this is a completely free and open source software package written by service API experts. We make it easy to hook up almost any kind of SQL database, NoSQL database or file storage system, and securely expose these assets with a comprehensive palette of RESTful services.

Web Services Abstraction

The picture below shows how DreamFactory solves the service lock-in problem. On the left hand side we can hook up to a wide variety of SQL databases, NoSQL databases, and file storage systems, both in the cloud and on premises. But on the right hand column our service platform exposes these assets with a single comprehensive, generic and unified REST API designed for software development. As long as developers use this API they can swap out any of the backend services without changing the client application! Our REST API acts as a "mediation layer" or "service broker" to prevent lock-in to proprietary interfaces.


There are additional advantages to using the DreamFactory Services Platform. Now developers have a single REST interface for all of these backend systems. They can use a new service without building or even learning a new API. They have a single user authentication model with roles and permissions. They have a single security model through SSO. All master credentials to backend systems are securely hidden by the platform.

Cloud Migration Scenarios

What if an application needs to be moved from one cloud vendor to another? From development, to testing, to production? From inside to outside the firewall? Between geographies or data centers? From your data center to the cloud, or from the cloud to your data center? An enterprise needs the flexibility to change services as needed without disruption or expense.

In order to solve this problem first you need an easy way to run your service platform anywhere. We have been hard at work on this problem, and now support a huge number of operating systems, including Red Hat Enterprise Linux, Ubuntu, Cent OS, Debian, OS X Desktop, Windows Desktop, VMware virtual appliances, and even WAMP. And we have been selected for inclusion in multiple cloud marketplaces including: Red Hat's OpenShift Marketplace, IBM's Cloud Marketplace, Amazon Web Services Marketplace, Microsoft's VM Depot, Rackspace Marketplace, Bitnami Marketplace, and the VMware Marketplace. 

Once DreamFactory is installed, a wide variety of application migration senarios become possible. For example, consider moving an application from development, to testing, to production. You could set up DreamFactory running on a desktop for development using a local database. When ready, you pack up the application and move to a cloud server for testing with another database. When ready, the exact same code could be moved to the production server and database. In each environment the application runs in the same service environment, but the backend connections to the various databases change.

So there you have it. DreamFactory is a great way to avoid getting locked in to proprietary interfaces. We do this in three ways. First, DreamFactory is an open-source software product. So you can't get locked in there. Second, we support a wide variety of software environments and operating systems, so you can move between servers with ease. And lastly, we abstract all of the databases and backend services, so you can switch between SQL databases, NoSQL databases, and file storage systems without disrupting your front end application.

Sign up for the Free Hosted Edition of the DreamFactory Services Platform:


Install the open source software package with the DreamFactory Services Platform:


Get started with DreamFactory with a free hosted DreamFactory development environment. Or, download and run it on the server, cloud, or desktop of your choice.

Weekly Digest

Recent Posts