阿里云技术动态:Xen漏洞热补丁修复、异地双活、ODPS新功能与金融互联网

专栏三
33
九月来了

本报道对2015年QCon北京大会云计算高可用架构设计与实践专场的内容进行概述。本专场的四位分享者均来自阿里云,分别是阿里云虚拟化技术总监张献涛(旭卿),阿里巴巴数据库专家傅翠云,阿里巴巴ODPS和iDST产品经理韦啸,以及阿里云金融行业资深架构师刘刚。本专场的分享可视为了解阿里云技术现状的渠道。

\u0026#xD;\n\u0026#xD;\n

解析阿里云Xen Hypervisor Hotfix技术

\u0026#xD;\n\u0026#xD;\n

张献涛(旭卿)的分享内容是阿里云在2015年3月对Xen高危漏洞进行热补丁修复的经验。旭卿毕业于武汉大学,信息安全博士,2014年加入阿里云,任资深专家及虚拟化技术总监。之前曾供职于英特尔开源技术中心,是Xen、KVM等多个开源虚拟化项目的主要贡献者。目前正在主持阿里云弹性计算虚拟化架构的设计和研发工作。

\u0026#xD;\n\u0026#xD;\n

2015年3月10日,Xen社区安全团队公开披露了高危漏洞XSA-123,该漏洞可能导致一台Guest VM读取到其他Guest VM的敏感数据。由于此漏洞对公有云服务的影响重大,各个公有云厂商分别对此漏洞进行了重启修复或热补丁修复,其中,阿里云就是使用了热补丁修复的方式,在没有造成用户主机下线的情况下完成了整个系统的修复。

\u0026#xD;\n\u0026#xD;\n

Xen发布十多年以来总共公开发布了125个漏洞报告,其中影响最大的可以说是两个:一个是去年的XSA-108,一个可能导致hypervisor内存泄露的漏洞;另一个就是今年3月10日公布的XSA-123这个漏洞,可能导致客户机提权访问到其他客户机的数据。

\u0026#xD;\n\u0026#xD;\n

阿里云从Xen安全团队接到XSA-123的漏洞通报是在2月28日,是个星期六,按照惯例该漏洞会在10日之后公开,因此阿里云有10天的时间修复此漏洞。第二天也就是3月1日开始分析这个漏洞,在3月2日确定该漏洞为高危并提出两个修复的方向,打冷补丁重启生效,或者热补丁不重启生效。

\u0026#xD;\n\u0026#xD;\n

内核热补丁并不是新技术,hotfix有很多成熟的方案,比如Oracle的Ksplice,SUSE的Kgraft,红帽的Kpatch,阿里的AliHotfix,另外在Linux 4.0内核开始,对hotfix已经有原生支持,所以已经是很成熟的一个技术。但是虚拟机的热补丁修复要比单纯的内核修复更加复杂。为什么呢?内核hotfix的基本原理是基于函数动态替换技术,补丁(即新函数)会以模块内函数的形式链接入内核,旧函数的第一个指令改成强制跳转指令指向新函数。这个替换的过程需要暂停所有CPU,切到一个内核线程并关闭本地中断,然后刷新指令缓存,重新让CPU恢复执行。这个过程的特点是内核有pre-defined接口,hotfix过程有权访问内核内存并插入内核Module进行函数级别的替换,而且因为是由CPU执行指令,要修复函数的位置是比较容易确定的。但是,Xen作为Type I hypervisor,其内存是被严格隔离的,管理员可访问的区域只有Dom0,而不能直接访问Xen Hypervisor的区域;而且Xen Hypervisor被装载的地址是动态的。Xen Hypervisor也不支持module插入,无法进行函数级别的替换。而且对于在线运行的云服务而言,如阿里云是2009年就上线运行,那时候并没有预留hotfix的接口。

\u0026#xD;\n\u0026#xD;\n

3月2日下午,阿里云团队确认了hotfix的基本思路,就是利用硬盘设备读文件的DMA请求,截获这个请求,把补丁信息传入,修改DMA目的地址,以将补丁信息写入Xen Hypervisor的内存。3月5日晚,第一版hotfix开始测试,测试发现有万分之三的宕机率,于是继续优化。3月6日晚发布的第二版hotfix方案测试结果很好,完全没有宕机,就灰度发布到部分线上机器上,在3月7日、8日观察了两日,没有检测到问题。于是3月9日阿里云给用户发布公告,同时开始给线上机器批量应用补丁,到3月10日发布完毕,同日漏洞公开。

\u0026#xD;\n\u0026#xD;\n

张献涛从整个修复过程总结了一个经验,就是云计算是系统工程,并不是开发大牛就能够解决一切问题的,而是需要开发、运维、测试、安全多个团队紧密合作,这很重要。

\u0026#xD;\n\u0026#xD;\n

异地双活数据架构基础设施DRC

\u0026#xD;\n\u0026#xD;\n

傅翠云(延瑛)分享的话题是阿里巴巴的异地双活数据中心DRC。傅翠云在2008年加入Oracle,曾任Berkeley DB的高级软件工程师,从事Berkeley DB数据库和高可用内核开发。2013年加入阿里巴巴数据库技术团队,任数据库专家,目前负责数据流产品DRC,参与了2014年阿里巴巴双十一交易异地双活数据同步和订阅、RDS迁移上云服务、七网隔离跨域同步、性能分析和优化、数据校验、链路优化等。

\u0026#xD;\n\u0026#xD;\n

所谓异地双活主要关注两件事,一个数据同步,一个数据分发。阿里异地双活数据架构基础设施DRC目前已经正式上线在RDS产品,现在RDS官网已经有了数据迁移的功能,另外也在公测更多服务。

\u0026#xD;\n\u0026#xD;\n

到底怎样的应用会需要异地的双活?比较常见的场景有三个。

\u0026#xD;\n\u0026#xD;\n
  1. 两个地域或多个地域都有大量用户的场景,比如在中国的用户希望他们用杭州的RDS服务,在美国的用户用美国RDS服务,这就需要数据在异地同步。很多游戏、金融、传媒、电商业务都有这种需求。满足这个需求的难点主要在于跨地域的网络,比如网络延时长,丢包多,而且数据在公网传输会有数据泄漏风险。\u0026#xD;\n\t
  2. 数据来源较多,需要接入各种异构数据的场景。比如一个应用需要从ODPS、RDS、OTS、OceanBase、PostgreSQL这几个服务接入数据,它们的数据结构和接口都不同 ,这种接入的成本会比较高。因此另一个可用的方法是数据写入的时候就一份多写为不同数据结构。\u0026#xD;\n\t
  3. 下游订阅很多的情况,比如一份数据,备份系统、通知系统、大数据分析系统、索引系统等等都要来取,如果用上面一份数据多写的方案是可以应对的,但这里还有其他难点,就是数据一致性、可扩展性、跨网同步稳定性、以及同步的实时性。\u0026#xD;\n

所谓DRC,就是Data Replication Center的缩写,数据复制中心。这种复制是同步的,支持异构的,高可用的(有严格容灾系统,实时性好),支持订阅分发的。

\u0026#xD;\n\u0026#xD;\n

以前在一个城市做双机房主备,两个机房是数据对等的,写入是随机分布,然后通过主备HA进行数据同步。这样机房对等的思路会导致业务增长、数据增长只能通过两个机房不停堆机器来解决。另一方面,如果整个城市断电,那么双活就成了双死。下一个思路是做跨城市,早期常用的做法是一个城市写,另一个城市冷备,就是晚上做同步,但这就意味着白天如果发生了什么事儿,这一天的数据就比较危险。另一个思路是两个城市多写,数据落两边,这样的问题是应用调用次数频繁的话,如果调用异地数据多来那么一两次,整个应用的延时就很长。这个思路再进一步发展,就是做单元内封闭以减少异地调用,这就涉及到业务上的改造。

\u0026#xD;\n\u0026#xD;\n

顺着这个思路,阿里的异地双活重点做了几件事。一个是热插拔,可以做到在业务高峰时增加节点,高峰过了把增加的节点关闭。做到这个的一个关键是流量实时切换,DRC可以在20秒以内把一个单元(region)的流量迁移到另一个单元。另一个是数据实时恢复,就是通过一定的冗余设计,一旦一个单元挂掉了,可以在另一个单元做全量恢复。

\u0026#xD;\n\u0026#xD;\n

2014年双十一,这套异地双活系统处理的规模是,抓取了约100TB的实时数据量,给17000多个实时下游提供了最高每秒30GB的数据量。2014年期间DRC已经覆盖了超过50%的新增RDS实例。

\u0026#xD;\n\u0026#xD;\n

云端PB数据引擎ODPS

\u0026#xD;\n\u0026#xD;\n

韦啸分享的主题是他们在ODPS上做的一些平台服务性质的事情。韦啸(龙场),阿里巴巴ODPS和iDST产品经理,中国科学技术大学量子通信硕士,普渡大学计算物理硕士,密西根大学信息学硕士。阿里巴巴ODPS和iDST产品经理。曾任职微软Windows、Surface、Bing产品经理,获微软GoldStar奖和Hackday Winnner等。

\u0026#xD;\n\u0026#xD;\n

韦啸是几个月前加入的ODPS,最近迁移到新团队iDST,即数据科学研究院,该团队跟ODPS团队协作一个叫做阿里PAI的产品,以期用更加友好的方式帮助阿里云客户运用自己的数据。

\u0026#xD;\n\u0026#xD;\n

ODPS目前处理的数据量已经到EB级别,数据增长越快意味着成本越高。目前ODPS已经可以做到单集群15000台服务器的规模,在这个规模下保持20%以下的性能损耗。而单个ODPS的部署则可以多集群部署100万台以上的规模,当然这会有更大的性能损耗,对网络和灾备环境有更多依赖。支持异地。

\u0026#xD;\n\u0026#xD;\n

使用上有几个特点:

\u0026#xD;\n\u0026#xD;\n
  • 多租户复用同一个物理集群,可以设定不同的分配策略,比如按照比例分配,或者按照申请次序分配,或者按照优先级排队\u0026#xD;\n\t
  • 所有计算任务都在沙箱,数据不外流\u0026#xD;\n\t
  • 支持存储计算压缩,支持各种通用压缩格式,RAID导出可以直接做到1:1.5的比例\u0026#xD;\n\t
  • 支持行存储和列存储,可以高效执行列优先的SQL\u0026#xD;\n

ODPS现在支持的计算引擎大致如下:

\u0026#xD;\n\u0026#xD;\n

SQL和MapReduce,编程模型简单,适合流水线作业。离线SQL的性能优于HIVE,准实时SQL中间数据不落盘性能优于TEZ。

\u0026#xD;\n\u0026#xD;\n

图计算引擎,使用上类似Pregel,对于PageRank或者标签传播这种场景是很高效的算法。计算规模支持最大41亿顶点数,300亿边数,120万迭代次数,6千亿发送消息量。

\u0026#xD;\n\u0026#xD;\n

R,适合处理GB级别的小数据。

\u0026#xD;\n\u0026#xD;\n

MPI(message passing interface),科研界流行的引擎。支持数据切片,子进程计算,上传超步。MPI是内存计算,适合迭代多的算法。

\u0026#xD;\n\u0026#xD;\n

Parameter Server参数服务器计算框架,这个是今年在开发的,支持超大模型,不仅对数据分片,也对模型分片,以应对模型数量超过机器内存的场景。

\u0026#xD;\n\u0026#xD;\n

以上是ODPS的硬能力。为了将这些能力如何更好的开放,iDST团队在上层做了阿里PAI算法平台,预计将在今年5月为天池算法大赛的选手们提供支持。

\u0026#xD;\n\u0026#xD;\n

国内顶尖金融机构IT架构转型解密

\u0026#xD;\n\u0026#xD;\n

最后一场,刘刚分享的话题是余额宝、三马保险等IT转型案例。刘刚(法华),阿里云金融行业资深架构师,阿里金融云创始团队成员,是“三马保险”、“余额宝”等相关金融机构上云的主要负责人和架构师。目前致力于打造中国金融行业基础设施,推动互联网金融生态的发展。

\u0026#xD;\n\u0026#xD;\n

金融公司、保险公司与互联网结合,是极大的发展机会,面临的问题也很多,首先要安全合规,其次是交易处理能力要跟上(每秒万级并发),然后是数据分析处理能力,最后还有高可靠、高可用、敏捷开发和运维的能力。刘刚介绍了传统系统改造上阿里云的架构调整过程,涉及到系统和数据的拆分,数据分库分表,应用系统的无状态化,核心业务和复杂业务的分级处理等。

\u0026#xD;\n\u0026#xD;\n

本专场的现场视频会于近期发布在InfoQ中文站视频演讲专区,感兴趣的朋友们可以多关注!

相关推荐
<p> <b><span style="font-size:14px;"></span><span style="font-size:14px;background-color:#FFE500;">【Java面试宝典】</span></b><br /> <span style="font-size:14px;">1、68讲视频课,500道大厂Java常见面试题+100个Java面试技巧与答题公式+10万字核心知识解析+授课老师1对1面试指导+无限次回放</span><br /> <span style="font-size:14px;">2、这门课程基于胡书敏老师8年Java面试经验,调研近百家互联网公司及面试官的问题打造而成,从筛选简历和面试官角度,给出能帮助候选人能面试成功的面试技巧。</span><br /> <span style="font-size:14px;">3、通过学习这门课程,你能系统掌握Java核心、数据库、Java框架、分布式组件、Java简历准备、面试实战技巧等面试必考知识点。</span><br /> <span style="font-size:14px;">4、知识点+项目经验案例,每一个都能做为面试的作品展现。</span><br /> <span style="font-size:14px;">5、本课程已经在线下的培训课程中经过实际检验,老师每次培训结束后,都能帮助同学们运用面试技巧,成功找到更好的工作。</span><br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><b>【超人气讲师】</b></span><br /> <span style="font-size:14px;">胡书敏 | 10年大厂工作经验,8年Java面试官经验,5年线下Java职业培训经验,5年架构师经验</span><br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><b>【报名须知】</b></span><br /> <span style="font-size:14px;">上课模式是什么?</span><br /> <span style="font-size:14px;">课程采取录播模式,课程永久有效,可无限次观看</span><br /> <span style="font-size:14px;">课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化</span><br /> <br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><strong>如何开始学习?</strong></span><br /> <span style="font-size:14px;">PC端:报名成功后可以直接进入课程学习</span><br /> <span style="font-size:14px;">移动端:<span style="font-family:Helvetica;font-size:14px;background-color:#FFFFFF;">CSDN 学院APP(注意不是CSDN APP哦)</span></span> </p>
<p> <span style="color:#337FE5;"><strong>【为什么还需要学习C++?】</strong></span> </p> <p style="margin-left:0cm;"> 你是否接触很多语言,但从来没有了解过编程语言的本质? </p> <p style="margin-left:0cm;text-align:start;"> 你是否想成为一名资深开发人员,想开发别人做不了的高性能程序? </p> <p style="margin-left:0cm;text-align:start;"> 你是否经常想要窥探大型企业级开发工程的思路,但苦于没有基础只能望洋兴叹? </p> <p style="margin-left:0cm;text-align:start;">   </p> <p style="margin-left:0cm;text-align:start;"> 那么C++就是你个人能力提升,职业之路进阶的不二之选。 </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p style="margin-left:0cm;"> <strong><span style="color:#337FE5;">【课程特色】</span></strong> </p> <p style="margin-left:0cm;text-align:start;"> 1.课程共19大章节,239课时内容,涵盖数据结构、函数、类、指针、标准库全部知识体系。 </p> <p style="margin-left:0cm;text-align:start;"> 2.带你从知识与思想的层面从0构建C++知识框架,分析大型项目实践思路,为你打下坚实的基础。 </p> <p style="margin-left:0cm;text-align:start;"> 3.李宁老师结合4大国外顶级C++著作的精华为大家推出的《征服C++11》课程。 </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p class="ql-long-24357476"> <span style="color:#337FE5;"><strong>【学完后我将达到什么水平?】</strong></span> </p> <p class="ql-long-24357476"> 1.对C++的各个知识能够熟练配置、开发、部署; </p> <p class="ql-long-24357476"> 2.吊打一切关于C++的笔试面试题; </p> <p class="ql-long-24357476"> 3.面向物联网的“嵌入式”和面向大型化的“分布式”开发,掌握职业钥匙,把握行业先机。 </p> <p class="MsoNoSpacing" style="margin-left:18pt;"> <br /> </p> <div> <br /> </div> <p> <br /> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#337FE5;"><strong>【面向人群】</strong></span> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#222226;font-family:PingFangSC-Regular, "font-size:14px;background-color:#FFFFFF;">1.希望一站式快速入门的C++初学者;</span> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#222226;font-family:PingFangSC-Regular, "font-size:14px;background-color:#FFFFFF;">2.希望快速学习 C++、掌握编程要义、修炼内功的开发者;</span> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#222226;font-family:PingFangSC-Regular, "font-size:14px;background-color:#FFFFFF;">3.有志于挑战更高级的开发项目,成为资深开发的工程师。</span> </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p> <br /> </p> <p> <span style="color:#337FE5;"><strong>【课程设计】</strong></span> </p> <p> 本课程包含3大模块 </p> <p> <strong>基础篇</strong><br /> 本篇主要讲解c++的基础概念,包含数据类型、运算符等基本语法,数组、指针、字符串等基本词法,循环、函数、类等基本句法等。 </p> <p> <br /> <strong>进阶篇</strong><br /> 本篇主要讲解编程中常用的一些技能,包含类的高级技术、类的继承、编译链接和命名空间等。 </p> <p> <br /> <strong>提升篇:</strong><br /> 本篇可以帮助学员更加高效的进行c++开发,其中包含类型转换、文件操作、异常处理、代码重用等内容。 </p> <p> <img src="https://img-bss.csdnimg.cn/202007091130239667.png" alt="" /> </p>
android开发期末大作业(项目源码,任务书,实验大报告,apk文件) 大作业的要求和内容:(包括题目选择范围、技术要求、递交时间、考核方法等) 一、实验项目名称 Android手机应用开发课程大作业 二、实验目的 1.通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用课堂上所学的Android手机应用开发知识。 2.为学生综合应用本专业所学习的多门课程知识(例如,软件工程、数据库、Java语言、Java Web开发等)创造实践机会。为学生提供主动学习、积极探索与大胆创新的机会。 3.掌握Android手机应用设计的方法与技巧。 三、实验内容及要求 1、设计内容 题目、设计内容自拟,工作量适中,要求学生应用课程所学知识,采用JAVA语言和Android手机应用开发技术实现一个完整的系统。 ①完成大作业报告。 ②实现各系统功能,并完成调试运行。 2、主要技术 采用Java语言并不仅限于Java语言实现系统。 开发环境与工具:Android Studio 3.2以上版本; 操作系统:Win7/Win10或其他; 4、设计成果: 材料上交:电子文档(大作业任务书+大作业报告+源代码,电子稿请刻在光盘上)、打印稿(大作业任务书+大作业报告)。 四、成绩评定: 考核标准包括: 1、选题的工作量,难度和新颖程度 2、系统架构设计是否良好,运行过程是否报错 3、界面设计的合理性和美观程度 4、基本功能的实现 分值60 (包括布局、组件、Activity、Intent等使用) 数据存储的使用 分值10 网络功能 分值10 Service、ContentProvider或BroadCastReceiver等的使用 分值10 附加分: 图形图像处理、多媒体处理等 分值10 5、考核方式为面对面答辩,在课程的后两周内集中进行。
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:白松林 返回首页
实付 29.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值