Terence Bennett - February 25, 2014

Bill Appleton

Adopting a private cloud strategy provides some amazing capabilities for the modern enterprise. A company can turn a conventional data center into a private cloud with virtual services for compute, storage, database, and network. Companies with products in this area include VMware, Rackspace, Dell, HP, IBM, and Red Hat. Cloud orchestration software gives an enterprise the ability to combine automated tasks and provision a network, storage array, firewalls, hypervisor, operating system, database and application with the click of a button. Popular orchestration systems are available from VMware, OpenStack and CloudStack.

Now let’s say you want to build a modern application. Mobile devices like phones and tablets must use REST APIs for collaborative activities and database access. The new generation of wearable devices and the Internet of Things also depends on REST APIs. Developers use REST for server to server or desktop to server communication as well. It’s just a matter of time until legacy HTML websites are rebuilt with the same REST API that all these other devices are already using.

The first step is to provision a new server on your private cloud for application development. You might create a LAMP stack with a SQL database, or perhaps MongoDB plus an application server. But these systems don’t have a services interface. The development team will have to wade into server side software development and build REST APIs for these assets. This situation verges on the absurd: your private cloud has sophisticated REST services to control orchestration and automation, but there aren’t any services available to actually use the assets that you just allocated!

Meanwhile, your developer has visited a Platform as a Service vendor like Amazon or Azure, swiped the corporate card, and built the application. One of the main reasons developers like PaaS is because these services have an easy to use REST API. Services like S3, DynamoDB, and Azure Tables allow them to focus on the client code and ignore the backend issues. And so now you have two choices. First, you can build your own backend and rewrite the application for your private cloud, or second, you can throw in the towel and run the new application as is. This is a big reason why many private cloud implementations are eroding into the public cloud.

Everything would be different if you had an easy to use REST interface for software development. Every time you allocated a new server the developers could start coding immediately. And in fact the DreamFactory Services Platform is a perfect solution for providing a REST API for almost any backend system. DreamFactory is an open source software package that is easy to install on your private cloud or any other server. We provide installation packages for AWS, Azure, BitNami, VMware, Redhat, CentOS, Debian, and Ubuntu.

We make it easy to hook up almost any kind of SQL database, NoSQL database or file storage system and expose these assets with a comprehensive palette of RESTful services. SQL database support includes MySQL, SQL Server, DB2, and PostgreSQL. NoSQL databases include DynamoDB, SimpleDB, Azure Tables, MongoDB, MongoHQ, and CouchDB. For file storage we offer Amazon S3, Azure Tables, and OpenStack Objects. User management features include password hashing, single sign-on, OAuth, Active Directory, Guest Users, and Open Registration. Security services include the ability to control access to all backend assets through detailed user roles and permissions. Lastly, we can perform external service integration with URL parameters and HTTP headers.

So there you have it. The DreamFactory Services Platform is a great addition to your private cloud installation. Simply use your orchestration software to install our software package along with your favorite database or file storage system. We deliver an easy to use REST API that your developers will love. In many cases there will be no need for them to write server software at all, and this allows smaller teams or even a single engineer to write great service based applications.