8

每一场发布会都是一次修行

 3 years ago
source link: https://zhuanlan.zhihu.com/p/23093019
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

每一场发布会都是一次修行

青峰之巅,山外之山

江湖传言,锤子科技是一个发布会驱动的公司,从某种角度而言,是这样的。每次临近发布会的前一个月,公司的各个部门就像打了鸡血一样,迅速组成一台强有力的战斗机器,就像变形金刚。每个人刀剑在手,胄不离身,虽然各项事务头绪繁杂,千丝万缕,但是最终都能兵来将挡,水来土屯。虽然累,但每次发布会对每个人都是一场洗礼,或者一次修行。对心理的扫荡,突破极限,你会产生各种情绪,焦虑、疲劳、忧虑、绝望、惊喜和欢笑。最后,你会迎着风,感受到活着和战斗的力量。

我们部门主要提供互联网服务、相关的软件和运营支撑,内容包括但不限于官网、新品详情页、电商、发布会相关的市场活动、iOS 软件、Mac 软件,Windows 软件,等等。所有与发布会相关的服务和产品都必须在发布会之前全部研发完成,测试上线。而在一个月之前,还有大量的需求是不明确的,在这一个月内,无数的需求会反复变更,不断修改,直到发布会的最后一天……的上午。其实并不是没得改了,而是发布会马上要开了。

Linux 操作系统的作者 Linus 曾经说,你可以建筑一个这样的房子,有一个活板门,既稳固又实用。但是,每个人都可以看出一个仅仅以坚固实用为目的的树上小屋和一个巧妙地利用树本身特点的美妙小屋之间的差异。这是一个将艺术和工程融为一体的工作。

构建产品与造树上小屋有相似之外,在实现的过程中,实用的考虑往往被置于有意思、美观优雅或有震撼力的考虑之后。将科技、人文、设计、美和工程结合在一起是一个永无止境的工作,尤其是遇到一群具备强迫症和追寻完美主义的设计师,嗯,还有老板。

与交互和设计相关的工作流程一般是这样的:老罗在凌晨开始与设计师、产品经理 Review 昨天做好的产品服务,品评、讨论、反复操作,最终提出修改意见,或推翻昨天的修改意见。然后设计师彻夜不眠的修改设计稿,切图,标注,在后半夜发给我们的工程师,这样第二天早晨工程师一上班就会看到邮箱里躺着厚厚的一摞设计稿了。打开,再次崩溃(因为之前已经崩溃过了),工程师们开始重新编码实现。这些改动会包括业务功能和逻辑的修改、文案变动带来的布局修改、新特性的增加、交互的变化、动画多了一秒,或少了一秒,不一而足。我们会在凌晨把相关的功能提交给产品和设计,然后等待下一个轮回。

很多东西是反复进行沟通和修改的,每一个细节,光影、颜色、流动的线条、业务流程的优化,不断细化,最后形成最终方案。然后,最终的方案可能又被推翻了(微笑)。工程师、设计师、产品经理都想杀死对方,老罗倒是没什么,心态很好,因为大家都想……你懂的。

交互和设计上的实现工作就是这么繁复,服务器端工程师的压力也非常大。由于每次锤子科技的发布会影响力巨大,在发布会当天,我们会迎来一个流量的高峰,真的很高!以至于我们每次的新品售卖就像是一次秒杀活动,服务器的压力巨大,任何一个环节出问题都会形成灾难性的后果。另外,安全也是我们需要考虑的重中之重。

我们需要对所有的业务系统进行安全检测和安全加固,同时要有相关的安全策略和安全设备,防 DDoS 是必不可少的环节。对于流量高峰,需要有限流、分流和负载均衡策略,保证服务器不会被冲垮。热点数据要放到中间件里面缓存和持久化,防止系统直接被打穿,触抵数据库造成 IO 瓶颈。关键的业务接口基于 lua 重写,充分利用 OpenResty 的非阻塞 I/O 模型特性,尽可能增加 QPS。异步和多线程,调用序列和消息队列的处理,前端与后端的数据传输,都需要通盘考虑。最后还要有搜索能力、离线数据的处理能力、实时数据的处理能力,并进行数据的图形化展示,为产品和销售提供数据上的支撑。

这还不够,最终系统成形必须要经过单一接口的压力测试和全链路的压力测试,其间会涉及操作系统的性能调优,数据库和 NoSQL 的优化,网络链路的整合,业务调用流程的改变,以期达到我们想要的最佳效果。

压测往往会暴露很多问题,尤其是新上线的模块。有时我们会特别绝望的想,如果发布会早开几天,可能我们的系统就崩溃了。但是,无论发布会是哪天召开,我们总能在最后解决所有的问题,确保正常上线。

发布会临近,项目经理们会梳理出一张上线时序图,在发布会当晚,配合老罗的演讲内容,逐步上线,最终完成产品展示和购买流程。

然后,发布会就来了……

老罗按照惯例延迟了二十多分钟,还好,整个发布会精彩纷呈,不过后半段他老人家讲太嗨完全忘记了时间,以至于 M1/M1L 的价格公布时间远远超过了预期。原本是在晚上10点准时开卖的,先推迟到10:30,再次推迟到11点,最终是11点开始销售的,然后就顺利的卖完了。当然,在这个过程里,罗哥还在喋喋不休的演说并不知道所有的手机已经售罄的好消息……

服务器依然承受了巨大的流量冲击,并且发生了服务抖动,好在工程师们应对得当,用户基本无感。关于新品手机,关于 Smartisan OS 3.x,关于 HandShaker,关于大爆炸分词,关于 One Step,大家都可以去我们的官网 t.tt 欣赏……

感谢团队成员,感谢所有的工程师、设计师、产品经理、项目经理以及相关的销售市场售后人员,感谢腾讯云、阿里云等第三方合作伙伴,我们获的这个奖……咦,好像还没获奖。总之,一切都如同想象的那么好!

穿过风,穿过雨,带着心中的希望,永不独行!

http://weixin.qq.com/r/6nVFXS-EJnJZrWs_9yD4 (二维码自动识别)

文章首发在公众平台 MacTalk,扫描关注。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK