⬆️ ⬇️

The history of one mBaaS (cloud backend) service on the example of QuickBlox

Hi Habrovchane! If you have already dressed up a Christmas tree and are thinking what new application to make during the holidays, then it may be useful for you to learn more about mBaaS (mobile backend as a service).



The post will be interesting to those who are already using or planning to use ready-made server platforms in the development of their mobile applications. About QuickBlox already wrote on Habré in general , about code samples and SDK , about authorization-authentication and HURL . We were also mentioned in the " Surface Browsing Javascript-enabled BaaS Platforms ".



If you are interested in knowing how and why such platforms appear, as well as on future development plans, in order to decide for yourself whether it is worth trusting the backend of its applications to such platforms, then you are welcome to read further. Here is more about the history and plans, but if you are interested in some technical aspect, please ask questions in the comments.

')





Quick reference


QuickBlox is mBaaS (mobile Backend as a Service) platform that provides ready-made server infrastructure for mobile applications. This allows developers and publishers to save time and money by refusing to develop their server “bike” and focus on developing the applications themselves and polishing UX (user experience).



Supported features and modules:

• Users - user authentication (cross-platform, based on OAuth). Single Sign-On. Groups and avatars.

• Chat - chat, chatting users in groups and 1: 1. Text chat, IM via push notifications, chat on the map (location chat) and video chat.

• Messages - sending push notifications and in-app messages to mobile users.

• Content - storage and content management. Streaming video. Update content without having to update the application.

• Ratings - any result tables and ratings for games, business and social applications.

• Custom Objects - create your own data structures and manage them through the API.



QuickBlox History


We started as a small company that dealt with web sites, CMS, databasing solutions on order. In 2009, iOS SDK alpha comes out and we decide to try our hand at developing software. Development under the iPhone went very successfully, soon it becomes our main activity, a lot of orders are pouring in from all sides. While others are feeling the crisis, we are growing, and the feeling is that we felt a gold mine.



In 2010, we continue to successfully develop iOS development, and at this time, for some reason, quite a lot of orders are received for toys. Virtually any game requires a scoreboard of results, preferably online, in which you can compare your scored points with players from around the world. This adds sociality and competition, it becomes much more interesting to play. But this requires the server side — the database, the API, the client-server library on the application side, and the admin panel. Each time it was necessary to raise this system anew and get stuck with hosting, server and its further support for each application and customer. It was interesting, new and cool to make mobile applications, and the server side of the case was boring, we thought that probably many developers had the same problem, so we decided to produce a solution. So there was a project iGetScores, which was posted on Google Code: http://code.google.com/p/igetscores/ .



There was the SDK, the actual library and the samples, which could be downloaded and easily inserted the online leaderboard into your application. We even laid out a heaped OpenGL sample, there is a very convenient smooth drum scroller with loading of neighboring result screens, country flags, beautiful highlighting of its result, time display in “human” language, switching of custom fields. We have made such an implementation in the iCombat toy and in principle it is and remains the most thoughtful and convenient solution for online leaderboard.







The API documentation was uploaded and the source of the server part was shared; each developer or company, if desired, could raise such a server, we opened the entire project as open source.



Questions began to come in, the developers actually began to use it, from London wrote a certain Ken Wolf, thanked for the cool project and suggested that he himself make an Android library. In general, the project was not very popular, but applications of the type began to be received more and more often - but your product is of course good, but you need to raise your server, but is there a ready server where you can connect? And we realized that developers and publishers need a service that will free them from having to deal with the server and hosting in general.

We launched iGetScores.com, and at the same time began to see other needs besides high scores. And the whole market of iOS applications, at least among our customers, began to shift towards more serious applications. We realized that we need content management systems, we need a convenient service for Push Notifications, we need a service for managing user accounts. Then came the need for a chat server. And we decided that we need to make a platform with the main gentlemanly set of server modules, which will cover 95% of cases, and allow mobile developers to forget about the headache of writing and supporting their server backend. At that time there was no Parse , StackMob , Kinvey and other BaaS platforms, and the BaaS term itself did not exist at all, so we decided to make the product in parallel with the core business of mobile development, knowing that at least such a platform would be useful to us.



We called the platform Mob1serv (read “mobserv”) and launched it on the site Mob1serv.com. At the beginning of 2011, we got from hundreds of startups from all over Europe and the world to the list of finalists at SeedCamp London (I was already living in London), lit up at TechCrunch , but, fortunately, did not win funding. “Fortunately”, because now our company is worth much more than the valuation that is offered to startups SeedCamp for 10% in the company's share. At the same time, we received the first interest from investors, I rehearsed our “elevator pitch”. There were very few people who understood the concept at all, but they were. One of the former eBay top managers from Paris, an investor from London, who earned capital from selling software for stock traders, became interested in us, and one American, Nate Macleitch, who lives in London, became a separate investor and my company partner. Before that, Neate turned over the partners in the field of mobile content, SMS gateways, ringtones and other old school, and he wanted to get out of the tired corporate environment and do something more innovative and interesting. I liked him because, unlike other interested investors, he was ready to actively participate in the work and development of the company in full-time mode.



Soon we did another rebranding, I interviewed friends and customers, we recruited hundreds of ideas and in the end I generated the name QuickBlox, which we decided to stop at. The idea is that there are ready-made server blocks, which together put together the necessary server backend for any project. We continued to develop in stealth mode, using and running around the system on projects of our customers, launched the site at the end of 2011, but did not actively promote it, strengthened the server team, brought all the modules, API and admin area to mind, finished the platform, released the SDK and code samples (code samples) for iOS , Android , Windows Phone , Blackberry and Web . It may be mentioned here that at the beginning we wrote the system in PHP, but of course at this stage we already refused it, here we wrote the second version on Ruby on Rails, got into AWS, applied load balancer, deployment scripts, auto-scaling and Other goodies of the Amazon, in general, have already done everything in an adult way. For more than a year, they worked in two-week releases, i.e. every two weeks we had a new business version, with new features or product enhancements.



2012. Unfortunately, in the pursuit of functionality, we partially overlooked the convenience and clarity for users. We needed to sponsor and conduct several hackathons in London and in the xUSSR open spaces, talk to a bunch of developers in order to understand what needs to be focused on. It was necessary to make simpler and more understandable code examples, better structure the SDK, more comments, make the site more understandable, explain all the points that a novice developer might stumble on, etc. We spent most of 2012 on polishing the system, developing simpler samples, writing simple documentation, and in 2013 we will continue to spend most of our efforts on this.



2013. Battlefield: cloud BaaS



Now the terms SaaS, BaaS and mBaaS are known to almost everyone. We have a lot of competitors, such as Parse, StackMob, CloudMine. They are well located in Silicon Valley, have multimillion investments, good connections, they easily get the press, they deal exclusively with the product, while we continue to provide software development services to order in parallel.



At the same time, there are a number of reasons why we, on the contrary, are now focusing on QuickBlox and will continue to support and develop it as a product and platform for developers, agencies, integrators, publishers and enterprises:



1. The platform is already paying off.

We have enough customers in the enterprise sector who gladly use a dedicated installation of the system and pay good money for it. This allows us to finance further development and provide the main service for developers for symbolic money or for free at all.



2. The market is growing.

Research data from Forrester Research, Cisco, etc. predict that computing will increasingly shift to the cloud, and the cloud computing and services market itself will grow to $ 240 billion by 2020.







3. The market is ripe.

A year ago, it was difficult for businesses to understand what and why our product was about, until they were faced with some kind of design problem that they could not quickly solve on their own. Now we see much more understanding. People at exhibitions already approach and say - yes, we need it. It even happens - I already use QuickBlox, it seems to me easier and better than Parse. It's nice.



4. The market has a lot of space and niches.

No major player can make an ideal BaaS, someone will always be better in some kind of niche service, or more focused on a certain type of customer. Companies often buy back - acquisitions are constantly taking place, for example, if you take the market for online leaderboards platforms, then there were strong OpenFeint and Scoreloop players on it. Both of these companies are bought, and as always in such cases, further development can be severely slowed down, many services simply close.



5. We have strong positions:



1) on the elaboration of the API



Our APIs are automatically developed and crafted for all typical mobile developer requests, because we ourselves are them. We look, what requests come on projects, and we consider it in architecture. Each module, each API is run-in on dozens of real projects of our clients, and often these are hundreds of thousands and millions of end users.



So that it is clear what is at stake, for example, when we talk about Leaderboards / High scores, what was once iGetScores, and now we call it the Ratings module, the API allows you to highlight the previous player's result, to get any number of custom parameters, according to which track the results and filter, determine the player's country by IP or geo-location, display N adjacent results above and below, adjust the number of results in the top and load for the scroller. The SDK contains a library with country flags, supports OpenGL mode, photo avatars, and more.

That is, 99% coverage of all the necessary use cases for each specific module, whether it is Ratings, Users, Location, Messages, Content, we started with this, while StackMob and Parse started with providing developers with a server constructor, which allows you to have any class of objects and cram data there. This is of course more universal, but more complicated and heavy, and it takes time to create the data architecture and to write wrappers on the client side, which is not the fastest solution when specific typical functionality is needed.

We later added the Custom Objects module, which allows you to create your own structures and object classes, and we can already talk about almost 100% coverage, but at the same time we understand the advantages of specialization and will continue to support the modules that are maximally sharpened by the “combat” tasks .



2) on platform coverage with SDK-libraries and examples (code samples)



We don’t blow it around every corner, but as an example, QuickBlox is the only platform that covers Push Notifications for all major platforms, including iOS, Android, Windows Phone and BlackBerry. Even Urban Airship, which mainly deals only with push notifications, do not cover windows phone.



In the Developers quickblox.com/developers section, you can find the SDK and simple sample projects for all modules for all platforms, be it iOS, Android, BlackBerry, Windows Phone or Web. This is important, it allows developers to use the same platform for their entire user base on smartphones, tablets, and even stationary via a web or desktop application.



3) specifically mod chat



A significant percentage of users are starting to use QuickBlox, because we have the best chat offer. We have an API for simple 1: 1 chat, group chat with room creation, chat with file sending (two types - standard peer 2 peer and server storage via our Content API). There is a Location Chat - where users can chat over the map, seeing the distance to other users. There is an Augmented Reality chat - see the ChattAR project . There is a web chat for websites and Facebook applications. There is even a plugin for Wordpress, which allows, for example, to combine in the chat readers of your blog and your mobile users. Already working with several enterprise clients and will soon be announced on the site video chat.



image



For example, a social video startup Runfaces uses our technology for text and video chat for mobile users, although they tried to work with TokBox , a platform that focuses exclusively on chat. Our video chat solution for iOS is by far the best on the market. Our chat and video calls are used in Vyke applications, although they are IP telephony professionals. QuickBlox is also used for chat, attachments, push notifications and location services in Gaydar and many other online dating products, although often the companies that hold servers and dating apps have their own professional teams of server developers. It is much more profitable for them to use a ready-to-use upgraded and serviced platform, which, moreover, does not load their main servers.



Future plans


As I recently wrote in my review and forecast for the development of BaaS services at Josette Rigsby, it will be difficult to compete with the major players without attracting financing, but at the same time there is always the opportunity to go to the enterprise.



I absolutely agree with Josette, but we will naturally continue to compete, doing better things that we can do better. Our strengths and benefits I described above. Thanks to our application development business, we constantly have feedback from business users, and thanks to QuickBlox and our initiatives with hackathons and mitaps (for example, see our mobile backend meetup in London ), we constantly receive feedback from developers, which allows us to regularly improve the product.



Regarding the price for developers, we will either leave the main service cheap to cover the cost of AWS hosting, or we will generally make it free. We receive sufficient funding from enterprise customers, and system customizations.



As for financing, we will definitely attract it, most likely this will happen already in 2013, why we did not do this earlier - firstly, we had and still have enough funds for R & D, as for the global deployment of sales, marketing and developer relations, of course additional financing is simply necessary, the only problem here is that we now have no time to look for investors and we are unlikely to be given a good valuation. Interest on the part of the VC is manifested regularly, but this is mainly the probing of the soil; it is difficult for them, like everyone else, to understand and appreciate this market.



If we evaluate the user base, now we have more than 1500 developers and less than 30 enterprise clients, although there are much more end users. Only one of our QuickBlox enterprise clients serves chat, push notifications and content for a base of 2 million users. Therefore, we can talk about tens of millions of end users, if we evaluate them by user base. In terms of turnover, it is probably even higher than that of competitors, due to successful business consultancy. In any case, we now do not want to enter into discussions on valuation, until we have implemented several serious projects that are being prepared, and have not conducted any serious marketing and advertising of the platform (also in progress).



As for the enterprise, QuickBlox is already used in well-known projects and applications of such brands as Liverpool Football Club, Unilever, Avon, Saudi Telecom, Gaydar, DStv. We cooperate with RIM and Telefonica. Negotiations are underway - the development of new projects with well-known brands, therefore, at the level of enterprise customers, we are quite successful, and we will continue to develop this area in parallel with the main work.



Feedback


QuickBlox was made by people from Kharkov, Izhevsk, Tomsk, St. Petersburg, Moscow and Kiev.



We immediately entered the global market, but at the same time, we do not forget about our roots and we will try to use our natural language advantage in servicing developers and business clients from Runet.



The history of QuickBlox is just beginning and we will be happy if you share with us your thoughts about what kind of platform you would like to see, what can be improved, what functionality to add (or, you never know, remove). All our samples and open projects like ChattAR are laid out in GitHub and you can create your own forks and experiment with them.



Also, if anyone wants to join our team or discuss business cooperation, you are here , or we are waiting for your comments on this post.

Source: https://habr.com/ru/post/163699/



All Articles