SlideShare a Scribd company logo
1 of 19
自我介绍
• 瞿晋萍
• 2010/7月份加入小米至今
  – 从2010年10月到现在一直开发米聊
  – 米聊服务器端架构师
  – 米聊消息系统技术带头人
• 2007/7~2010/6:
  在Microsoft3年,开发Bing搜索引擎和windows
   phone 7云服务客户端
• 之前在Lucent和Nortel开发电信软件
移动互联网业务的研发
   -米聊服务器端的技术选型与架构设计
打造互联网基础业务的必由之路


找到一个每人都需要的服务(BIG THING)并免
    费提供快速积累海量用户
方法论
专注,极致,口碑,快
天下武功,唯快不败
要保证可持续的快
• 快速推出新功能,
  试错,验证后快速迭代改进
• 快速扩张研发队伍,
  模式初步验证后,加大资源投入
• 架构快速水平扩张
  当业务方向对,推广运营到位,互联网海
  量业务规模
如何保证
• 技术选型上的3大纪律
• 工程技术上的8项注意
技术选型的3大纪律

 大厂都在用
 自己搞得掂
 项目输得起
注意1:分治,SOA
• 业务分而治之
• 工程考虑:作为研发和部署的业务单位,
  加人方便、独立研发演进、降低复杂度
• 技术上:
 服务命名naming/自动发现register&discovery/治
  理(负载均衡,柔性服务)
• 米聊的实现:
 – Thrift + Zookeeper
注意2:服务/数据访问通过接口
• 服务接口要求
 – 多版本支持(multi-version)
 – 紧致(compact)
 – 同步与异步
• 数据访问:
 – DAL+DAO
• 工程考虑:屏蔽变化和复杂性,便于共享,使用和升级
• 米聊的实现:
 – 同步用thrift (服务使用HsHa)
 – 异步用rabbitmq
    •   rabbitmq不就是分布式的actor吗
    •   非阻塞,并发性好
    •   事件驱动,容错性好
    •   Traffic shaping, 容峰值流量好
 – 数据库访问层DAL(data source)
注意3:接口/数据要支持多版本
化,可扩展
• 外部和内部所有接口
 –   http api
 –   Rpc
 –   Data
 –   XMPP连接协议
• 工程上的考虑:让各个模块的功能接口灵活扩
  展同时又保持前后向兼容
• 我们的实现
 – http api: url版本化
 – Rpc/data: thrift
 – Xmpp:增加了版本号
注意4:数据说话
• Measure 测量统计:业务和服务质量
 – 业务(KPI)
 – 服务质量(吞吐量throughput和时延latency)
• 工程上的考虑:把业务使用量,QOS,工程运
  行状况量化,为商业和研发提供监控和辅助决
  策
• 我们的实现:
 – 数据采集与统计(scribe log+hadoop+hive)
 – Counter各个服务自己统计
 – 做成dashboard图表化
注意5: 用哈希partition 所有东西
• 为海量用户提供服务的唯一途径
• 工程上的考虑:机制越早建立越好。因为
  业务爆发很快。另外开发一开始就有scale
  的概念
• 我们的实现:
 – 数据库:一开始就按uid分表分库,做垂直和水
   平分割,用DAL屏蔽
 – 服务用uid range分割
 – Memcached等用一致性hash
注意6: 服务无状态
• 服务要设计成无状态,可以被”kill -9”
• 工程上的考虑:
 – 可以在线升级
 – 可以提供多个实例作为冗余,提高可用性和负载均
   衡
• 我们的实现:
 – 服务内部无状态,通过cache或者数据库共享状态
 – 客户端通过zookeeper发现服务的多个实例,负载
   均衡,并且实现出错fallback机制
注意7: 架构上要支持灰度升级
• 快速开发过程中,要有
• 工程上的考虑:
 – 快速开发,错误难免,避免全站影响
 – 可做业务比较,尤其让内部员工dogfood最新功能
 – 可打不同程度的流量和做dark launch
• 我们的实现:
 – 前端快速接入,不含/少含业务逻辑
 – 业务通过前端后,根据ip/白名单/参数里uid/cookie得到
   相应的服务partition
 – uid白名单定义preview partition给内部员工服务
 – 基于uid range定义一系列的partition做灰度,诸层次的
   升级
注意8: 一开始就要考虑安全机制
• 用户身份认证/授权/数据泄露/防篡改
• 工程上的考虑:
 – 避免见光死
Q&A
互联网服务的研发 米聊服务器技术选型与架构设计

More Related Content

Similar to 互联网服务的研发 米聊服务器技术选型与架构设计

20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)
20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)
20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)Chris Huang
 
App狂潮來襲!你做好準備了嗎?
App狂潮來襲!你做好準備了嗎?App狂潮來襲!你做好準備了嗎?
App狂潮來襲!你做好準備了嗎?Ryan Chung
 
卓望通讯2010年2月总第30期
卓望通讯2010年2月总第30期卓望通讯2010年2月总第30期
卓望通讯2010年2月总第30期shikelou
 
History of share
History of shareHistory of share
History of shareaido Cho
 
20170108 微軟大數據整合解決方案- cortana intelligence suite
20170108 微軟大數據整合解決方案- cortana intelligence suite20170108 微軟大數據整合解決方案- cortana intelligence suite
20170108 微軟大數據整合解決方案- cortana intelligence suiteMeng-Ru (Raymond) Tsai
 
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線Yi-Wei Lai
 
數位廣告的血淚進化 20150714
數位廣告的血淚進化 20150714數位廣告的血淚進化 20150714
數位廣告的血淚進化 20150714Ruby Kuan 關芸如
 
CRE-036-創新價值服務的開發模式
CRE-036-創新價值服務的開發模式CRE-036-創新價值服務的開發模式
CRE-036-創新價值服務的開發模式handbook
 
开发平台大机会—蒋涛
开发平台大机会—蒋涛开发平台大机会—蒋涛
开发平台大机会—蒋涛Smile
 
Jiazi chen design work
Jiazi chen design workJiazi chen design work
Jiazi chen design workjiazi
 
互联网产品设计体会
互联网产品设计体会互联网产品设计体会
互联网产品设计体会Bing Li
 
国产软件的真正创新何时到来 -胡才勇
国产软件的真正创新何时到来 -胡才勇国产软件的真正创新何时到来 -胡才勇
国产软件的真正创新何时到来 -胡才勇Steven Cheng
 
05 朱近之 ibm云计算解决方案概览 0611
05 朱近之 ibm云计算解决方案概览 061105 朱近之 ibm云计算解决方案概览 0611
05 朱近之 ibm云计算解决方案概览 0611ikewu83
 
How to build a community in a company blue&macpaul coscup2015
How to build a community in a company blue&macpaul coscup2015How to build a community in a company blue&macpaul coscup2015
How to build a community in a company blue&macpaul coscup2015Macpaul Lin
 
Government Digital Service 英國政府數位服務策略及設計準則(蔡明哲)
Government Digital Service 英國政府數位服務策略及設計準則(蔡明哲)Government Digital Service 英國政府數位服務策略及設計準則(蔡明哲)
Government Digital Service 英國政府數位服務策略及設計準則(蔡明哲)codefortomorrow
 
成為一個好產品經理的人格特質 rubykuan
成為一個好產品經理的人格特質    rubykuan成為一個好產品經理的人格特質    rubykuan
成為一個好產品經理的人格特質 rubykuanRuby Kuan 關芸如
 

Similar to 互联网服务的研发 米聊服务器技术选型与架构设计 (20)

20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)
20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)
20090605 行動雲端運算創新應用趨勢探索 大廠觀察(上)
 
滙聚資訊科技業務簡介v1.1
滙聚資訊科技業務簡介v1.1滙聚資訊科技業務簡介v1.1
滙聚資訊科技業務簡介v1.1
 
App狂潮來襲!你做好準備了嗎?
App狂潮來襲!你做好準備了嗎?App狂潮來襲!你做好準備了嗎?
App狂潮來襲!你做好準備了嗎?
 
內容優化
內容優化內容優化
內容優化
 
卓望通讯2010年2月总第30期
卓望通讯2010年2月总第30期卓望通讯2010年2月总第30期
卓望通讯2010年2月总第30期
 
History of share
History of shareHistory of share
History of share
 
20170108 微軟大數據整合解決方案- cortana intelligence suite
20170108 微軟大數據整合解決方案- cortana intelligence suite20170108 微軟大數據整合解決方案- cortana intelligence suite
20170108 微軟大數據整合解決方案- cortana intelligence suite
 
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線
[2019 臺灣雲端大會]使用雲端技術打造快速的 AI 服務上線
 
數位廣告的血淚進化 20150714
數位廣告的血淚進化 20150714數位廣告的血淚進化 20150714
數位廣告的血淚進化 20150714
 
CRE-036-創新價值服務的開發模式
CRE-036-創新價值服務的開發模式CRE-036-創新價值服務的開發模式
CRE-036-創新價值服務的開發模式
 
开发平台大机会—蒋涛
开发平台大机会—蒋涛开发平台大机会—蒋涛
开发平台大机会—蒋涛
 
Jiazi chen design work
Jiazi chen design workJiazi chen design work
Jiazi chen design work
 
个推
个推个推
个推
 
互联网产品设计体会
互联网产品设计体会互联网产品设计体会
互联网产品设计体会
 
国产软件的真正创新何时到来 -胡才勇
国产软件的真正创新何时到来 -胡才勇国产软件的真正创新何时到来 -胡才勇
国产软件的真正创新何时到来 -胡才勇
 
05 朱近之 ibm云计算解决方案概览 0611
05 朱近之 ibm云计算解决方案概览 061105 朱近之 ibm云计算解决方案概览 0611
05 朱近之 ibm云计算解决方案概览 0611
 
20150206 aic machine learning
20150206 aic machine learning20150206 aic machine learning
20150206 aic machine learning
 
How to build a community in a company blue&macpaul coscup2015
How to build a community in a company blue&macpaul coscup2015How to build a community in a company blue&macpaul coscup2015
How to build a community in a company blue&macpaul coscup2015
 
Government Digital Service 英國政府數位服務策略及設計準則(蔡明哲)
Government Digital Service 英國政府數位服務策略及設計準則(蔡明哲)Government Digital Service 英國政府數位服務策略及設計準則(蔡明哲)
Government Digital Service 英國政府數位服務策略及設計準則(蔡明哲)
 
成為一個好產品經理的人格特質 rubykuan
成為一個好產品經理的人格特質    rubykuan成為一個好產品經理的人格特質    rubykuan
成為一個好產品經理的人格特質 rubykuan
 

互联网服务的研发 米聊服务器技术选型与架构设计