AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

移动开发面临持续交付挑战

  • 2014-07-23
  • 本文字数:1057 字

    阅读完需:约 3 分钟

Jesper Richter-Reichhelm 作为 Wooga 公司的工程主管,他在 2014 年的阿姆斯特丹 GOTO 大会上发表了演讲,主题为开发移动游戏过程中团队所面临持续交付挑战。Jesper 尤其强调了缺乏对移动相关软件交付过程的控制如何差点摧毁他们的公司。

Jesper 借用一款移动游戏去年年底在 App Store 发布的案例阐述了他的观点。此次发布到被 App Store 接受花费了 4 天时间,但是却包含了一个严重的 bug,致使 15% 的用户受到影响。虽然他们只花费了几个小时就将 bug 修复并且向 App Store 提交了新版本,最终用户却是在 5 天之后才获取到新版本,因为这几天正好是美国的感恩节。数以万计的差评,受影响用户接近 200000,使得该游戏差点遭遇灭顶之灾,整个公司都差点垮掉,Jesper 如是说道。

在 web 开发中有越来越多的做法支持持续交付策略,比如 canary(金丝雀)部署方式(为了控制新特性的发布)或特性开关,但是App Store 发布过程并不支持这些方式。为了绕开这些限制,Wooga 公司投入了相当精力支持对其游戏进行在线配置,而且通过一些技巧如“伪造的”设备要求(如是否配备相机)来划分他们的用户,以达到对部分功能进行canary(金丝雀)部署的目的。虽然如此,公司还是依赖用户去主动安装应用的更新,超过10% 的用户还在使用18 个月之前的老版本。如果你要他们强制升级到一个只能在线玩的版本,他们就关掉网络。

此外,在发布应用到App Store 环节,Wooga 公司停止了从专用机器手动发布版本的做法(但是Jesper 建议将dSYM 文件进行版本管理,目的是调试崩溃问题),因为这种做法构成了单点失败,在需要向App Store 发布新版本时,这种单点失败增加了修复bug 的时间。Wooga 还建立了自己的内部应用商店,用来模拟App Store 的发布流程,同时允许内部用户测试游戏的新版本(与Facebook 的做法如出一辙)。

除了交付机制和 MTTR (Mean-Time-To-Repair,修复平均时间),Jesper 还强调对于网络和设备的控制缺失是 Wooga 在移动开发中面临的主要挑战。

尤其是移动网络延迟波动和离线使用容易导致数据丢失,后果就是我们很难保持数据的一致性和 / 或调试用户碰到的问题。为减小问题的影响,Wooga 采用的手段有,与手机客户端异步通信,同等对待所有消息(即使是几天前的)以及引入 ETags 来解决更新冲突。

查看英文原文: Continuous Delivery Challenges in Mobile Development


感谢曹知渊对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-07-23 21:391754
用户头像

发布了 28 篇内容, 共 11.5 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

程序员成长第二十篇:刚晋升管理者,有哪些方面要注意?

石云升

程序员 28天写作 职场经验 管理经验 3月日更

2021最新腾讯面经分享:Java面试刷题PDF(17个专题 5000字解析)

比伯

Java 编程 程序员 架构 面试

OSPF路由协议基本知识点大全

四、查询

Kylin

读书笔记 数据库开发 分布式数据库mongodb 读书总结 3月日更

融云CEO韩迎:飞信十年珍贵历练,做To B别有取巧的心思

融云 RongCloud

IM RTC 飞信

【回溯算法】组合总和升级版 ...

宫水三叶的刷题日记

面试 LeetCode 数据结构和算法

麻木得那么快应不应该——韦伯-费希纳定律

Justin

心理学 28天写作 游戏设计

mysql常用命令

Sakura

政府区块链招投标市场活跃 “区块链+警务”等多元化领域成​方向

CECBC

什么是开放艺术?探讨融合区块链技术的新艺术范式

CECBC

表达的时代

ES_her0

28天写作 3月日更

用户画像实践

Jackchang234987

震撼来袭!2021版全新版Java面试笔记现世,简直把所有Java知识面试题写出来了

Java 架构 面试

进程和nginx

一个大红包

28天写作 3月日更

翻译:《实用的Python编程》03_06_Design_discussion

codists

Python

容器 & 服务:K8s 与 Docker 应用集群 (二)

程序员架构进阶

Docker 持续集成 kubernete 服务化 3月日更

方法论分享之:刻意练习,微小改进

boshi

方法论 经验分享 七日更

在一个操蛋(执行力极差)的团队工作是一种怎样的体验?

冰河

团队管理 程序人生 执行力 问题总结 团队成长

《经济学人》2021年3月6日刊精彩文章导读及资源下载

wbliu85

Wireshark数据包分析学习笔记Day2

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

女神节|深情告白季,程序员和他的浪漫

InfoQ写作社区官方

热门活动

2021最新分享面试跳槽宝典:互联网大厂Java高级工程师核心面试498题(附解析)

比伯

Java 编程 程序员 架构 面试

VMware Workstation

梅花鹿鹿

虚拟机

搜狐三面:说说你是怎么解决MySQL死锁问题的!

Java架构师迁哥

JAVA学习心得

张鹤羽

28天写作 3月日更

单点登录(SSO)

一个大红包

SSO 28天写作 单点登录 3月日更

LeetCode题解:309. 最佳买卖股票时机含冷冻期,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

写作对我来说是什么?

lenka

产品经理 写作 3月日更

需要对未知保持敬畏「Day 14」

道伟

(28DW-S8-Day14) 数据孤岛

mtfelix

28天写作 数据孤岛

进程调度算法

鲁米

算法

移动开发面临持续交付挑战_Apple_Manuel Pais_InfoQ精选文章