从零开始的Devops-通用服务平台解决方案思考

通用服务平台解决方案思考

标签(空格分隔): 工作


分析我们的业务

如何复用服务端代码和相关功能。
如何快速开发h5,iOS,安卓,小程序等。
如何分解和规划不同通用功能的边界。
如何定义通用功能的接口。
如何避免重复建设。
如何避免技术重复规划。
系统之间缺乏集成协作标准。

目标

支持多平台:h5,iOS,安卓,小程序等
提高可复用性和可靠性:不用重复开发短信验证,登陆,注册,推送等功能。
汲取成熟:规范接口定义,汲取成熟的方案。
各个模块解耦:防止复用代码,需要同时大量复用依赖库和相关代码。
定义通用模块接口和集成标准:便于后续协作。

分析我们的业务

成本和效率是最需要关注的两个方面,我们完成一个项目,需要开发出一个业务平台,各个项目都基本会需要移动APP和web的功能。那么以下的问题我们每个项目都需要解决:

共有问题

服务器部署维护
APP和Web网站开发
后端服务开发

解决业务 功能:能:

认证和授权
文件存储
推送和通讯
地图功能
支付功能
社会化分享
验证和安全
智能识别
搜索
用户行为分析
...

业务功能:

活动管理
增删改查
分页查询
最新动态
...

解决

建议参考后端即服务的设计。什么是后端即服务(Backend as a Service; BaaS)BaaS是指专为移动应用开发者提供整合云后端的服务。BaaS代表第二代云服务,相对于AWS、阿里云等公有云(IaaS,PaaS)是第一代云服务,通过广泛部署云数据中心解决了开发和运维系统不需要管理服务器的问题,BaaS则在第一代公有云数据中心基础之上,对云计算资源进一步封装、简化与优化,提供开发、运维和服务的一站式云服务。通过对主流BaaS平台的功能的分析规划我们自身的业务。

后端即服务的现状和分析

Parse, Firebase是BaaS领域里先驱和领头羊之一。
Google(谷歌) 最近为 Firebase 推出了新版本。它为开发者提供了统一标准的Android, iOS 和 流动网络应用的实时应用平台。在最新版本的Firebase中,亦增加了如Admob, Analytics, Authentication, Index-ing, Text Lab 等一系列应用分析工具。
然而Parse Server还是一个开发应用和API的更好选择。接下来会为两者进行分析并说明为什么Parse Server 会是更好的选择。

Firebase

https://firebase.google.com
现在仍然有很多以Parse作为后台的Android及iOS 应用程式。但由于Facebook 中止了Parse的服务,并设了期限要求开发者迁移到别的后端平台,开发者要另觅新的平台。而Google 的 Firebase 便是其中一个可以让开发者寄存应用的选择。以下是Firebase对于开发者引人入胜的地方。

数据储存方式
Firebase 以JSON作为数据储存方式。跟REST API’s 兼容,甚至可以存在云端上,让用家在何时何地都能存取。

实时数据同步
Firebase 是以观察者模式(model-observer scheme)设计的 ,对于实时互动的应用会发挥十分大的效用。任何数据的转变都会实时更新,用家马上能在自己的客户端中获得最新的数据。
如在云通信及远端控制等等的应用便可以即时更新当前的应用数据。

权限及保安
Firebase为Android 及iOS提供了安全且具弹性的APIs。

中央管理数据库
开发者不需要为数据而烦恼。 Firebase 提供数据库管理服务,包括存取及实时更新数据。
Google 对 Firebase 的支援模式跟Facebook 与Parse的情况相似。然而,Facebook 中止了Parse 的服务并把这个系统开源。
以下则是Parse Server的特点。

Parse Serve

https://parseplatform.org
Parse 是一个完善的开源项目。事实上,Parse Server 已经改善了以前的短处并保留了一如既往的长处。现在可以让用家自行託管自己的Parse Server,成为最好的流动应用程序平台。

容易执行
Parse Server 只需要 Node.js 框架或 Express web app 框架。即便你先前已准备好数据库,也可以轻松运行而不需再作任何改动。

数据储存方式
Parse 以MongoDB 和Amazon S3 篮子作为储存系统。但Parse在储存系统上强化了运算能力,备份等能力。
用家甚至可以自由选择档案储存系统,包括JSON作备份、导入等功能。

指针权限
Parse Server 能在不改变任何客户端代码确保数据安全。指针权限则是Parse Server 最近更新的卖点。

仪表盘
Parse Server 有名之处在于其出色高效的仪表盘。可以让用家有效管理及设定他们的应用和发送提示等等。

灵活存取
用家不用发送同样的存取请求。用家可以事先设定好具重覆性的要求,当Parse Server 侦测到有相关数据改动的时候则会自动发送予用家。

供应商的依赖性
开源项目的好处在于开发者可以对源码作出完全的控制,他们可以在有需要的时候作出改动。当Facebook 宣布中止Parse 的时候,开发者能马上转移他们的数据和应用到其他BaaS 或 MBaas。为此经验得知,开发者对于这类平台的信任度不会比以前高。
在有实力强劲的开发者社区的背景和丰富的开源平台下,现在Parse Server 对比其他供应商更加稳定。 Parse Server 无疑会是比Firebase 更好的平台。

快速比较与总结
Firebase 和 Parse Server 同样可以寄放Android, iOS,网络应用。然而Parse Server 会有更多的好处给用家。
Firebase 的用家不能对源码作出管理,亦不能拥有其IP著作权
在嵌入平台上,Firebase 的Rest API’s 运行速度慢
Firebase上的汇报工具不够强
Firebase在数据迁移上也没有Parse Server般容易
Firebase不支援简单的地理数据存取要求
Parse Cloud 比最新版本Firebase的来得更强大
最重要的是,Firebase 用家被锁定了一家平台供应商

对比

LeanCloud

https://leancloud.cn/
平台提供了数据存储,云引擎,服务器 SDK,命令行工具、文件存储和 IM 等服务。基本上涵盖完整后端服务模块,基本上免去了一些脱离业务层面的基础开发工作,这样开发者能依托基础服务,聚焦于业务层面开发。平台提供各种语言 SDK 调用其数据引擎,开发者也不需要去单独维护备份数据。

除次之外,Kinvey,StackMob,Apigee,Appcelerator等也非常值得关注。我们可以对这些主流BaaS平台的功能,架构特点进行分析,从而可以为我们设计自己的BaaS提供经验。
这个链接是更为全面的分析和比较
https://www.jianshu.com/p/ad1ddb2854be

使用后端平台可能面临的问题

  1. 使用闭源解决方案可能形成对供应商的依赖,对相关开发sdk进行绑定。
  2. 使用开源解决方案,在面对平台问题和自定义问题的时候,解决比较困难。
  3. 对于一些功能较复杂的需求就不太适合。
  4. 数据库操作功能有限。

建议

可以有计划的对Parse Server或者其他的Baas平台进行源码学习或者模仿,逐步将业务向Baas平台进行演进。根据我们项目的特性和技术栈进行逐步演进。后续还可以变成可销售的产品。

猜你喜欢

转载自www.cnblogs.com/franzlistan/p/12228568.html