Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,1/9/2017,#,构建多公有云系统部署实践,构建多公有云系统部署实践,1,今天的话题,我们的目标是什么?,实现业务目标过程中遇到了什么问题?,我们是如何思考的?,我们是如何实践的?,我们下一步的计划是什么?,今天的话题 我们的目标是什么?实现业务目标过程中遇到了,2,单数据中心,VMWare环境,宕机4小时,切换云供应商,再次宕机,1,2,单云供应商,宕机6小时,3,4,再找一家云供应商?,我们如何走到这一步?,单数据中心,VMWare环境 切换云供应商123,3,从宕机中学到的几件事(1),供应商SLA不是保证不宕机,而是索赔的依据,SLA,99.95%,$,从宕机中学到的几件事(1)供应商SLA不是保证不宕机,而,4,从宕机中学到的几件事(2),小范围宕机几乎不可避免,1000台服务器,64GB,Mem,24小时无内,存故障,内存颗粒无故障工作,87.6,年,从宕机中学到的几件事(2)小范围宕机几乎不可避免1000,5,从宕机中学到的几件事(3),https:/cloudhar,6,“不宕机是核心需求”,“不宕机是核心需求”,7,“如果一朵云宕机不可避免,那就把应用部署到多个云上”,“如果一朵云宕机不可避免那就把应用部署到多个云上”,8,目标,多数据中心多活,节省成本、可负担的解决方案,在灾难发生的过程中,如果无法达到完全可用,则至少应该保证部分可用:,部分业务功能可用,部分客户业务可用,部分数据可用,尽量少的人工干预,目标部分业务功能可用 尽量少的人工干预,9,Data,App,DataApp,10,App,App,11,App,App,GIT/Ansible,AppAppGIT/Ansible,12,App,App,GSLB,GIT/Ansible,AppAppGSLBGIT/Ansible,13,GIT/Ansible,User,App,User,App,GSLB,301,GIT/AnsibleUserUserGSLB,14,Data,?,Data?,15,Data,master,Data,slave,Master,/,Slave,DataDataMaster /Slave,16,Data,master,Data,slave,Master,/,Slave,App,App,DataDataMaster /SlaveApp,17,Data,master,Data,slave,App,Master,/,Slave,App,(Write),DataDataAppMaster /Slave,18,x,App,Data,slave,Master,/,Slave,App,(Write),Data,master,如果设计目标是随时保持2分数据拷贝,那么slave宕机的情,况下,master应不能写入,xAppMaster /Slave 如果设计,19,Data,master,Data,Master,Master,/,Master,App,App,DataDataMaster /MasterApp,20,需要假定网络可靠(拜占庭将军问题),Master越多越慢,代价越高,不可扩展,适合单数据中心内部,可以用来解决局部故障,跨数据中心则可能需要投入专线,需要假定网络可靠(拜占庭将军问题)适合单数据中心,21,Data,master,Data,Master,Master,/,Master,/,Master,App,App,Data,master,App,DataDataMaster /Master /,22,Master,/,Master,/,Master,D,a,ta,m,aster,D,a,ta,M,aster,A,pp,A,pp,A,pp,D,a,ta,m,aster,1.,允许任意一个站点宕机、断网的情况下保证依然有2个可用站点,2.,可以形成2:1的多数派解决数据不一致的问题,3.,超高的可用性,Master /Master /MasterD,23,实战之:找到合适的云,实战之:找到合适的云,24,不同云的性能,不同云的性能,25,云间的网络,云间的网络,26,最后的选择,最后的选择,27,Master,/,Master,/,Master,D,a,ta,m,aster,D,a,ta,M,aster,A,pp,A,pp,D,a,ta,m,aster,A,pp,公网传输数据(专线成本过高),允许1个云计算数据中心宕机,允许网络传输不稳定,允许时钟不同步,当数据差异发生时可以做到多数票,PAXOS,Master /Master /MasterD,28,D,a,ta,m,aster,D,a,ta,m,aster,D,a,ta,M,aster,a taD a taD a taM asterht,29,Paxos,PG,性能问题,X10,Latency,Paxos PG 性能问题X10 Latency,30,数据分类,常见操作,存储选择,元数据,(用户信息、权限、记账),Create,Read,Update,Delete,PaxosPostgreSQL,资产数据,(云上资源资产信息),Create,Read,Update,Delete,双实例数据库,定期批量复制到从站,资源实际状态定期更新,操作数据,(云上资源的操作日志),Create,Append,Read,OSS和异步复制,数据的分类处理,数据分类常见操作存储选择元数据CreatePaxosPost,31,Slave,Master,Front,Page,Console,A,META,OSS,Slave,Console,C,META,Master,OSS,Slave,Master,Front,Page,Console,B,META,OSS,GSLB,SlaveMasterFront PageOSSSlave,32,Slave,Master,Front,Page,Console,A,META,OSS,Slave,Console,C,META,Master,OSS,Slave,Master,Front,Page,Console,B,META,OSS,GSLB,SlaveMasterFront PageOSSSlave,33,Slave,Master,Front,Page,Console,A,META,OSS,Slave,Console,C,META,Master,OSS,Slave,Master,Front,Page,Console,B,META,OSS,GSLB,SlaveMasterFront PageOSSSlave,34,Slave,META,Master,OSS,Slave,Master,OSS,Slave,META,Master,OSS,Proxy,Proxy,Proxy,META,SlaveMETAMasterOSSSlaveMasterO,35,尚需解决的问题,paxos_pg,事务性的问题,paxos的算法的数据代理?,异地数据中心部署的可能性,10100万量级云资产管理,尚需解决的问题 paxos_pg 事务性的问题 pax,36,总结,故障理所当然发生,打破Dev|Ops的边界,双方共同构建可用性,理解业务目标,按需架构设计,学会妥协,总结 故障理所当然发生 打破Dev|Ops的边界,双方共,37,