Why DreamFactory Embraces Open Source
by Terence Bennett • July 6, 2018The engineering team here at DreamFactory Software designed and built some of the very first rich applications that use web services. We learned the hard way that building apps for demanding enterprise customers can be daunting. Server-side page generation doesn’t work. Delivering a high performance experience on network-limited, performance-constrained devices is non-trivial. Managing security is especially challenging. And you have to build your own API to access the backend.
We thought: “there must be a better way!” So in 2012 we set out to perfect the design and implementation of a mobile backend platform that would meet the needs of our development team. These efforts led us to develop the DreamFactory Services Platform — a RESTful backend integration platform that allows mobile, web, and IoT developers to connect any data source and expose it with a secure, comprehensive palette of REST APIs for use by any client device.
Today, DreamFactory is a thriving open source project on GitHub under the Apache License. The choice of open source distribution has been a real benefit for the adoption of the software and likewise for customer deployments, and feedback from the thousands of developers who have adopted DreamFactory continues to shape the project.
MBaaS without the “aaS”
Many of the players in our product space are “Software as a Service” (SaaS) vendors. They provide backend hosting for mobile projects. In many cases, their customers are independent developers or small companies developing mobile applications for consumers. These hosting services are sometimes referred to as “Mobile Backend as a Service” or MBaaS.
However, the problem DreamFactory was focused on solving was the application integration challenge for enterprise mobile and web developers. Typically, these involve large-scale mobile deployments that need secure access to multiple data backend data sources, often in SQL databases. Another use case is for “Internet of Things” (IoT) projects. In most cases, enterprises already have policies surrounding how they manage, deploy, monitor, and secure their mobile applications. By releasing DreamFactory as an open source project, companies are able to deploy in their own data center or preferred cloud and manage with their existing practices.
A related issue is the massive scalability required for these deployments. In concert with our partner Bitnami, DreamFactory provides single-click installation packages for more than a dozen different cloud platforms. These cover the gamut across “Infrastructure as a Service” (IaaS) and “Platform as a Service” (PaaS) cloud vendors. The PaaS providers have some interesting options for scalable deployment. Customers can develop a DreamFactory-backed application on the desktop and then push an image of that DreamFactory instance to the cloud.
All of these deployment and scalability scenarios would have been unwieldy or impossible to support with proprietary software and traditional licensing. By releasing DreamFactory as an open source project, developers can work with the source code on the desktop, and operations people can experiment with highly scalable deployment scenarios.
Open Source Flexibility
Open source enables users to try, test, and deploy DreamFactory on whatever hosts they want. Plus, companies need to be able to move applications from development, to testing, to production servers. In other situations, an application might be moved from the data center to the cloud. Open source enables the horizontal migration of DreamFactory across different servers as needed.
In other situations, users need to include DreamFactory in their product offering. For example, Binary Workshop builds software for what they call “Co-working Spaces” — offices where startups co-habit and share resources. Their customers can install DreamFactory as needed to host the software. Another company, FramTech, develops client software for building automation and monitoring. Its customers often need to store their data in a private server or cloud for security reasons. Trying to turn independent software developers like these into resellers would generate lots of friction for adoption and deployment.
Community Collaboration
DreamFactory is written in the PHP Laravel framework and also uses Google’s V8 JavaScript engine for server-side customization. The software connects data sources to client devices via auto-generated REST APIs and documentation. Because this is an open source project, we are benefiting from developers contributing new data source drivers and new client SDKs to the project. Database drivers for Cassandra, Hadoop, and HANA are in production, and new client SDKs for Xamarin, Swift, and React are on the way.
Open Core Model
Later this year we will release a separate enterprise product for the open source DreamFactory Services Platform. This product will help users deploy and manage any number of DreamFactory instances more effectively. The ELK Stack by Elasticsearch, another open source project, will provide consolidated usage reporting. This software package will support larger-scale enterprise mobile deployments and enable IaaS, PaaS, or managed service providers to offer MBaaS hosting capabilities powered by DreamFactory software.
The current DreamFactory open source software package will be upgraded to version 2.0 and continue generating rapid adoption of the software. Both users and partners can deploy the core open source software in flexible ways, and users with very large deployments can manage the platform as needed.
To learn more, visit www.dreamfactory.com — I would love to hear how DreamFactory can help you with your projects, and invite questions and comments.
Terence Bennett, CEO of DreamFactory, has a wealth of experience in government IT systems and Google Cloud. His impressive background includes being a former U.S. Navy Intelligence Officer and a former member of Google's Red Team. Prior to becoming CEO, he served as COO at DreamFactory Software.