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