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

    Hi Khabrovchane! If you have already dressed up a Christmas tree and are thinking about what new applique to do 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 already use or plan 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 review of Javascript-enabled BaaS platforms ”.

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



    Quick reference

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

    Supported functions and modules:
    Users - user authentication (cross-platform, based on OAuth). Single Sign-On. Groups and avatars.
    Chat - chat, user communication in groups and 1: 1. Text chat, IM via push notifications, map chat (location chat) and video chat.
    Messages- sending push notifications and in-app messages to mobile users.
    Content - storage and management of content. Streaming video. Updating content without having to update the application.
    Ratings - any tables of results and ratings, for games, business and social applications.
    Custom Objects - create your own data structures and manage them through the API.

    History of QuickBlox

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

    In 2010, we continued to successfully engage in iOS development, and at this time for some reason quite a lot of orders came for toys. Almost any game requires a scoreboard, preferably an online one, in which you can compare your points with players from all over the world. This adds sociality and competitiveness, playing becomes much more interesting. But this requires the server side - the database, API, client-server library on the application side, as well as the admin panel. Each time I had to raise this system again and steam up with hosting, server and its further support for each application and customer. Making mobile applications was interesting, new and fun, and the server side of the business was boring, we thought that probably many developers have the same problem, so we decided to streamline the solution.http://code.google.com/p/igetscores/ .

    There was an SDK, actually a library and samples that could be downloaded and easily inserted into an online leaderboard into your application. We even posted a fancy OpenGL sample, there is a very convenient smooth drum-scroller with loading of neighboring result screens, country flags, beautiful highlighting of our result, time display by the “human” language, switching custom fields. We made such an implementation in the iCombat toy and this, in principle, is and remains the most thoughtful and convenient solution for the online leaderboard.



    The API documentation was uploaded and the source part of the server side was actually shared, i.e. each developer or company, if desired, could raise such a server in us, we opened the whole project as open source.

    Questions began to come, the developers really began to use it, a certain Ken Wolf wrote from London, thanked for a cool project, and offered to make an Android library himself. In general, the project was not very popular, but more and more requests like - began to arrive, your product is certainly good, but you need to raise your own server, but is there a ready-made server where you can connect to? And we realized that developers and publishers need a service that will free them from the need 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 entire 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 to manage user accounts. Then there was a need for a Chat server. And we decided that we need to create a platform with the main gentleman's 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. Then there was no Parse , StackMob , Kinveyand other BaaS platforms, and the term BaaS itself did not exist at all, so we decided to make the product in parallel with the main mobile development business, knowing that at least such a platform would be useful to us ourselves.

    We called the platform Mob1serv (read "Mobiserves") and launched it on 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 of SeedCamp London (I already lived in London at that time), showed up at TechCrunchbut, fortunately, did not win funding. “Fortunately”, because now our company is worth much more than the valuation that SeedCamp startups are offered 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 generally understood the concept, but they were. One of the former eBay top managers from Paris, an investor from London, who made money by selling his software product for exchange traders, became interested, and another American, Nate Macleitch, who lives in London, became a seed investor and my company partner. Before that, Nate turned over the business with partners in the field of mobile content, SMS gateways, ringtones and other old school, and he wanted to get out of the annoyed corporate environment and do something more innovative and interesting. I liked him in that, 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 got hundreds of ideas and in the end I generated the name QuickBlox, which we decided to dwell on. The idea is that there are ready-made server blocks, which together add the necessary server backend for any project. We continued to develop in stealth mode, using and running the system on the projects of our customers, launched the site at the end of 2011, but did not actively promote it, strengthened the server team, brought all modules, API and admin panel to mind, finished the platform, released SDK and code examples (code samples) for iOS , Android , Windows Phone , Blackberry and Web. It can be mentioned here that at the beginning we wrote the system in PHP, but of course at this stage we already abandoned it, the second version was already written here on Ruby on Rails, we hoped on AWS, we applied load balancer, deployment scripts, auto-scaling and the other goodies of Amazon, in general, have already done everything in an adult way. For more than a year we worked in a two-week release mode, i.e. every two weeks we had a new business version, with new chips or product improvements.

    2012. Unfortunately, in the pursuit of functionality, we partially overlooked the convenience and understandability for users. We needed to sponsor and conduct several hackathons in London and in the open spaces of xUSSR, talk with a bunch of developers to understand what we need to focus 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. Most of 2012 we spent on polishing the system, developing simpler samples, writing simple documentation, and in 2013 we will continue to spend the bulk 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-dollar investments, good connections, they easily get the press, they are engaged exclusively in the product, while we continue to provide custom software development services 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 enterprise:

    1. The platform is already paying off.
    We have enough customers in the enterprise sector who are happy to use the 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 even free of charge.

    2. The market is growing.
    Research data Forrester Research, Cisco, etc. they predict that computing will increasingly shift to the cloud, and the cloud computing and services market will grow to $ 240 billion by 2020.



    3. The market has matured.
    A year ago, it was difficult for businesses to understand what our product was about and why, until they faced some kind of development problem that they could not quickly solve on their own. Now we see a lot more understanding. People at exhibitions are already coming up and saying yes, we need this. It even suits me - 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.
    Not a single major player can make an ideal BaaS, always someone will be better in some niche service, or more focused on a certain type of client. Companies often buy back - acquisitions are constantly taking place, for example, if you take the platform market for online leaderboards, then there were strong OpenFeint and Scoreloop players. Both of these companies were bought, and as always in such cases, further development can be greatly inhibited, many services simply close.

    5. We have a strong position:

    1) in terms of API elaboration

    Our APIs are automatically developed and sharpened for all the typical requests of mobile developers, because we ourselves are them. We look at what requests come from projects, and take this into account in architecture. Each module, each API is run on dozens of real projects of our clients, and often these are hundreds of thousands and millions of end users.

    To make it clear what we are talking about, for example, when we talk about Leaderboards / High scores, what was once iGetScores, and now it is called the Ratings module, the API allows you to highlight the previous result of the player, start any number of custom parameters, which also track results and filter, determine the player’s country by IP or geo-location, display N neighboring results above and below, adjust the number of results in the top and the load for the scroller. The SDK contains a library with country flags, supports OpenGL mode, avatars, and more.
    That is, 99% coverage of all the necessary use cases for each specific module, whether it be Ratings, Users, Location, Messages, Content, we started with this, while StackMob and Parse started by providing the developers with a server constructor, which allows you to create any class of objects and cram data there. This is of course more universal, but more complicated and heavier, and it takes time to create a data architecture and write wrappers on the client side, which is not the fastest solution when specific typical functionality is needed.
    Then we 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 benefits of specialization and will continue to support modules that are maximally tailored for “combat” tasks .

    2) on coverage of platforms with SDK libraries and examples (code samples)

    We don’t trumpet it at 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 deals mainly with push notifications, does not cover windows phone.

    Under Developers quickblox.com/developersYou can find SDKs and simple sample projects for all modules for all platforms, whether it’s 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 through web or desktop applications.

    3) specifically modulo Chat

    A tangible percentage of users start using QuickBlox, because we have the best chat offer. We have an API for a simple 1: 1 chat, group chat with the creation of rooms, a chat with sending files (of which two types - the standard peer 2 peer and with server storage through our Content API). There is a Location Chat - where users can chat over the map, seeing the distance to other users. There is Augmented Reality chat - seeChattAR project . There is web chat for sites and Facebook applications. There is even a plugin for Wordpress, which allows, for example, to unite the readers of your blog and your mobile users in a chat. Already works for 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 companies that host servers and dating applications have their own professional team of server developers. It is much more profitable for them to use a ready-made updated and maintained platform, which also does not load their main servers.

    Future plans

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

    I absolutely agree with Josette, but we will naturally continue to compete, doing better those things that we manage to do better. Our strengths and advantages 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 make it generally free. We get sufficient funding from enterprise customers, and system customizations.

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

    If we evaluate by the user base, now we have more than 1,500 developers and less than 30 enterprise clients, although there are much more end users, because only one of our enterprise clients has QuickBlox chat, push notifications and content for a database of 2 million users. Therefore, we can talk about tens of millions of end users, if measured by the user base. In terms of turnover, it is probably even higher than that of competitors, due to successful business consultancy. In any case, we do not want to enter into discussions about valuation now, until we have implemented several serious projects that are currently being prepared, and have not carried out at least some serious marketing and advertising of the platform (also in the process).

    Regarding 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 work with RIM and Telefonica. Negotiations are underway - the development of new projects with well-known brands, so at the enterprise customer level 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 do not forget about our roots and will try to use our natural language advantage in serving developers and business clients from Runet.

    The history of QuickBlox is just beginning and we will be glad if you share with us your thoughts on how you would like to see the platform, what can be improved, what functionality to add (or, you never know, to remove). All our samples and open source projects like ChattAR are uploaded to 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 waiting for your comments on this post.

    Also popular now: