第1页
构建多公有云系统部署实践
上海曙安数据服务有限公司 叶向宇
第2页
2016-4-22
第3页
关于我
• 过去:
• 联想集团服务器事业部 • 微软中国技术中心 • 惠普中国技术中心 • 微软云计算事业部
• 现在:
• 上海曙安数据服务有限公司 • VC3多云管理平台架构师
第4页
今天的话题
• 我们的目标是什么? • 实现业务目标过程中遇到了什么问题? • 我们是如何思考的? • 我们是如何实践的? • 我们下一步的计划是什么?
第5页
• 单数据中心,VMWare环境 • 宕机4小时
• 单云供应商 • 宕机6小时
• 切换云供应商 • 再次宕机
3 4
• 再找一家云供应商???
我们如何走到这一步?
第6页
从宕机中学到的几件事(1)
SLA <99.95% $$
• 供应商SLA不是保证不宕机,而是索赔的依据
第7页
从宕机中学到的几件事(2)
1000台服务器
64GB Mem
24小时无内 存故障
内存颗粒无故障工作
= 87.6 年
• 小范围宕机几乎不可避免
第8页
从宕机中学到的几件事(3)
https://cloudharmony.com/status-of-compute
• 大范围宕机发生可能性依然存在
第9页
“不宕机是核心需求”
第10页
“如果一朵云宕机不可避免 那就把应用部署到多个云上”
第11页
目标
• 多数据中心多活 • 节省成本、可负担的解决方案 • 在灾难发生的过程中,如果无法达到完全可用,则至少应该保证部分可用:
• 部分业务功能可用 • 部分客户业务可用 • 部分数据可用
• 尽量少的人工干预
第12页
App
Data
第13页
App
第14页
App App
GIT/Ansible
第15页
GSLB
App App
GIT/Ansible
第16页
GSLB
User App
User App
GIT/Ansible
第17页
Data
?
第18页
Master / Slave
Data
master
Data
slave
第19页
Master / Slave
App
Data
master
App
Data
slave
第20页
Master / Slave
App
(Write)
Data
master
App
Data
slave
第21页
Master / Slave
App
(Write)
Data
master
App
xData
slave
• 如果设计目标是随时保持2分数据拷贝,那么slave宕机的情 况下,master应不能写入
第22页
Master / Master
App
Data
master
App
Data
Master
第23页
• 需要假定网络可靠(拜占庭将军问题) • Master越多越慢,代价越高,不可扩展 • 适合单数据中心内部,可以用来解决局部故障 • 跨数据中心则可能需要投入专线
第24页
Master / Master / Master
App App
App
Data
master
Data
master
Data
Master
第25页
Master / Master / Master
App App
A pp
D a ta
m a ste r
D a ta
m a ste r
D a ta
M a ste r
1. 允许任意一个站点宕机、断网的情况下保证依然有2个可用站点 2. 可以形成2:1的多数派解决数据不一致的问题 3. 超高的可用性
第26页
实战之:找到合适的云
第27页
不同云的性能
第28页
云间的网络
第29页
最后的选择
第30页
Master / Master / Master
A pp
D a ta
m a ste r
A pp
D a ta
m a ste r
A pp
D a ta
M a ste r
• 公网传输数据(专线成本过高) • 允许1个云计算数据中心宕机 • 允许网络传输不稳定 • 允许时钟不同步 • 当数据差异发生时可以做到多数票
PAXOS
第31页
Paxos PG数据库
D a ta
m a ste r
Proprose (N, V)
Accept(N, V) or
Accept(N’, V,’ ) or
Deny
Choose (N, <V|V’>)
D a ta
m a ste r
D a ta
M a ste r
Propose
https://github.com/citusdata/pg_paxos https://www.youtube.com/watch?v=WX4gjowx45E
Accept
Choose
第32页
Paxos PG 性能问题
X10 Latency
第33页
数据的分类处理
数据分类
元数据 (用户信息、权限、记账)
资产数据 (云上资源资产信息)
操作数据 (云上资源的操作日志)
常见操作
Create Read Update Delete
Create Read Update Delete
Create Append Read
存储选择
Paxos PostgreSQL
双实例数据库 +
定期批量复制到从站 +
资源实际状态定期更新
OSS和异步复制
第34页
Front Page Console A
META
Master
Slave
OSS
GSLB
Console C
META
Master
Slave
OSS
Front Page Console B
META
Master
Slave
OSS
第35页
Front Page Console A
META
Master
Slave
OSS
GSLB
Console C
META
Master
Slave
OSS
Front Page Console B
META
Master
Slave
OSS
第36页
Front Page Console A
META
Master
Slave
OSS
GSLB
xConsole C META
Master
Slave
OSS
Front Page Console B
META
Master
Slave
OSS
第37页
META
Master
Slave
OSS
Proxy
Proxy
META
Master
Slave
OSS
Proxy
META
Master
Slave
OSS
第38页
尚需解决的问题
• paxos_pg 事务性的问题 • paxos的算法的数据代理??? • 异地数据中心部署的可能性 • 10~100万量级云资产管理
第39页
总结
• 故障理所当然发生 • 打破Dev|Ops的边界,双方共同构建可用性 • 理解业务目标,按需架构设计 • 学会妥协
第40页
VC3云管家 跨平台、智能化管理运维 让所有云轻松用、易管理 Make Cloud Work for You
WWW.VC3MARKET.COM