BaaS(Backend as a Service)是一种新型的云服务,旨在为移动和Web应用提供后端云服务,包括云端数据/文件存储、账户管理、消息推送、社交媒体整合等。BaaS是垂直领域的云服务,随着移动互联网的持续火热,BaaS也受到越来越多的开发者的亲睐。它作为应用开发的新模型,可以降低开发者成本,让开发者只需专注于具体的开发工作。

BaaS是移动中间件的替代品(或者说备选方案),它使用统一的API和SDK来连接移动应用到后端云存储,传统的移动中间件通过本地的物理服务把后端服务集成到应用中。而BaaS通过云来集成后端服务。中间件和BaaS的最大不同是它们是否包含或者提供云的服务,BaaS可以说是PaaS平台在移动垂直领域的延伸,更可以说是移动中间件和云的融合。而现在它们都在以不同的形式来存在,云的优势很明显,那就是简单、成本低廉,中间件的优势是数据安全、易于扩展。所以从现在的趋势来看,它们不存在明显的取代关系,只不过可能以后BaaS的体量会更大。移动中间件将更多的被有能力的企业使用,同时也会有越来越多的中小型企业、开发者选择使用BaaS。

虽然BaaS属于PaaS的范畴,但两者也有区别。Quora上有人简要描述了二者的不同,BaaS简化了应用开发流程,而PaaS简化了应用部署流程。PaaS是一个执行代码以及管理应用运行环境的开发平台,用户通过SVN或者Git之类的代码版本管理工具与平台交互,对于开发者来说,PaaS就像是一个容器,输入是代码和配置文件,输出是一个可访问应用的URL。而BaaS平台进一步将用户需求进行了抽象,比如用户管理,开发者希望创建用户数据库表(模型)后,客户端就可以通过Restful接口直接操作对应的模型,所有的操作都可以被抽象为CRUD。之前,开发者需要创建表、写接口、写校验,而在BaaS平台中,开发者只需要定义模型,平台就会自动生成对应的接口,这可以让开发者更加专注具体的客户端代码。专门针对手机端的BaaS服务称为MBaaS,目前大多的BaaS平台都属于这一类。

随着移动互联网的发展,移动行业的分工也会像其它行业一样逐渐细化,后端服务就是这样被抽象出来,它统一向开发者提供文件存储、数据存储、推送服务等实现难度较高的功能,以帮助开发者快速开发移动应用。在国外,BaaS服务已经受到巨头的重视,2013年4月,Facebook收购Parse;2014年6月,苹果发布了CloudKit;2014年10月,Google收购了Firebase。Parse、CloudKit、Filrebase都是国外知名的BaaS类产品,苹果和谷歌通过BaaS服务可以更好的完善其生态圈,Parse也可以帮助Facebook建立它在移动端的地位,从巨头们在BaaS方面的布局也可以看出BaaS的价值。总体来说,BaaS平台的优势包括(来自搜狗百科):

提高效率:减少移动APP开发中各个环节的成本,提高效率。
缩短上市时间:减少从构思到制作过程中的阻碍,并降低上线后的运营成本。
减少交付APP所需的资源:BaaS需要的开发者和IT资源更少。
针对手机和平板优化:BaaS供应商在优化移动APP数据和网络上花费了大量时间和资源,减少了跨平台和移动终端的碎片化的问题。
安全和弹性的基础设施:BaaS提供捆绑的基础设施,解决了弹性、安全性和性能等运营难题,让开发者专注开发。
大量的常用API资源:BaaS将常用和必要的第三方API资源汇总,省去开发者单独收集的麻烦。

在国内,提供BaaS服务的厂商也有很多,典型的代表有APICloud、Bmob、友盟,主要提供的功能包括社会化媒体集成、数据/文件存储、数据分析、消息推送、支付。以APICloud为例,它们主要提供的服务包括:

数据存储。用户可以通过可视化的界面设计数据库,包括创建Class、定义字段、录入数据等。同时,BaaS平台可以自动生成对应的Restful API,用户可以通过任何语言操作已有的API,另外,平台也内置用户系统、角色系统、文件系统、权限控制等模块。

数据推送。结合APP中的标签设置,针对不同属性的用户推送差异化信息,包括定时推送、离线推送等。

版本管理。支持iOS及Android版本的同步或异步管理,在控制台内流程化进行开发和版本管理。支持增量更新,终端用户可在应用内进行更新。

数据统计。平台可以查看应用的新增用户以及活跃用户数据,并支持自定义事件统计。

从功能上看,国内的BaaS厂商(特指能够提供完整的平台能力的厂商)提供的功能大同小异,大都集中在推送、存储、统计方面。值得注意的是,这几个重点功能又有相应的厂商在做,比如文件存储的七牛和又拍、推送服务的极光推送、统计服务的友盟、及时聊天的环信,所以随着这块市场的成熟,BaaS平台在功能方面的重心应该是整合其它垂直云服务的能力。

从盈利模式看,都是向少部分用户收费。纵观目前面向开发者的公司,它们的盈利模式大多是部分服务收费或者部分用户收费,现在的这几家BaaS厂商基本都是对部分高端用户收费。但是从云的发展趋势来看,接下来会有更多的中小型公司会使用BaaS服务,所以新一年BaaS平台也许会面向企业提供差异化的服务。

从竞争角度来看,由于BaaS在国内的整体份额都比较小,所以目前各个厂商都在全力扩展自己的用户基数,直接的竞争还谈不上。不过,目前市场的几家厂商侧重点也不一样,比如APICloud提供的是端和云的能力,用户可以通过SDK开发跨平台的应用。

分析机构 MarketsandMarkets 报告 BaaS 市场到 2017 年将会达到 77 亿美元,而 2012 年仅为 2.165 亿美元,年增长率达到了 104%。预计在2015年BaaS服务会受到更多用户的亲睐,BaaS的发展趋势总体来看可以总结为如下几个方面:

出现更多的垂直云服务:随着技术的发展与市场需求,整个移动互联网行业发展的特点是更加的垂直、细分和专业,所以也会出现更多的垂直领域的BaaS服务提供商。

API云服务蓬勃发展:随着云和大数据的结合,业务层跟数据层结合的越来越紧密,移动APP更侧重界面的逻辑和表现,而APP所需的数据与服务都需要通过API的形式从云端获取,所以能够提供数据存储和App逻辑业务相关的API输出的数据云BaaS服务将会有更多的需求和发展。

满足自定义功能扩展:BaaS在提供标准服务的基础上,让开发者可以根据自己的产品和业务特点,通过在线配置和上传代码的功能来扩展自定义的功能,满中个性化需求。

成为行业移动化解决方案:随着移动互联网和越来越多的行业结合,BaaS服务以其简洁、高效、灵活、专业的特点,也会应用到各种行业的解决方案中,成为行业移动化解决方案中云端的支撑服务。

随着BaaS服务的成熟和稳定,基础服务功能使用专业的BaaS服务已经成为了移动应用开发中的常规选择,被越来越多的客户接受,2015年BaaS服务有更好发展。

以上内容由InfoQ编辑对APICloud CTO邹达的采访整理而成,如文中所述,APICloud是一家移动应用云服务提供商。

BaaS服务的定义、发展以及未来的更多相关文章

  1. [ios2]BaaS服务收藏 【转】

    首先,什么是BaaS服务: BaaS(后端即服务:Backend as a Service)公司为移动应用开发者提供整合云后端的边界服务.SaaS(软件即服务:Software as a Servic ...

  2. 腾讯QQ的发展与未来

    http://wenku.baidu.com/view/15166ddfc1c708a1284a447d.html 腾讯QQ的发展与未来

  3. 社区O2O的发展与未来

      虽然很多人都自我标榜为社区O2O,其实,在现在这个时间点上,社区O2O可以说是根本不存在的. 社区是什么?对用户来说,社区包括房子,包括邻居,包括宠物,包括保安,包括广场舞,也包括跳广场舞的大妈, ...

  4. BaaS API 设计规范

    上个月写了一个团队中的 BaaS API 的设计规范,给大家分享下: 目录 1. 引言... 4 1.1. 概要... 4 1.2. 参考资料... 4 1.3. 阅读对象... 4 1.4. 术语解 ...

  5. 新CCIE笔记-IP网络基础

    南京捷式泰CCIE重修笔记:更完善更系统的全新笔记 新增内容: 总结.关联知识点.行业小建议 各种认证证书: RHCE VCP OCP MCSEPMP ITIL CCA CCIE CCNP CCNA ...

  6. 数据分析侠A的成长故事

    数据分析侠A的成长故事 面包君  同学A:22岁,男,大四准备实习,计算机专业,迷茫期 作为一个很普通的即将迈入职场的他来说,看到周边的同学都找了技术开发的岗位,顿觉自己很迷茫,因为自己不是那么喜欢钻 ...

  7. BaaS后端即服务 - 概念篇

    摘要: 什么是BaaS? BaaS(Backend as a Service)是一种新型的云服务,旨在为移动和Web应用提供后端云服务,包括云端数据/文件存储.账户管理.消息推送.社交媒体整合等.Ba ...

  8. FaaS(函数即服务) + BaaS(后台即服务)

    作者 | 黄子毅(紫益) 阿里前端技术专家 导读:前端开发者是最早享受到 “Serverless” 好处的群体,因为浏览器就是一个开箱即用.甚至无需为计算付费的环境!Serverless 把前端开发体 ...

  9. Serverless的概念&定义-无服务计算详解

    过去几年间,Serverless 发展迅猛,与其相伴的还有从小程序.移动端等到前后端一体化的演进与实践,也正因如此,从云计算到前端,众多开发者都极为关注 Serverless到底是什么? 在国内,Se ...

随机推荐

  1. jenkins2 multibranch

    通过multibranch类型的pipeline job使得对于多个branch的支持更加简单.只需要创建一个multibranch job,jenkins将自动地为所有的branch创建job. 文 ...

  2. SharePoint Client Object Model API 介绍以及工作原理解析

    CSOM和ServerAPI 的对比 SharePoint从2010开始引入了Client Object Model的API(后文中用CSOM来代替),从名字来看,我们可以简单的看出,该API是面向客 ...

  3. CSS/JS图片鼠标悬浮一道光闪过

    看到有些网站logo鼠标悬浮上面的时候,会出现一道光,一闪而过,刚开始以为是gif图,已审查, 居然不是:现在就实现在这种效果: 先看看CSS实现的效果图: 看到没,就是这道刺眼的白光....   啊 ...

  4. 浅谈sql中的in与not in,exists与not exists的区别

    转 浅谈sql中的in与not in,exists与not exists的区别   12月12日北京OSC源创会 —— 开源技术的年终盛典 »   sql exists in 1.in和exists ...

  5. 聊天IM的时间戳显示规则

    ====================================================== 以下规则是在体验微信操作后,推测出来的规则,可能存在一些不准确的表述 ========== ...

  6. Cocos2d-x3.x塔防游戏(保卫萝卜)从零开始(二)

    一.前提: 完成前一篇的内容. 具体参考:Cocos2d-x3.x塔防游戏(保卫萝卜)从零开始(一)篇 二.本篇目标: l  说说关于cocos2dx手机分辨率适配 l  对前一篇完成的塔防游戏原型进 ...

  7. VS SuppressMessage忽略特定方法的警告信息

    VS在编译源码的时候有很多警告信息,有些时候 我们需要忽略一个特定方法的特定警告信息,于是就用SuppressMessage特性,可是这个特性的参数不太好搞定,还好有VS,Suppressing Co ...

  8. Number Range 管理之并行缓冲

    Number Range 管理之并行缓冲: 常用的事务代码SNRO,SM56还有一些业务专用的号码管理,可以在SPRO中查找: SNRO :Number Range 管理 一般的操作是维护号码范围.如 ...

  9. IntelliJ IDEA 2016.2.4 最新版激活方法

    新版激活方法: 1.在线激活 2016年7月14日 更新: 该域名已无法激活,参见2016.2 的搭建授权服务器激活, 菜单help >>>> Register 选择Licen ...

  10. 使用jQuery开发一个响应式超酷整合RSS信息阅读杂志

    在线演示1 本地下载     申请达人,去除赞助商链接 如果大家喜欢阅读博客文章的话,可能都会使用RSS阅读器,今天这里我们将使用jQuery来开发一个响应式的RSS信息阅读应用,使用它你可以将你喜欢 ...