微信之道手稿:微信技术总监周颢在中山大学讲腾讯微信1亿用户背后的秘密

微信之道手稿:微信技术总监周颢在中山大学讲腾讯微信1亿用户背后的秘密

ID:33941054

大小:409.05 KB

页数:9页

时间:2019-02-28

微信之道手稿:微信技术总监周颢在中山大学讲腾讯微信1亿用户背后的秘密_第1页
微信之道手稿:微信技术总监周颢在中山大学讲腾讯微信1亿用户背后的秘密_第2页
微信之道手稿:微信技术总监周颢在中山大学讲腾讯微信1亿用户背后的秘密_第3页
微信之道手稿:微信技术总监周颢在中山大学讲腾讯微信1亿用户背后的秘密_第4页
微信之道手稿:微信技术总监周颢在中山大学讲腾讯微信1亿用户背后的秘密_第5页
资源描述:

《微信之道手稿:微信技术总监周颢在中山大学讲腾讯微信1亿用户背后的秘密》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、微信——腾讯战略级产品,创造移动互联网增速记录,10个月5000万手机用户,433天之内完成用户数从零到一亿的增长过程,千万级用户同时在线,摇一摇每天次数过亿„在技术架构上,微信是如何做到的?日前,在腾讯大讲堂在中山大学校园宣讲活动上,腾讯广研助理总经理、微信技术总监周颢在两小时的演讲中揭开了微信背后的秘密。周颢,2001年毕业于华南理工大学,计算机专业硕士。2005年加入腾讯广州研发部,历任QQ邮箱架构师,广研技术总监,T4技术专家,微信中心助理总经理。(注:演讲PPT下载)(腾讯广研助理总经理、微信技术总监周颢CSDN配图)周颢把微信的成功归结于腾讯式的“三位一体”策略:即产品

2、精准、项目敏捷、技术支撑。微信的成功是在三个方面的结合比较好,能够超出绝大多数同行或对手,使得微信走到比较前的位置。所谓产品精准,通俗的讲就是在恰当的时机做了恰当的事,推出了重量级功能,在合适的时间以最符合大家需求的方式推出去。他认为在整个微信的成功中,产品精准占了很大一部分权重。敏捷是一种态度敏捷就是试错微信研发团队里鼓励一种试错的信仰:他们坚信,在互联网开发里,如果能够有一个团队在更短的时间内尝试了更多机会(并能改进过来),就能有(更多的)机会胜出。敏捷是一种态度,在软件开发过程中,项目管理者都会非常忌讳“变更”这个词,但是在微信的项目运作中是不可以的。因为微信必须要容忍说哪怕

3、在发布前的十分钟,也要允许他变更。这是非常大的挑战,因为打破了所有传统项目开发的常识。所有人都说不可能做到的,但微信做到了。研发团队所做的一切都是要给产品决策者有最大的自由度,而这个决策正是微信能够胜出的关键。海量系统上的敏捷无异于悬崖边的跳舞敏捷有很多困境,如果做一个单机版程序,是可以做到很敏捷的,但是腾讯正在运作的是一个海量系统,有千万级用户同时在线,在一个单独的功能上每天有百亿级的访问,同时还要保证99.95%的可用性。在海量系统上应对项目开发会有很严谨的规范,都说要尽可能少的变化,因为90%-95%的错误都是在变更中产生的,如果系统一直不变更会获得非常高的稳定度,但是微信就

4、是要在悬崖边跳舞。微信的研发团队要做一些事情,让敏捷开发变得更简单。如何做到这一切?周颢认为,首先,必须建立起一种狂热的技术信念,就是一定是可以做到的。然后,需要用一些稳固的技术(理念)来支撑,例如大系统小做、让一切可扩展、必须有基础组件、轻松上线(灰度、灰度、再灰度;精细监控;迅速响应)„等等来支撑。四大法器:大系统小做、让一切可扩展、要有基础组件、轻松上线大系统小做:当设计庞大系统的时候,应该尽量分割成更小的颗粒,使得项目之间的影响是最小的。一切可扩展:在高稳定度、高性能的系统中间,为了稳定性能把它设计成不变化的系统,但为了支持敏捷需要让一切的东西都要变得可以扩展。必须建

5、立基础组件:要解决复杂问题的时候,需要将已有的经验固化下来,固化下来的东西会成为系统中的一部分。轻松上线:当做了变化并把它从开发环境中部署到现有的运营环境中去,在这个过程中,“灰度”这个词非常关键,就是在黑和白之间的选择,必须要变成一种小规模尝试,再逐步扩展到海量过程中的一个问题。大系统小做——仅仅把模块变得更为清晰,这在海量系统设计开发中是不够的,还需要在物理环境上进行分离部署,出现问题的时候可以快速发现,并且在最快的情况下解决掉。大系统小做混搭模式将不同的应用逻辑物理分割独立出来,用户注册登录、LBS逻辑、摇一摇逻辑、漂流瓶逻辑、消息逻辑独立开来。把关键的逻辑混搭在一起,当所

6、有的逻辑部署在同一个服务器上,确实也会带来很大敏捷上的好处,因为不需要额外的考虑部署和监控的问题。在整个微信的逻辑中,可能现在已经有上百种不同的逻辑,因为会在逻辑的分割上拆分成8-10种做分离部署。一切可扩展——网络协议可扩展、数据存储可扩展扩展的关键点有两块。一个是网络协议需要扩展,当要升级一个新功能的时候,会有一些比较大的困难,所以所有协议设计都比较向前兼容,但是向前兼容还是不够的,因为网络协议设计本身有非常多的功能也会有比较大的字段,相关的代码可能会有数千行,这一块不能通过手写方式完成。可以通过XML描述,再通过工具自动生成所有的代码,这是微信获得快速开发的一个重要的点。另外

7、一块就是在数据存储方面是必须可扩展的。在2005年绝大多数海量系统的设计都是采用固定字段的存储,但是在现代系统中会意识到这个问题,会采用KV或者TLV的方式,微信也做了不同的设计。把复杂逻辑都固化下来,成为基础软件。在微信后台会有几种不同的基础组件。大致包括:Svrkit——Client/Server自动代码生成框架:10分钟搭建内部服务器LogicServer——逻辑容器:随时添加新逻辑OssAgent——监控/统计框架:所见即所得的监控报表存储组件——屏蔽

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。