12月19日,ArchSummit北京2014大会在北京国际会议中心拉开帷幕。
InfoQ和阿里云合作推出了“云平台技术全景剖析”专场,有幸邀请到来自阿里云的黄湘龙、张献涛、朱照远、占超群等4位技术大咖,跟到场的技术人员分享了云架构背后的核心技术,云产品的发展历程和思考等干货,现场气氛非常火爆。很多听众积极提问,跟到场专家请教技术问题;有些听众甚至席地而坐或是站着听完了全程。以下是该专题精彩内容回顾。
黄湘龙(花名龙觉):云计算架构的实战案例
黄湘龙,在阿里云负责弹性计算,资深专家及总监,博士。在亚马逊工作多年,是DynamoDB产品的主要作者和创始团队成员。在阿里云主要负责弹性计算控制系统的研发。主持控制系统重构、优化,并参与了VPC、IO/CPU性能优化等项目的研发。
他首先介绍了自己负责的ECS控制系统所做的具体工作。作为ECS系统平台,从API入口,到物理集群,比如用户创建一个虚拟机或者销毁一个虚拟机,挂载磁盘,卸载磁盘,这些操作都会经过控制系统,控制系统一方面实现这些API,在后台做资源调度和自动运维的工作。API的并发有时会非常高,像大促活动这样的场景对控制系统要求非常高,尤其秒杀的情况下,有可能进来成千上万台虚拟机创建请求,所以对控制系统的并发度以及响应速度要求也极高。
之后他根据自己在云产品方面的多年的经验,分享了几个实战案例。
第一个案例是弹性伸缩。如果计算节点是没有状态的,做完一件事就直接返回结果,那增加或减少机器都很自然。但是大部分实际场景都是有状态的,如果有状态又做弹性伸缩的话,就需要做到同一个任务作不同的节点之间任意的切换,所以实际中会对状态多份复制,这样发生硬件故障也可以做到容错容灾。
第二个案例是服务间依赖。被依赖的服务有可能成为瓶颈。一种解决方案是内嵌式服务,把需要的服务实现到计算节点当中。其优点是性能好,运维简单。缺点是原来的计算节点又增加了一种应用,隔离性没那么好,而且自己实现也增加了对工程师的挑战。所以建议强依赖最好在内部实现。弱依赖则不必如此。
第三个案例是数据一致性。大规模下发流程,数据不一致是常态,所以要把它当做常用代码路径对待。现在的想法是将数据随机下发到几台机器,其他节点可以学习。
最后一个案例是拉取还是推送。拉取可以减少网络上的传输流量,还可以减少队列服务。
张献涛(花名旭卿):阿里云虚拟化技术研发之路
张献涛,虚拟化领域的资深人士,KVM/IA64项目的Maintainer。目前是阿里云资深专家,担任虚拟化技术总监,主导阿里云下一代虚拟化架构的设计与研发工作。
ECS是阿里云产品体系中最基础的计算服务,通常用作应用程序的运行环境,其最重要的特点是弹性。底层虚拟化基于成熟的开源软件Xen,为优化性能和稳定性,对Xen核心代码改动超过100项。为增加系统多样性,基于KVM的其他Hypervisor方案也在研。热迁移技术,底层基于Xen热迁移研发,改动超过20项。
他详细介绍了阿里云Hotfix的原理,基于函数动态替换技术,新函数会以模块内函数的形式链接入内核,旧函数的第一个指令改成强制跳转指令指向新函数,在替换过程中需要暂停所有CPU,切到一个内核线程并关闭本地中断,刷新指令缓存,重新让CPU恢复执行。
另外,Hypervisor Hotfix也是重点介绍的内容。
关于下一代虚拟化架构,目前在研的是KVM方案。设计特点,所有组件都支持热升级,升级过程用户无感知,运维主动升级时不中断业务连续性。这些在近期都是阿里云研究的挑战与技术探索方向。
朱照远(花名叔度):阿里云CDN技术演进
朱照远,高级技术专家,阿里云核心系统部Web平台团队负责人。2009年加入淘宝网,现负责阿里巴巴Web服务器、CDN等系统的研发。他是开源Web服务器项目Tengine的发起人。
朱照远介绍了阿里云CDN的特点和优势,包括:第一,稳定,节点资源很丰富,全球现在有260多个节点,有7Tbps带宽处理能力,有自主研发的缓存、调度、安全、业务管理等系统。第二,在安全方面有安全保护模块,有1.6Tbps的DDoS防护能力,基于大数据分析,快速准确识别攻击,实时阻断。第三,自助化业务部署,不需要人工干预,可以通过Open API管理。第四,按量计费,这样更灵活,成本更低,用户可以选择按带宽还是按流量计费。
他还介绍了从淘宝CDN到阿里CDN再到阿里云CDN的发展历程,并分享了CDN系统的架构设计。开发团队对Tengine和Swift做了性能优化,像集群的大文件分片缓存功能,利用SPDY的多路复用技术,减少三路握手和慢启动的影响,减少对本地端口的占用等。除了应用层的软件,还对TCP协议栈进行了优化。
占超群(花名离哲):分析数据库ADS的产品化、服务化实践
占超群,高级技术专家,阿里巴巴集团数据平台部架构师,实时分析数据库云产品ADS(Garuda)创始人。
分析数据库的产品逐渐成长,然后对外提供服务,过程中也是血泪史,不停地优化,产品化,服务化,支持更多的用户,更好的用户接口,整个过程比较曲折。
占超群分享了ADS的架构,并介绍了成长过程中比较痛苦的地方,包括运行建模、双十一的挑战和元数据中遇到的痛点。
占超群还分享了服务化的痛点和思考。如果多租户,这意味着资源是隔离的,如果不能做到精细化极速的资源控制,当业务波峰时就会有超时、慢查询。第二点,分布式系统提供稳定延时SLA,这个非常难,因为网络、机器会发生各种问题,在分布式环境出问题的概率很高。第三个,多集群。如果业务很多,有几十个集群怎么运维。第四点,热升级,因为现在做的高并发在线服务,不能挂个通告说停两个小时。第五个,低成本,云服务低成本也有很多难度,因为做给一个人用和做给一万个人,这中间的难度不是一个量级的。
演讲的幻灯片和视频我们会逐步放到InfoQ的网站上,敬请关注。