物联网平台集成实践分享
【 玩转 LeanCloud 】开发者经验分享:
作者:刘必渠
我们公司是国内第一批专业从事家庭智能化产品研发、生产及销售的高新科技企业,提供以智能中央控制为中心,照明控制、门禁控制与电器控制三大入口硬件为基础的智能化解决方案,业务范围涉及智慧小区(智能家居)、智慧园区(智能办公)、智慧旅行(智能酒店)等多个领域。
最初我们的技术团队基本上是硬件开发与生产,与软件相关的部分都交由外包公司来做,但效果并不理想,结果是要么外包团队解散,要么代码没有提交后期维护不到位等等吃了很多亏。而随着公司业务的扩展以及业务场景多变的性质,组建自己的研发团队成了必要,同时还要严格控制研发团队的规模与成本。下面来分享一下我们选择并使用 LeanCloud 的历程。
对开发友好,成本和迁移风险可控
纯粹的云主机服务我们肯定不会选择,毕竟不想自己开发所有的基础功能模块,或是在解决性能问题上有技术投入。之前也考察过新浪和百度等大牌厂商的引擎平台,但它们提供的服务与功能只是针对应用部署与管理,业务逻辑功能上没有太多的内容,基本也是需要自行开发部署验证,另外没有配套的 CDN 加速及更多的支持,因此不适合长久把平台的数据放在上面。LeanCloud 恰恰在这些方面都做得不错。
LeanCloud 平台采用按量付费的方式,这也是我最喜欢的一种。我们预估在用户量低于 100 万的业务场景中使用 LeanCloud 平台会带来超高的性价比。另外在数据导出和迁移方面,LeanCloud 相较于其他的平台也更加开放一些。因为当后期平台使用成本增加需要考虑变更方案并迁移数据的时候,这个功能的可实施和可操作性对我们来说就变得很关键了。
之前我使用过七牛的存储服务,整体开发与性能都很简便,价格也不高,前期几个项目都使用他们的服务,后来了解到 LeanCloud 也是使用七牛作为底层的文件存储与CDN 加速,有一种英雄所见略同的感觉。
我们产品的用户群多种多样,这就要求我们要用尽可能多的形式来提供产品和服务,比如初级用户希望通过微信或小程序快速接入体验,中级用户希望可以通过手机应用提供更全面、功能更强大的支持,管理人员则要求通过 PC 端接入,方便日常管理与数据录入。基于之前我开发原生应用的经验,我不希望所选的 BaaS 平台会有很多的限制,特别是应用交互体验这块内容,因为对于注重原生能力开发的人员来说,限制太多话,碰到问题排查定位的难度相对较高。而 LeanCloud 丰富的 SDK 和 REST API 设计得都非常灵活,对二次开发限制少,用起来很是顺手。
多应用共享数据
最开始 LeanCloud 按每个应用的请求数量进行计费的,所以我基本上按业务的模块单独切分不同的应用。比如帐号中心、商城、交易中心、设备管理、家居平台、酒店平台、社区平台等都是按独立的应用来规划的,这样子也方便按照不同的应用来进行推送与实现权限判断。初期一共创建了15 个应用,应该之间的数据通过绑定的方式进行用户帐号的打通,满足设备数据共享等业务需求。
2017 年初 LeanCloud 调整了收费模式,由于免费的开发版可供使用的资源基本上满足不了我们已上线产品的需求,所以我们面临着升级商用版而要增加费用的挑战。不过目前我们的业务请求量还不太大,最终我们把 15 个应用合并到两个应用中。商用版虽然要付费,但好处是我们可以使用到一些只针对商用版的功能,比如 LiveQuery、文件存储启用 https 域名等等。
云缓存减少了 90% 的请求量
每当 LeanCloud 推出新服务我们都会关注,比如云缓存 LeanCache,我们第一时间就用上了,其效果非常明显,部分应用的请求量下降了 90% 以上。我们的智能开关在操作时会上报相关面板的状态,要实时维护面板状态就要频繁地读取数据,所以后来我们把全部状态数据都存放在 LeanCache 上面,这样不仅数据读写速度有提升,请求量也大大降低,费用也更少了。还有其他的服务,比如国际短信、推送服务、分析统计等,都是日常应用开发维护必备的组件。
小程序迁移一周搞定
2016 年微信上线了小程序,我们也计划着把商户端的内容逐步迁移到小程序上,以实现更快速的版本迭代。2017 年初 LeanCloud 开始支持小程序开发与部署,我们便借助其平台服务迁移现有的业务,步骤熟悉后,基本上一个小程序一周左右时间就能上线。当然由于小程序本身的限制,有部分推送的业务还无法实现,我们最终通过公众号来配合解决的。
开源工单系统拿来就能用
随着我们的技术支持团队服务的合作伙伴越来越多,团队绩效考核越来越规范,我们需要对团队成员及其服务数据进行统计和管理。我们关注到 LeanCloud 自己研发并开源的工单系统 LeanTicket,我们平时向 LeanCloud 提交问题也是使用这套系统,对于它的运行状况和能力已有了解,另外它能提供的分析报告也基本符合我们的需求,所以就决定采用。测试部署完成得很快,但由于 LeanTicket 本来是设计运行于商用版的,还需要经过简单的修改才可以运行在开发版上,好在是开源代码,我们可以自行搞定。
文档完善,视频教程更给力
每个开发人员去了解一个平台的使用主要就是通过官方文档和示例进行的。LeanCloud 的技术文档不仅内容全面规范,并且还提供了评论功能,读者可以在任意一段文字上留言进行反馈或与其他读者互动。近期 LeanCloud 还上线了很多的视频教程,对于想偷懒的人来说是一个很好的消息,讲师们讲解得很到位,深入浅出,是难得的学习材料。
有了 LeanCloud 的强大协助,我们的很多问题都迎刃而解。