腾讯的云计算平台-台风系统简介
腾讯公司-基础架构部
朱会灿
陈峰
大纲
• 云计算 Overview
• 台风平台Overview
• 具体项目介绍
• 应用情况
生活中的云计算
• 手机通讯录备份到云端
–再不担心手机丢失了
• 云存储,云硬盘:
–数据随时随地access。
• 互联网搜索取代图
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
馆
–海量数据存在云端,一个简单的检索,几千台
机器为你服务
云计算平台意义
• 让开发者专注于核心业务
–管理存储和计算,自动数据备份,自动切换机
器
• 更有效利用资源
–资源共享,提高资源利用率。
–资源池:建立大的cluster (1000+ 机器)
• 处理大规模数据更高效
• 节约成本,弹性扩展,方便capacity planning
• 更有效地管理
–统一监控,维护,安全保护
• 权限认证和quota:保证贡献资源者优先使用资源。
挑战
• 安全:
–数据(文件)操作,通讯准入,进程隔离
• Static partition v.s. dynamic allocation
• Virtual Machine, Sandbox, Linux container
– Authentication,Access control
• 公平:
–进程调度,带宽使用
– Quota:存储,计算资源
– Hard limit:CPU, memory
–优先级
大纲
• 云计算 Overview
• 台风平台Overview
• 具体项目介绍
云计算平台作为OS
• 把云计算平台看做一个OS,则我们需要:
–文件系统 (存储系统)
–进程和资源管理系统 (运行程序,管理CPU,
内存,等等)
–权限管理系统 (账户,权限,认证, 等)
–方便开发的系统软件 (数据库等)
–程序开发 APIs (networking, threads, etc)
常规网络应用的项目层次关系
Storage Computing
Naming,
Lock,……
Naming,
Lock,……
Authentication
DBMSDBMS Data Processing
Data
Processing
AppsApps
Network PlatformNetwork Platform
AppsApps AppsApps
台风系统的层次关系
Storage
(XFS)
Computing
(Torca)
Naming,
Lock
(ZooKeeper)
Naming,
Lock
(ZooKeeper)
Authentication
(TAAS)
DBMS
(XCube)
DBMS
(XCube)
Data
Processing
(MapReduce)
Data
Processing
(MapReduce)
AppsApps
Network Platform (Poppy)Network Platform (Poppy)
Apps (Search, Ads, …)Apps (Search, Ads, …) Logs Processing
Logs
Processing
清晰分层
- 模块界面
- 类似于Hadoop,但有
独立的cluster
management system
台风平台特性
私有
- Target 公司内部业务:
搜索,日志处理
- Use Linux Container
兼容性
- 主要采用C++开发,跟
现有的代码无缝整合
- 通过SWIG/JNA等方式
支持了多语言
- 支持Hadoop应用
台风平台目标
高效
-处理大规模数据:
Terabytes of data.
共享
- Cluster 供多
个业务和服务
使用
公平
-贡献资源者
- 优先拿到资
源
- 资源不够时
能抢到资源
安全
-文件读写
-Job提交和控制
-数据库Access
大纲
• 云计算 Overview
• 台风平台Overview
• 具体项目介绍:
– Poppy
– XFS
– Torca
– XCube
– MapReduce
通讯平台
Poppy
•• Poppy Poppy –– 基于基于Protocol BufferProtocol Buffer的的RPCRPC框架框架
Poppy = Protobuf + RPC + HTTP + more
Poppy的主要特性
• 高性能
• 支持多服务器负载均衡
• 支持传输内容压缩,内置压缩策略。
• 支持streaming,可流式分块传输大量数据。
• 支持多语言(Java, Python, PHP,以及任何支
持JSON的语言)
• 支持TNS地址(基于Torca上的Job/Task寻址,
当任务迁移时自动改到新的地址)
Poppy特性:动态profiling
pprof $binary_file http://host:port/
Poppy特性:Web提交
PoppyPoppyPoppyPoppy项目目前使用情况项目目前使用情况项目目前使用情况项目目前使用情况
项目项目项目项目 描述描述描述描述
Typhoon 台风平台所有项目
Cocktail 长尾广告
新网页搜索 新的网页搜索采用Poppy做通讯
其他 社区搜索,网络平台
大纲
• 具体项目介绍:
– Poppy
– XFS
– Torca
– XCube
– MapReduce
业界分布式文件系统
MasterMaster
NodeserverNodeserver NodeserverNodeserver NodeserverNodeserver
GFS
HDFS
Master is bottleneck:
- Huge memory requirement
- Huge requests
- 导致文件个数有限,集群规模有限
XFS架构设计
X F S -Master
X F S -MetaServerX F S -MetaServer X F S -MetaServer
X F S -NodeServer X F S -NodeServer X F S -NodeServer X F S -NodeServer X F S -NodeServer X F S -NodeServer
X F S -S D K
安全性(Safety & Security)
系统性能数据
• 读:从多个nodeserver并发读
• 写:以pipeline 方式同时写到多个nodeserver
• 支持多达5555亿亿亿亿个文件
• 单client读大数据:90M/s
• 单client写大数据:66M/s
文件操作相关函数
• Open: 同步,异步,备份数
• Close
• AsyncRead
• Read
• ReadLine
• AsyncWrite
• Write
• Copy
• Seek
• Tell
• Flush
• LocateData:获取文件的各
数据块所在的机器ip
Move
Rename
AddDir
List
GetMachingFiles
GetSize
Chmod
大纲
• 具体项目介绍:
– Poppy
– XFS
– Torca
– XCube
– MapReduce
With Torca
Service/Job/Task
Job Description File
cmd = /home/user/bin/querycounter
Requirements = server_type==“TS5“
Task_count = 10
CPU = 2
Memory = 2G
Args = …
如何把10101010个数加起来:
- 手工
- task 0 等待其它task 完成,通过网络(文件)收集结果
- 起一个新的job, 只有一个task,读出前面写出的结果,加起来 (service)
Architecture of Torca
Central
manage
r
Central
manage
r
Central
manage
r
Central
manage
r
Central
Manager
SubmitterSubmitter
SubmitterSubmitter
Naming Service
ZooKeeper
Shared File Systen
XFS/NFS
Execute ServerExecute ServerExecute ServerExecute Server Execute ServerExecute ServerExecute ServerExecute Server Execute ServerExecute ServerExecute ServerExecute Server
Execute ServerExecute ServerExecute ServerExecute Server Execute ServerExecute ServerExecute ServerExecute Server Execute ServerExecute ServerExecute ServerExecute Server
SubmitterSubmitter
SubmitterSubmitter
Torca实现
Torca应用
• http://news2.soso.com/
大纲
• 具体项目介绍:
– Poppy
– XFS
– Torca
– XCube
– MapReduce
XCube是什么
• XCube是分布式NoSQL数据库
SQLSQLSQLSQL NoSQLNoSQLNoSQLNoSQL
结构 2 维
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
3维+
操作 SQL 语句 Customized API
存储 按行存储 按列存储
数据模型 ACID XCube支持单行内
atomic ops
Scalability Low High
XCube数据模型
XCubeXCubeXCubeXCube系统架构系统架构系统架构系统架构————子模块设计子模块设计子模块设计子模块设计
XFS
master master
tablet
server1
tablet
servern
Client SDK
XCube shell
Web tools
app1 appn app1 appn
commit_log sstable
…
…
子模块名子模块名子模块名子模块名 功能功能功能功能
Master 负责管理和维护系统当中的
所有TabletServer,以及
表操作和权限验证过程。
Tabletserver 负责组织和管理结构化数
据,提供读、写、扫描、删
除等服务。
Client SDK 提供给用户整个系统的读、
写、扫描、删除等服务的
API。
XCube shell 提供,表操作和少量数据操
作的Shell工具。
Web tools 提供整系统的监控和运维工
具
Torca
Records
Zoo
kee
per
Zoo
kee
per
XCubeXCubeXCubeXCube项目目前使用情况项目目前使用情况项目目前使用情况项目目前使用情况
集群名集群名集群名集群名 已接入应用已接入应用已接入应用已接入应用 使用情况使用情况使用情况使用情况
websearch 网页索引项目 测试数据上表现稳定:
URL table:~1000亿行,
100万亿 cells;100TB 数据
大纲
• 具体项目介绍:
– Poppy
– XFS
– Torca
– XCube
– MapReduce
MapReduce简介
MultiMap
• 用户在一个MapReduce任务中可以指定多个Map
Class,用于对不同格式的文件进行处理。
Mapper1
Mapper2
Mapper3
Reducer
运行时监控
2011年05月 06月 09月 12月 2012年3月
WordCountWordCountWordCountWordCount
100G100G100G100G
WordCountWordCountWordCountWordCount
10T10T10T10T
AnchorInversedAnchorInversedAnchorInversedAnchorInversed
90T90T90T90T
URL Into URL Into URL Into URL Into XCubeXCubeXCubeXCube
200T200T200T200T
MapReduce 数据规模
MapReduce 4月份完成第一个版本开发,5月份成功完成100G数据规模的运算,
2012年初,单次作业运算最大数据规模突破500T。
WOBWOBWOBWOB
500T500T500T500T
MapReduce 成就—TeraSort
MapReduce v0.8版本 TeraSort
BenchMark在445台服务器下面最快
94s完成,我们进入秒杀秒杀秒杀秒杀TTTT级级级级别数据
的时代。
Hadoop目前1440台服务器创造
62s的世界记录,我们继续挑战!
大纲
• 云计算 Overview
• 台风平台Overview
• 具体项目介绍
• 应用情况
Typhoon 系统促进创新
• 自动管理机器和存储:
–开发者只需全力关注功能和产品
• 快速试验成为现实:
– AntiSpam,Click Model,锚文本处理:
• 处理大规模数据。
• 迭代一次:2星期 � 几个小时
– 快速大规模试验成为现实
– 可并行跑几个试验
Cluster部署情况
• 在多地都有cluster部署
• 数据挖掘和处理业务:
• click model,anti-spam: 1星期�几个小时
• Anchor text 反转:2星期 � 12 小时
• 线上服务:
• 基于新架构的新闻搜索 (news2.soso.com)
• 内容广告,统一下载系统,websearch indexing
项目规模
• 100万行源代码,包含大量的测试代码,覆盖率85%
• 70名开发人员
• 历时两年
• 严格的开发
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
和
规范
编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载
• 开发过程中还有CodeReview,构建工具等副产品产
出。
• 还在持续发力中
Q & A