To most front end developers, Mobile Backend-as-a-Service (MBaaS) sounds like startup app nirvana. Replace your entire backend development team and infrastructure with a cloud-based, API-driven service that you personally drive, directly and easily — what’s not to love? After all, the largest trend in today’s mobile development market is the solo developer gunning to be the next Stardew Valley (a farming RPG that sold over a million copies within two months of its February 2016 launch). Yet many of these ambitious indies lack the ability to manage an AWS instance, much less the necessary backend DevOps skills — or simply don’t want to go there in the first place.
So, enter MBaaS, which for the past couple years has been the newest flavor of IaaS/PaaS/Saas (Infrastructure/Platform/Software oh-you-know-the-rest). There are offerings from mega entities like Google and Amazon as well as bazillions of smaller players. There was, of course, the predictable land rush to stake a claim on the MBaaS frontier, with Facebook buying Parse and PayPal purchasing StackMob in 2013.
The honeymoon was over pretty quickly, however: first StackMob shut down in 2014, and then Facebook pulled the plug on Parse earlier this year. Numerous developers found out the hard way what that “vendor lock-in” contract they signed actually meant in practice, and there has been a fair amount of once-burned, twice-shy grumbling among forcibly former customers. However, there’s still no simpler way to do mobile app development. MBaaS offers irresistible efficiency and speed to market, and so devs are still out there shopping for backend services — while hoping to avoid Parse-like pitfalls.
Dallas-based Backendless seeks to calm these troubled mBaaS waters, positioning itself as “an API services platform” (Coming soon to an acronym near you: AaaS?).
“We provide a development and hosting environment for anyone developing client side apps or services. Custom service can be developed via Java, PHP or Node.js,” said Backendless founder Mark Piller. “You write code and deploy to Backendless, and we take it from there.”
Backendless automatically generates REST-based APIs and native libraries unique to each client, giving connectivity from a mobile app to your service at the method level: “Taking care of data serialization between client and service side, error handling, method invocation, you name it, we handle it for you,” Piller continues.
“The REST APIs are available at every single level we support,” said Piller. “From a data persistence perspective, this is most powerful part of Backendless — data scripting on the fly. All data morphing takes place automatically and is returned in native format.”
As an illustration, Piller describes creating a person object containing the properties ‘name’ and ‘age.’ “Blank app, clean slate, nothing stored on service side. You write your JS code and use our APIs to persist objects of those classes. As information is presented, Backendless will automatically generate an instance/JS object called ‘person’ that has properties name and age. Once it’s saved any client, including but not only JS, can access the object. From the data retrieval API, no matter what is being used — PHP, iOS, Android — it is returned as native data type. If iOS comes along to access this object, the instance will arrive to iOS as objective C or Swift.”
From Zero to Hero
And, just in case your inspired app does turn out to be the next Clash of Clans, scalability is a service feature “built right in” to the Backendless platform, according to Piller. “No matter what kind of traffic your client side generates, no matter how many API calls are being made, the server is able to scale itself, automatically,” he said.
How a customer uses Backendless determines the price, and there are three possible arrangements. The most basic service level, called Backendless Cloud, is free. Users access a centralized platform that runs on the company’s servers. “No download, everything preconfigured, a very low barrier of entry,” is how Piller described it.
Backendless Cloud is shared hosting of a sort; multiple applications by different developers all run on the same installation. No worries, the resources are properly isolated, so one application can’t see files from any other, but there is still that colocation, which can theoretically slow down response time.
There are also built-in functional limitations, such as only 20 GB of file space — hey, whaddya want? The price is right — but customers bumping up against any one of the various ceilings don’t necessarily need to upgrade to full-on pro service. There are “function packs” from the Backendless marketplace available to remove/increase limits or provide additional custom roles: If you want to extend the time for business logic execution, there’s a function pack for that.
Second level is Managed Backendless. This provides all the same Backendless platform services, but fully enabled/unlocked — no storage limitations, for example — and operating within a completely isolated and dedicated application environment.
“That way, all the business processes that make Backendless what it is — sending out push notifications, task execution, writing to the database — are running in isolation so there are no shared resources. The client has guaranteed up time,” explained Piller. The price is usage-based: it scales with a number of API requests per second, and file storage space required.
Finally, Backend Pro provides the complete Backend platform that a developer can download and install locally, or even with the cloud service provider of their choosing, like Google Cloud, Amazon or Azure. It is fully unlocked and limitless and comes with 24/7 monitoring, support and service. Pricing depends upon the client’s specific needs.
“Your Service-Side App Store”
Backendless, however, is not just your usual takeout container of generic services. Along with the fundamental (database, user, file, geolocation, messaging) APIs, the company provides user-defined services. Each service you develop for your unique app will be represented by its own API.
“The cool thing about this is the API for your service will be generated completely automatically by Backendless, and you can manage those APIs, you can secure and distribute them, through Backendless’s marketplace,” said Piller. “So we are really an API services platform.”
And this is what could set Backendless apart from many other mBaaS providers: The spectrum of services is only part of a larger environment designed to host a marketplace of developer defined services. “
Think of it as a service-side App Store for developers,” said Piller. “Some entities out there call themselves marketplaces, but they’re really just directories of services where the dev must still provide backend hosting. Our marketplace is an integrated part of our service platform. Plug and play.”
For example, Piller says, imagine say a Node.js developer who creates a really sweet algorithm for image scaling while building her own application. She can publish that service through the Backendless marketplace, and other Backendless clients can opt to adopt and use that code for a flat fee per month, or pennies per use, or whatever other price point the developer sets.
Currently, there is only a small marketplace in beta, offering Backendless’s own “function packs” as well as a few submissions that have made it through the company’s review process. The full marketplace will be available when Backendless Version 4 launches in less than two months.
“We will still be reviewing services to make sure there’s no malicious code, that everything is conforming to dependencies for other modules if it’s a node service,” said Piller. “But for the most part we will be relying on the community, with comments and ratings to allow people to go by feedback.”
Does this mean that Backendless will be opening up their source code? “The client side code, that a customer would couple their app to, is entirely open source. So whatever goes inside your app is built with open source in mind,” says Piller. The company is pro open source as much as possible; for example, CodeRunner — a nifty command line utility tool Backendless provides for users to develop and debug custom business logic ops — has its own GitHub repo and is open source. “Anyone interested in how it works, who thinks they can make it better, we consider every pull request we get from the community,” says Piller.
The company’s backend service side code, however, is closed source, as is standard in the MBaaS sector — developers who require complete control over the source code are just going to have to write their own. “The service side, our core services, is private. We are a business, after all.”
And for any traumatize devs still feeling post-Parse vendor lock-in vendetta?
“Your data belongs to you,” says Piller. “We hope you never want to leave, but if you do, exporting out everything is part of the Backendless management console. You can reconstruct the entire app anywhere, anytime.”