您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 使用七牛云存储快速开发移动应用-v2.0
快速开发移动应用113年5月17日星期五故事概要•我计划创业,做一个移动应用•想法:模式描述:宝宝成长记录类在线应用功能描述:•结合文字、照片、视频、录音、地理位置等信息多维度记录宝宝的成长•不要求实时在线,可离线记录,联网自动同步•支持父母朋友间分享宝宝记录213年5月17日星期五敏捷法则•把精力放在刀刃上,能够不自己做的事情不做•小步快跑,及早发布,快速迭代313年5月17日星期五工具箱•邮件/邮件列表–Gmail、Google Groups (免费)•文档–Wikidot (免费)•代码管理–Github (付费)•DNS–DNSPod (付费)•集群监控–监控宝 (付费) + 自有监控平台•日构建系统–Jenkins (开源软件,有机器和系统管理成本)•缺陷管理–Redmine (开源软件,有机器和系统管理成本)优选云服务,次选开源软件方案,极端情况自己做点小工具413年5月17日星期五技术框架同步客户端(多平台)业务(含同步服务端)业务DB照片、视频存储集群照片、视频处理集群照片、视频访问层照片、视频处理结果缓存账号DB账号服务513年5月17日星期五模块介绍(服务端)•账号服务–提供账号认证、授权等相关的服务–账号服务本身逻辑不复杂,难在如何与业务解耦(以便在扩展新业务可共享账号系统),如何做到安全、做到高性能•业务(含同步服务端)–包括如何设计用户、宝宝成长记录、分享记录等逻辑•照片、视频访问层–提供照片、视频的上传、下载、缩略图等服务•账号DB、业务DB–数据库(MySQL 或者 MongoDB 之类)613年5月17日星期五难点(1)–问题来由•用户通过多个设备创建/编辑宝宝成长记录•用户可离线创建/编辑宝宝成长记录–问题现象•当成长记录被再编辑后,可能出现冲突,因为可能多终端同时进行了修改问题一:多终端更新的合并713年5月17日星期五对策同步策略•如果出现冲突,考虑接受编辑时间较新的一个•此同步策略可能丢失一些内容,但对宝宝成长记录这样的应用类型在可接受范围vs. 个人网盘网盘的同步冲突主要针对办公人群,同步策略相对需要复杂很多,多个人同时修改文档,丢失谁的工作成果都不可接受813年5月17日星期五难点(2)–问题来由•假设平均每用户每月给宝宝做一次成长记录,每次记录的媒体数据为1G(多数是照片和视频)。•要支撑 10w 用户的时候,每月数据增长为 100T,10个月后数据是 1PB。恐怖!问题二:分布式存储?913年5月17日星期五对策选择自己做分布式存储 + 自购设备成本考量:不可取,最后发现自己多数时间放在非核心业务上,在玩技术而不是创业选择开源存储 + 自购设备•Hadoop, MogileFS, …•预期的挑战•Hold 住一个复杂的第三方系统并运维(关键是出异常情况的时候怎么办的问题)•可以预期的定期加设备、异常流量应对•非平滑的成本支出选择云存储•按需支出•非核心业务外包,集中精力自身业务完善1013年5月17日星期五难点(3)–问题来由•宝宝的照片和视频都是高清,怎么才能更快上传到服务器?•特别是在 2G/3G 移动网络下,怎么才能确保视频传成功?问题三:上传视频难?怎么更快上传?1113年5月17日星期五对策技术方案•为了让文件上传更快,我们需要对文件切割(如每个片段4M),各片段可并行上传•为了让每个片段在恶劣网络下都可以上传成功,服务器和客户端都需要知道某个片段上次上传到哪里了,重连后继续接着传•最后在服务端将各个片段重新拼成一个文件挑战•就近找机房上传是最好的,但是实施难度很高,需要部署多机房•支持分块上传和断点续上传后,单纯上传的代码(客户端)从原来的5行增加到了500行•更何况,还要考虑并行和多线程等问题,程序逻辑复杂度急剧上升1213年5月17日星期五难点(4)–问题来由•要展示一个宝宝影集,需要将影集里面的所有照片缩略为 128x128 的方图,并且进行排列问题四:图片缩略处理1313年5月17日星期五对策对策1•在用户上传每一张照片的时候,服务端同时生成 128x128 的方图•问题•上传变慢(异步生成可改善速度,但带来一些问题)•需要新增/修改缩略图的时候,需要遍历所有照片进行生成•空间浪费比较大对策2•在用户请求 128x128 方图时动态生成,并且将其缓存(非永久存储)•好处:空间浪费低、新增/改变缩略图规格容易•问题:技术方案复杂,需要一个缩略图转换处理集群(以支持比较大的并发)、一个缩略图缓存及淘汰算法1413年5月17日星期五最终技术方案同步客户端(多平台)业务(含同步服务端)业务DB七牛云存储账号DBOAuth1513年5月17日星期五上传流程同步客户端(多平台)业务(AppServer)七牛云存储业务DB1.授权2.直传3.通知4.写表1613年5月17日星期五步骤1:上传授权同步客户端(多平台)业务(AppServer)七牛云存储1.授权1713年5月17日星期五步骤2:直传文件同步客户端(多平台)七牛云存储2.直传1813年5月17日星期五开发者的工作代码很少,后端阵容其实很庞大复杂难懂且质量低下的移动互联网自动选择最近节点上传下载业务服务器可以变得非常轻量级智能DNS和路由优化,帮助你屏蔽国内网络环境的复杂性数据处理增值服务多副本、分布式、多IDC互备的安全存储视频转码图片处理加速节点加速节点加速节点加速节点移动应用业务服务器客户端SDK服务器端SDK2131913年5月17日星期五无需改变开发习惯,轻松接入Objec+ve-‐CJavaC/C++GoC#/.NETPerlRubyPHP5/5.3PythonNode.jsLinuxWindowsMac OSXWindows PhoneAndroidiOSSDK 方便接入2013年5月17日星期五上传后,如何下载?•公有资源–http://{domain}/{key}•私有资源–http://{domain}/{key}?token={downloadToken}212113年5月17日星期五全网加速分发,呃,没有限速呢..全球服务架构独特的架构可向全世界提供可靠、快速和保证数据一致性的存储服务。双向传输加速分布各地的加速节点,保证数据上传下载速度均得到最优化。断点续传不仅支持数据下载的断点续传,还支持数据上传的断点续传,改善客户体验。2213年5月17日星期五云处理•API 规格–http://{domain}/{key}?{fp}•fp is File-Processing–转缩略图(实时)––转音频(实时)––转 HTTP Live Streaming / M3U8(实时)––提取视频帧(实时)–年5月17日星期五图文混排水印原图保护缩放以适配不同屏幕可自定义裁减区域效果处理旋转音视频处理:•转码•截取,截图•HLS/M3U8多媒体文件处理内置图片缩略图快速生成,EXIF信息提取,音视频转码等功能,大大节省业务主机资源消耗,提高开发效率云处理,要么子,有么子!2413年5月17日星期五精益创业,敏捷Start-up•七牛云存储–我发现,七牛云存储完全符合我对图片、视频方面的需求,节省了开发的人力成本、时间成本–连硬件成本看起来也比自己做更划算–除了少了点深入探索的乐趣(创业者应当忌讳沉浸于此),我没有任何理由自己干•业务–这才是我要深耕的东西!2513年5月17日星期五自2012年5月底面市,已有数千家互联网企业选择七牛云存储艺点儿Camera360Weico+Weico米格宝宝日记VIDA美图流利说传樣下厨房蝉游记抬杠指阅豌豆荚微印财新知乎36氪iApps深度刷机科大讯飞旗下教杰下一个奇迹,虚位以待!2613年5月17日星期五Q & ATHANK YOU欢迎微博交流:@飞天急速徐倒立 | @七牛云存储2713年5月17日星期五
本文标题:使用七牛云存储快速开发移动应用-v2.0
链接地址:https://www.777doc.com/doc-6399473 .html