It took almost two decades of software and hardware infrastructure development to bring us the client/server architecture and mass popularization of the cloud-based Software-as-a-Service solutions. The Internet has become an integral part of our lives – everything must be connected, monitored, optimized for our needs, and controlled remotely in real-time. So why not make the online version of backend development with means for developers to connect their mobile/Web apps via APIs and SDK? This is an abridged version explaining how this relatively new service called BaaS was born.
The idea behind BaaS (Backend-as-a-Service) is simple: there are some server-based services that can be combined to create a universal cross-platform backend for almost any project. This approach should theoretically save you from the headache that comes with the server backend maintenance. Why even bother with the hosting, servers, and forming the dev team that will be supporting each new app or client? It turns out that not everything is so simple as it seems, and good old custom backend remains superior to the BaaS newcomer in most industries and niches. We are going to explain the peculiarities of both these backend solutions and give you a handful of advice which one to use and when.
What is Backendless in the world of BaaS?
Six years ago, the BaaS market was not a big deal, and it was only developing at the time. In 2016, it was estimated at $1.3 billion, and according to the latest forecasts, it's going to reach $105 billion by the end of 2025.
BaaS lets developers build backend incredibly fast thanks to the pre-integrated functions. Most notable BaaS features are cloud storage, push-notifications, user and file management, geolocation services, and others. All these services have their own APIs to simplifies the process of integration to a minimum.
Developers love Backend-as-a-Service because it covers three major issues. The first one is the development rate. Each project must have a set of core features and implemented technologies that will get the job done. With BaaS you can make quick steps from one iteration to another with minimal risks and costs.
The second benefit is about creating an even development cycle. When you are working on a multiplatform project, lots of tasks are redirected from frontend to backend, which lets you develop apps for different operating systems with the same “engine under the hood.”
The third advantage is the involvement of the masses. Many modern startups rely on fresh viral ideas that are popular here and now. BaaS provides features for social media integrations and cloud functions to strike while the iron is hot.
One of the best solutions in the Backend-as-a-Service niche is Backendless. It is an all-in-one type with many awesome features that justify the popularity of the service. But let’s not run ahead of the train here, and start with the basics. We find Backendless great for:
- Mobile application development
Who might be interested in using Backendless technologies:
- Digital agencies
- Content providers
- System integrators
- App publishers
- Enterprise companies
Main Features of Backendless
Backendless is packed with many advanced features to make your backend development smooth and fast. There are seven main categories of those features/services. All of them are tested and often complement each other on projects, hence the growing popularity of Backendless. It is nearly impossible to cover all these options in one article without blowing it out of reasonable proportions, so we are going to focus on the most relevant categories. Those are User Management services, Database (+Real-time Data), Security, Cloud Code, and Codeless.
This is a dedicated system for managing user data and user authentications. Managing this kind of information is a breeze with the exclusive Backendless APIs. They are designed to control the user registration process, authentication procedures, and password management. Users can choose how they would like to log in (with Facebook or Google account, with Twitter, or Backendless login). For advanced manipulations with user accounts, you can utilize the power of Backendless Console, which lets you change properties, activate/deactivate users, reset passwords, and perform other admin duties.
Backendless Database + Real-time Data
Backendless Database takes best NoSQL and SQL features and combines them in one dynamic, secure, and scalable solution. The structure of the database is made easy to operate allowing to insert columns and tables with the information imported from the chosen APIs. When you need to see real-time updates of the database (what was added, edited, or removed), you can enable the Real-time Data feature. It is also the easiest way to keep your database synchronized. Real-time Data guarantees that users will see only relevant and updated information.
One of the most important features for any project and almost always a very complicated process. Backendless provides a GUI for creating your security measures – there is no need to write tons of code or hire cybersecurity experts for configuring security protocols. The security model of Backendless covers all application needs. You can set permissions for users and block or provide access to certain APIs within the system. Thanks to the wide array of flexible options, you can create security rules for specific roles, tiers, and more.
Backendless Cloud Code consists of the following items: API Services, Timers, and API Event Handlers. Serverless API Services neutralize the need to handle deployment, invocation, and procurement processes, letting you focus on improving your microservices. API Event Handlers are designed to make adjustments to any integrated Backendless APIs. This way you can make them work for your project as you see fit. As for Timers, the feature provides automatic logic execution according to the user-defined schedule.
An alternative to the traditional code writing routine. Backendless comes with a laconic but user-friendly interface that lets you choose the logic for the app to execute while taking care of the core programming constructs (loops, variables, etc.). The best part about this interface is that it has graphical representation in the Backendless Console. So even if you don’t understand the programming language syntax, you will still be able to build an algorithm for the system to execute.
Other Notable Features
Apart from the options described above, Backendless has a lot more to offer. The following features are in high demand in 2019:
- Publish/Subscribe Messaging
- Instant APIs
- User Engagement
- SDK for Amazon Alexa
Heavyweight Fight: Backendless vs. Custom Backend
At this point, you might think that services like Backendless are the way to go, while the custom backend is slowly losing its relevance. Well, it is not. Both these methods are perfectly viable for any project, and which one to use entirely depends on the type of your project and your preferences. Simply speaking, you have to choose:
- Pay once for the custom build that will be shaped for your specific needs and tied to the expansion strategy (including ideal scalability).
- Go for the fast development with BaaS tools, select subscription, and chill.
Now let’s compare how Backendless (or should we rather say BaaS in general) competes against Custom Backend by analyzing some of the most important factors such as development speed, scalability, integration with custom software, and others.
In all time-related metrics such as development speed and time required to market a project, BaaS is a clear winner. You need less time to finish the development cycle and roll out your product on the market. With traditional backend, everything is much slower. In addition to that, you have to hire a professional team to do the job for you, while with BaaS and its graphic interfaces there is no need to be a seasoned coder. So that’s three points for Backend-as-a-Service.
Now let’s talk about scalability and the possibility to store sensitive data. BaaS offers scalability to some extent, but it is not transparent. At the early stages, you cannot predict how big your business will grow, and how much resources it will need in the future, so you cannot be prepared. The custom backend does not have this problem. As for the ability to store valuable information, it is an absolute “No” for any BaaS, don’t even think about it. If you need to handle sensitive data on a regular basis, then custom backend is your choice. Two points for CB.
What about custom software integration and the possible need for custom code in your project? BaaS falls behind in this department as it provides only limited options for third-party software integration. The options to add custom code are not generous as well. Custom Backend in this regard is limitless. Two extra points go to Custom Backed.
Some analytics often point out that BaaS is not that cheap as it claims to be due to the hidden costs in the form of subscription. While we have to agree with that point of view, we cannot ignore the fact that Custom Backend projects are not cheap as well. Even though you pay just once, it is still a considerable amount of money. Which solution is more effective mostly depends on the type and scale of your project. So, we will call it a tie and give each side +1 point.
These are the most important factors to consider before choosing the development approach. After summing up the points awarded, we get 5:4 in favour of Custom Backend.
When Should I Choose Backendless and When Custom Backend?
BaaS platforms such as Backendless are super-efficient for small companies that don’t have huge budgets and enough human resources. Also, you should opt for this solution when you are targeting the audience in a specific niche. Many startups begin with BaaS, but when they grow big they have to leave the platform and get their own backend without any limitations. We see BaaS as a reasonable choice for:
- Small developer squads and departments with a limited number of specialists.
- Apps that are targeting a local audience or specific (rather small) segment of the market.
- Services that complement your main business that is not BaaS-based.
- Creating early prototypes for further testing.
- Building simple apps with no customization and limited functionality.
Building Custom Backend won’t be as fast and cheap as the BaaS solution, so it begs the question “Is it worth for my business?” If it is your main business and you expect it to expand it soon, then the answer is yes. No BaaS-based project scales good enough becoming powerless to process millions of user requests at once. You should better choose Custom Backend when:
- You have to deal with intellectual property and other sensitive data.
- Your app has certain requirements dictated by the business sphere (e.g., machine learning).
- Massive third-party software integrations are required to support the main functions of the app.
- Technology stack matters for you.
- You plan to develop and manage APIs, which is going to be much easier with open source technology.
Backendless Cost and Possible Risks
Backendless offers three main service packages – Cloud, Pro, and Managed Backendless. The last two are enterprise-oriented, while the first one is better for individuals. The Cloud plan has four options with different limits. The cost starts from 0 (free but severely limited package, more like a demo) and ramps up to $99 per month. The mid options cost $15 and $25. No matter what you choose, you will be limited in monthly API calls, database tables, and push notifications. So, if you are serious about using Backendless, then you should opt for the limitless or managed plan. Pricing will be individual in this case, and you have to request the information from the managers.
But before you go and get your prices for the project, we believe it is our obligation to remind you about possible risks that haunt all BaaS platforms. Bear in mind that BaaS is never a panacea. When you outsource even a small task, there is always a tiny chance that something can go wrong – starting from random malfunctions and ending with the service shutdown, as it was with Parse. The platform was sold to Facebook and then closed. Developers had limited time to migrate their projects and practices to other places in a rush.
Also, BaaS cannot cover all the needs of the growing projects. Eventually, you will need more flexibility, more options, more custom code, etc. So, you may want to have a more advanced solution for your main business. Keep in mind that BaaS scalability is rather poor and opposite of transparent, which may cause problems after launch. The managing costs will increase dramatically as you gain more and more users, and at some point, the platform won’t be able to process all requests. You will either have to close your business or remake it with Custom Backend.
No service lives forever, and BaaS is not an exception. It is advisable to have the logic of your app stored somewhere else, apart from the BaaS’ SDK. Any backend created by a third-party is potentially risky for the business in the long perspective. In other words, experiment, prototype, do small endeavours with BaaS but don’t run a big business. Give us a call if you have any backend related questions, and our specialists will contact you shortly to discuss the opportunities and details of the project.