由某公司云服务到对移动端开发和运维思考
之前hobo在36ker上了解到一家提供云服务的公司AVOS Cloud,他们对外提供了提供一站式app后端云服务,可以大大提升app应用的开发效率。
下面先对他们提供的服务和工作机制做一个简单介绍:
1. 数据存储服务
对外提供的数据存储服务,可以让你用 RESTful API 和各种 SDK 增删改查任意数据。基于文档类型的 schema-free 的对象级别存储,帮助您存储各类应用信息。我们还提供包括图片、视频等多媒体文件在内的分布式存储服务。
2. 消息服务
支持一对一,群聊,只需几行代码,就可以给你的应用插上移动 IM 的翅膀;IM 系统与当前用户系统完全解耦,无需同步或修改现有用户体系,即可使用;除移动开发的原生 SDK 之外,我们也支持网页内聊天。
3. 消息PUSH服务
iOS、Android、Window Phone,每个平台都各有特色,技术方案各不相同,该怎么办?我们提供了一套简单、高效的解决方案。你可以通过 Web 控制台、也可以通过 Restful API 以及原生 SDK来发送通知。
4. 数据分析服务
AVOS Cloud 提供实时、免费、专业的移动应用统计分析服务,帮助你了解运营概况、应用趋势分析、用户行为分析等关键指标,也可以追踪不同渠道的推广效果。
5.社交网络服务
一行代码实现第三方登录,体验差的注册流程会带来三成以上的用户流失。想简化流程,直接使用微博、微信、Twitter、Facebook 一键登录?没有问题,使用我们的 Social 组件,最少只需一行代码,轻松搞定第三方账户登录!
如果基于AVOS Cloud开发普通的app应用的话,我想基本可以省去大部分后台服务了,而且可以大大节省开发时间,对于分秒必争的移动互联网来说,节省开发时间就意味着你可以比竞争对手提前发布应用,占领市场。
反观我们SNG目前的应用开发和部署流程,要开发一款app的话,可能先是客户端的同学和后台开发同学一起,商量好接口,后台的同学开始开发,然后开始使用各种前端的接入框架(wns,msf)等,联调各种接口(cmem,L5,各种权限),上线部署的时候又开始找运维申请机器,申请tgw,cmem,L5,各种权限等等,而且移动端很多都是直连ip的私有协议,这样又要自己去实现一套调度的接口,用来保证用户能够接入到最优的服务ip,而这时候客户端的同学可能又要去折腾公司各种平台登录问题了。
对比上面的两种开发方式,我想我们在移动端上开发效率可能还真没有使用AVOS Cloud的创业公司的效率高了,之前PC端的运维方式,开发完成cgi和逻辑server的开发和联调,找到运维去申请tgw,部署qzhttp,部署spp,申请cmem,虽说有很多自动化的工具,但毕竟要走这么长的一个流程才能上线。
其实AVOS对外提供的服务,我们公司内部都是可以支持,比如存储服务我们cmem这样支持海量高并发的内存数据库,对外接入我们tgw,消息推送和数据分析我们有信鸽和TA等等,但问题就在于我们没有把这么整合起来,对开发以云服务的方式提供出来,还是由运维和开发来一步一步去对接和实施,鉴于此hobo大胆设想下,我们应该怎么去改进我们目前开发运维方式:
1.整合公司现有的服务,对外提供一个操作界面,开发的同学直接可以在同一个站点完成关于app开发需要所有的操作,不需要来回去公司各种系统去申请权限,联调接口等等。
2.针对接入,把tgw和接入调度封装成服务,对外提供sdk,开发只需要自助申请一个接入ID,然后把SDK集成app就可以实现与服务端交互以及获取到最优的接入ip。由运维后台自动化去申请后端接入机器,部署接入框架。
3.关于存储,最好能直接对外提供存储的服务,支持restful api 和 sdk的方式,把cmem和tfs的接口封装对外的服务,让app直接在客户端操作存储。
4.数据分析服务和消息推送,可以直接和公司现有信鸽,TA对接下即可,因为他们已经有现成的sdk和服务了。
总之就是把我们目前的系统、接口、服务进行封装和优化,以云服务的方式提供出来,节省app开发时间,提升开发效率。
最后套用一个大神说过的一句话结尾: