开源大熊 2019-03-11
近日, 国际开源界顶级会议LC3(LinuxCon + ContainerCon + CloudOpen)首次在国内举行,阿里云首席架构师唐洪作为特邀嘉宾出席并发表主题演讲。唐洪首先从一组数字开始,回顾了阿里云历史及重大技术突破时间点;第二部分主要分享了阿里云目前的技术架构和亮点,以及在此基础上形成的广泛的阿里云产品生态;第三部分重点讲述了阿里云和开源社区的合作及进展,特别是阿里云在广义的虚拟化技术领域的历程,及在开源社区取得的成绩;最后还展望了阿里云在容器和异构计算安全等方向上未来的目标。唐洪认为,通过坚定对开源技术的拥抱和合作,阿里云的技术和社区更具生命力,能够更有效地支撑阿里云业务和生态的发展。
下面是基于唐洪英文演讲的摘要译稿:
大家好!今天很荣幸给大家介绍一下阿里云的历史,以及我们现在使用的技术。首先,我给大家分享一些阿里云的数据:阿里云成立于2009年9月10日;在两年之后的2011年7月28日,我们的官网正式上线并发布我们第一个产品ECS;在最近的八个季度里面,阿里云的营收保持了三位数的YoY增长。今天阿里云占据了中国云计算的绝对份额。我们有87万付费客户,到2017年的时候,我们年收入已达到66亿人民币,相当于近10亿美金。
这些数字背后是我们的核心技术-飞天(Apsara),现在我们来看一下 Apsara的发展历史。2009年初我们开始研发这个云计算的底层操作系统,当时称它为飞天(Apsara);2010年8月27日,飞天成为了阿里巴巴集团内部的云基础设施,在这个云基础设施之上我们开始支持一些业务应用,包括全网搜索,网络邮箱,还有图片储存和微贷支付(当时该业务还在阿里巴巴集团下,现在已经单独拆分为蚂蚁金服集团)。
第三部分, 2013年8月15日,我们发布了飞天集群5K项目,为什么叫5K呢,因为就是要突破集群中五千台服务器这个技术瓶颈,这也让阿里巴巴成为国内第一个独立研发和拥有大规模通用计算集群平台的公司。因为在2009年的时候,当时我们知道Google的单服务器集群管理的最大节点数大约是5000。所以这就是为什么我们觉得需要设定5K这么一个非常具有挑战性的目标,就是在技术上,我们的计算集群至少要做到5000个节点的量级。最开始我们计划是在2010年年底达到这个目标,但是事实证明实现过程比我们想象的难的多,直到三年后我们才真的实现了。
那么在实现这个目标的一段时间之后,我们设定的新的技术里程碑就是,除了要掌握这种基础技术之外,我们的系统还应该比其他系统做的更好。所以在2015年的Sort Benchmark排序竞赛上, 阿里云用不到7分钟(377秒)就完成了100TB的数据排序,这在当时打破了世界纪录。
再下来这个展示的里程碑,这并不能说是一个技术上的里程碑,主要是社区和开发者生态建设方面的。从2011年开始,我们举办各种阿里云开发者相关会议,到2016年我们已经办了六届,从这些数字里我们看到,我们总共有超过四万名开发者参加了我们的线下会议,超过700万的观众在线观看了我们的云栖大会。
那么问题来了,现在阿里云究竟是什么样的一个规模和状态?我们到底做了哪些技术上的创新?下图我们看到的是一个规模迅速扩张的阿里云基础设施分布图,它是什么样的呢?首先,我们数据中心是按照地域来组织,尤其是在具体地区里边有这样一个网络,我们管它叫做Transfer network转移网络。另外,还有一个骨干网络,这是一个数据中心之间的网络,我们怎么样和用户,用户如何和我们数据中心进行连接的这样一个骨干网。
今天的阿里云数据中心可用地区全球分布,在大陆我们有6个地区,华北区3个,华南区1个,还有华东区两个,此外我们还有11个海外地区,分布在北美、欧洲和东南亚等地;另外我们有超过600个PoP节点,总共20TB/s的带宽处理能力。下面这张幻灯片显示出我们阿里飞天超大规模云计算操作系统的架构图,最底层的就是我们各个地区的数据中心。
在数据中心之上我们还有四个红框标准出来的模块,这些是构建分布式系统的最基础的组件,比如说分布式协同,还有安全管理,日志收集、监控、预警、追踪、诊断等等都在这一层。在这层之上,我们有两大系统,其中一个叫做盘古,负责存储管理,另一个叫伏羲,负责分布式的资源管理。实际上通过这两大管理系统,所有的数据中心里的计算、存储和网络等资源都可以作为统一的资源,进行调度、管理和存储等操作。在右面还有一个叫天基,负责基础设施管理和服务管理,大家可以看到,这是飞天系统里非常底层但也是非常重要的一部分,因为它实际上上面连接应用层,下面管理最底层的数据中心等硬件设备。所以它的重要性就是负责服务部署,扩展及服务器监控等,比如一些服务器有问题的时候,可以迅速找到并马上关掉它,然后下线分离它并把它单独处理。
然后,在这个红色的基础设施管理和资源管理层之上,就是我们的租户管理系统,主要有认证,还有授权、监控和计费等功能。在这之上,则是打包好的各种应用系统服务和调用,包括四大类:计算、存储、数据库和网络;另外还有各种中间件、服务协同及Serverless 计算等;此外我们还提供一些高级的服务功能,包括各种数据智能化服务,比如BI、AI和机器学习等,另外还有一些安全的服务。再上边那些橘黄框里的功能,实际上是提供数据交互服务的,比如说数据迁移,数据库同步,还有内容分发(CDN),还有高速通道,这是构建混合云的核心组件,能够让租户的自有机房和他们在云上的虚拟私网打通 。
最后,大家可以把最上面绿色的那部分看作云的应用层,我们管它叫做“云市场”。我们把这个Apsara称作为一个超大规模的云计算操作系统,之所以叫做操作系统的原因就是,实际上Apsara和一个单机的PC操作系统其实是很相似的。 最底层都是硬件,红的那层对应的是内核,在内核之上,今天所有的PC都是多用户的,有账户管理模块。 所有的这些蓝色的云服务对应于一个PC操作系统的系统调用、系统服务和原生应用。最后大多数的现代的操作系统,都有一个应用(Apps)商店。
接下来,我想简单地介绍一下阿里云飞天操作系统Apsara的设计亮点。首先,Apsara的目标是建立一个通用型的计算平台,在这个平台上各种不同的应用和关键应用都可以跑起来,无论是低延迟任务还是批处理任务,我们需要这么一个混合型的计算平台来运行所有的这些应用。第二,在2013年达到5K目标后,我们并没有止步,今天Apsara Cluster集群管理超过1w个节点,超过上百PB的存储,以及10万CPU核心。在整个的Apsara的设计过程中,我们从设计上就确保系统不会出现单点故障,且保证高于99.95%的服务可用性。另外,Apsara所有的数据存储都是默认三重备份,其中数据可用性达到10个9的水平,另外Apsara系统所有的监控、诊断和部署都是完全分布式的。最后,飞天安全管理嵌入在飞天内核最底层,并且使用基于权能的安全管理框架,真正有效实施“最小化权限”原理。我们管它叫做最低TCB(可信基),通过基于最小可信基原则,我们构建一个安全的系统 。
我想对5K再展开说一下 。大家知道在这个世界上并没有那么多的商业化集群系统能够达到5K规模的。所以这个规模对于阿里云来说是非常重要的。另外在阿里巴巴集团内部,因为有了5K,Apsara在规模上第一次超过了Hadoop集群,所以我们决定将内部更多原先放在Hadoop平台上进行的数据处理统一到飞天平台上面,这就是“登月计划”,将阿里巴巴所有的核心业务的数据处理迁移到Apsara平台上面运行。2014年7月1号MaxCompute正式对外开放,这是一个基于Apsara计算能力的平台,这也标志着阿里巴巴成为世界上第一家对外公开提供5K处理能力的公司。很多公司可能有这样一个计算能力,但从来没有把它当作公共服务开放给社会。
另外,5K能力的对外提供公共服务,以及对这种技术的掌控,带来的影响力超出了我们的想象,我给大家一个例子。在MaxCompute正式发布之前我们举办了一个天池大赛,赛题主要是将阿里巴巴真实业务场景数据通过脱敏后提供出来,让参赛队伍来预测未来产品的销量。这次天池数据大赛居然吸引超过7000个来自全球各地的团队参加,甚至其中351个团队是来自于中国大陆以外。而这样的比赛在其他会议上也有,比如KDD上也曾举办过,但参赛队伍数量远低于此,这是非常令人惊喜的。
接下来这一页PPT,可以显示出我们产品系列的全面性。因为时间原因,我就不细说了。
接下来我想说一下阿里云虚拟化技术的进展,我这里并不会讲广泛意义和通常意义上的虚拟化,我将从三个方面来讲,主要分为资源隔离、服务器虚拟化和容器技术。
在讲虚拟化技术之前,我先说一下开源操作系统Linux在阿里巴巴的情况,当前阿里云所有的物理服务器都运行着Linux操作系统,比如Fedora、CentOS等发行版;另外,2011年阿里巴巴发布了基于2.6.32内核版本的定制化内核AliKernel;第三,从2010年开始阿里巴巴提交的将近300个kernel补丁被社区接受,这在国内互联网公司中排名第一。
接下里,我们再说一下我们为什么要将延迟敏感性(latency-sensitive)任务和批处理任务混跑,这是来自Google的一张图,大家可以看到的,通常承载LS负载的集群的CPU利用率会远远低于承载批处理任务的集群。 所以要提升整体资源利用率,一个直观的想法是将两类负载做混跑。做混跑的关键挑战是如何做到在不牺牲延迟敏感性任务的长尾延迟的情况下提升资源利用率。我们在这方面做了很多工作,具体细节因为时间原因我就不展开了,总的来说,我们在多个维度上实现了的资源隔离,包括CPU,网络和IO等。
下面让我们来看一下这些工作带来的效果,下面这张幻灯片显示出CPU资源隔离的效益。这个竖线实际上是一个CPU利用率。我们可以看到CPU利用率从35%提升到65%以上,增长率超过30%。与此同时,整个系统的延迟敏感性任务工作负载在吞吐量和延迟性上的性能降低也只有5%以内。所以这就显示出CPU资源隔离的效果。
接下来再看一下网络资源隔离的效果。延迟敏感性任务和批处理任务混跑的情况下,不采用网络资源隔离比采用网络资源隔离,平均延迟时间高出6.8倍,尾延迟更是高出11.8倍。
再看一下IO限流的效果。这里有两个文件,一个做了限流,一个没有做。可以看到我们的IO限流机制很有效,被限流的文件的IOPS稳定在25K左右。
下面说一下阿里云服务器虚拟化方面的技术进展,服务器虚拟化是弹性计算的基础,实际上阿里云第一个云服务器也就是提供这样的基础服务。2014年阿里云服务器虚拟化技术从Xen改到KVM;2017年阿里云升级为Linux Foundation金牌会员。
在计算虚拟化方面,我想重点讲一下Hypervisor热升级技术,因为热升级严重影响服务的可用性。在2014年Xen出了一个严重的安全漏洞, 恶意用户可以利用这个漏洞侵入物理机器,或者影响跑在同一台物理服务器上的其他虚拟机, Linode公司当时为了修补这个漏洞重启了所有服务器。
那阿里云又是如何做到Hypervisor热升级的呢?我们在工程技术上做了很多的努力,让所有相关模块,比如KMOD和QEMU都可以做到全量热升级。技术细节由于时间关系我不展开。 阿里云今天每一台 VM平均1-2个月都会经历一次热升级 ,升级过程中只会有毫秒级别的暂停,用户不会感知 。
我们再看一下阿里云容器技术方面的进展,2016年10月,我们和Docker建立战略合作伙伴关系。就在这个月DockHub服务正式落地中国;另外,2017年4月阿里云以黄金会员身份加入了CNCF基金会;到目前为止,阿里云是国内唯一同时支持Docker Swarm和 Kubernetes的云服务供应商。
在容器技术方向上,我们努力将阿里云打造成Docker Swarm原生集成的云基础设施,更加全面和广泛地支持Infrastructure as Code扩展;另外,Kubernetes的支持工作也在紧锣密鼓的准备中。
此外,还有很多规模方面的增强,比如单一的Docker容器集群可以部署超过3万个VM节点;最后,我们还运行着世界最大的基于容器的应用,那就是阿里巴巴的电商业务平台。在2016双11当天有超过30万的Docker容器被部署,峰值交易能力达到17.5万笔/秒。
最后,在我今天演讲结束之前,说一下阿里云未来的技术方向。首先是轻量级虚拟化,容器方面我们将追求轻量级虚拟化技术;第二,我们会采用像NVMe存储和25GE网络这样的超快速硬件,在此之上全面优化文件系统和网络性能,我觉得超快速硬件部署和优化是非常有趣的一个方向,值得探索;最后就是异构硬件虚拟化的安全增强,比如FPGA、GPU,以及其他的定制化硬件,这些最新计算平台的虚拟化安全方面需要注意什么,也是我们未来工作的一个重点。
以上就是我今天演讲的全部内容,谢谢大家!