虽然道歉无法弥补给大家带来的麻烦,但是,我们可以用更快的访问速度,更好的用户体验,更贴心的体验去弥补,虽然故障的事实无法改变,但我们的努力可以创造更少故障的未来!
----杜勇《进步集》
困知,勉行----阿里云服务观
2014年10月15日,北京飞往杭州的飞机上,绝大多数乘客都是中国的一线开发者。他们和我的目标一样,向着同一个地方: 杭州转塘,参加2014阿里云开发者大会。安静的路途中,不时能听到关于创业、产品、技术、实践的轻声讨论。我的脑海中盘旋的也是与多位2014阿里云开发者大会的演讲嘉宾沟通时提到的阿里云近期发布的新技术和他们极有代表性的实践建议。有意思的是,无论是普通参会者还是演讲嘉宾,大家都很少提到云服务。
确实,自2013年5月大掌门与阿里云和解等事件之际,王坚博士带领阿里云团队与出现问题的客户深入沟通、听取客户的问题与建议,直接敦促提升服务质量以来,阿里云的服务口碑有了极大提升。今年,我们也曾深入走访阿里云,感受到了其极为强大的服务措施和实施目标。但即使这样,我也没能预料到服务在阿里云未来发展规划中是如此重要――10月16日飞天大会场的主题是“服务不是口号,是承诺!”
是的,“服务”是2014阿里云开发者大会最为重要的主题词。10月16日,面对现场8000余位开发者,阿里云技术领军者飞天负责人唐洪、技术保障负责人刘振飞、产品负责人张东晖直面阿里云在服务上出现的问题,并分别从技术、运维安全保障、产品等维度坦率地讲述发生问题的原因所在,以及阿里云将如何通过种种努力来落实对客户的服务承诺。坐在旁边的一位移动开发者激动地对我说:“没说大话,说了实话。我们能理解并尊重阿里云的努力,大家都期待以后能更好。”
飞天:云计算是一门实践科学,自研路上关键技术挑战
飞天是阿里云自主研发的核心系统,是真正在阿里云背后为用户提供通用云计算服务的平台。飞天系统最底层是Linux集群,没有使用任何高端的存储及服务器,其上包含多个模块:分布式文件系统盘古(Pangu),任务调度和资源管理模块伏羲(Fuxi),从底层上监视和处理导致集群性能下降的集群诊断系统华佗(Huatuo),网络连接的模块夸父(Kuafu),监控系统神农(Shennong),集群部署大禹(Dayu)和安全管理,其上承载ODPS、ECS/SLB、OSS、OTS、RDS等云计算产品,并通过服务的方式对外输出云计算能力。
飞天的研发路程注定不会平坦,在自主研发的路上,没有成功的经验可以借鉴。在阿里云资深总监唐洪看来,“云计算是课本上学不到的,就靠分析一张张工单,一个个事故,看到一个蓝屏和闪断等问题之后,才会明白云计算的挑战在哪里。我们唯一能做的就是努力,努力做好云计算,用200%的努力来实践。”
阿里云的飞天平台从第一行代码开始,到支持超过百万云上客户的业务,发展到今天,仍然面临很多挑战,而这些挑战也是唐洪带领的飞天团队正在努力去解决的。分析研发中的最关键的技术挑战,唐洪认为有三点: 第一,小概率故障成为常态;第二,怎么样能够降低人在服务链条里面的负作用;第三,解决多租户下性能影响的问题。
- 小概率故障成为常态:分布式计算集群里面有成千上万台,几十万台甚至上百万台服务器,每个服务器都有很多组件,所以任何小概率事件都会被放大。如磁盘的故障,磁盘是服务里面最容易发生故障的问题,SATA磁盘的年故障率是3%,这样一来,5K机器每天坏4块,100K机器每小时坏4块。再如机器的异常,一些常见的问题有内存ECC错误、根分区只读问题等等。如果有5K机器,每天坏一台,100K机器每小时坏一台。还有网络故障,虽然比较可靠,但还会发生丢包、时断时连等故障,阿里云集群受影响时间大约是每年每集群1小时。可用性不单单是一个概率,用户受影响的程度并不能用概率或受影响的时间来衡量,如企业网盘,对这种业务类型的客户来说,从分钟到秒的距离就是生与死的界限。为此,飞天团队研发了名为“华佗”的系统模块,进行快速甄别和自动化处理,从系统层面上尽快发现并根本解决底层的故障。(详情可参阅《凌云》第4期《走近华佗,解析自动化故障处理系统背后的秘密》)。
- 人是最薄弱的环节:在重复事件执行上,机器比人可靠,然而在当下飞天的运营环节中,还存在大量的人为因素,比如配置错误;代码修改后,操作流程没有同步更新;操作流程二义性;非常规操作流程缺少验证;人为操作失误等都会造成故障。所以,在飞天后续服务中,将进一步降低人在服务链条中的负作用。如热升级、御风项目来解决人为参与比率、工作量,提升过程中的自动化和可控性;通过搭建所有云产品的最小化测试环境“麻雀”来减少测试盲区。
- 多租户环境的性能隔离:后台负载干扰在线服务,多种环境下性能隔离的问题从系统层面根本解决是很复杂的事情。多租户隔离可以帮助提升弹性和成本效益,但同样存在反面制约,如果平台做不到不同用户之间的隔离,一个用户的应用可能就会影响到另外的用户。比如由于快照造成ECS和I/O性能较慢的问题。所以,要实现平衡,需要对全局进行控制,如I/O进程、网络和单机的流控,此外还需要开发诸如影子拷贝等新手段来实现。
“困知,勉行”是唐洪心路历程的写照,这四个字概括了他和他的团队是如何理解客户的痛点,如何理解云计算技术,如何去做好云计算技术的。唐洪坚信:与客户一起面对挑战,用200%的努力实践。只有这样,才能做好云计算的服务。
技术保障:做可信赖的运维与安全服务
阿里集团包括阿里云、天猫、淘宝、支付宝、小贷在内的各项业务,以及近几年双十一、飞天5K等诸多奇迹的背后,阿里的技术保障部都发挥了关键性的基础支撑作用。其负责人是担任阿里巴巴集团副总裁的刘振飞,谈到服务,一向直率的振飞也有苦恼。“在我们的服务分析中,故障和Bug的占比大约占四分之一,这是我的责任。但我一直困惑的是,这些年我们将淘宝、支付宝的稳定性都能做得比较好,经过五年的双十一,这么大的活动也不会出现问题,却服务不好阿里云上看起来非常小的一个客户。”
想不明白的刘振飞查看了最近几个月的投诉单,那一瞬间,刘振飞知道了原因:云计算有数以百万计的客户,业务千差万别,产生的问题大不一样;淘宝与支付宝等阿里内部的业务活动是可预知的,能够提前预判来进行风险防范,但云平台的客户分布在各行各业,云上客户的业务高峰和低谷无法预知,应用模式无法判断;淘宝、支付宝的应用开发与内部的运维密切合作,能够各自迁就互补,但我们对云上客户的应用开发、部署一无所知。这些原因使得即使云计算平台上一个很小的客户,也能“搞得我们非常狼狈。但如果我是客户,我也会抱怨。因为确实是监控、排查工作不足”。
面对最真实的用户声音,他们选择从思想上根本转变,真正站在用户的角度思考问题。大会现场,刘振飞代表技术保障部承诺彻底解决“服务器宕机和闪断、各地访问云机房的网络质量、DDoS攻击误杀以及用户服务器安全等问题”。
- 解决服务器宕机:从供应链的源头上控制服务器的质量;加强机房管理,形成标准的配置和标准的变更流程;当故障无法避免时,尽量将故障快速迁移。
- 解决闪断问题:完善产品性能;做部署的优化和网络的排雷,对所有云机房进行排查,寻找隐藏的盲点进行改进,从硬件上和网络环境上减少闪断的可能。
- 各地访问云机房的网络质量:对骨干路由进行优化,和运营商一起努力来提高服务网络水平;做全面的网络监控,加强排查能力,保证网络既通又快。
- DDoS的攻击误杀问题:利用阿里不断提升的大数据处理能力改进流量清洗模型,尽可能更加智能,减少误杀,并在遇到攻击时,第一时间通知我们的客户,和客户一起合作。
- 用户云服务器安全:预计在11月底,推出云服务器防护产品,减少入侵的可能性。
刘振飞对技术保障团队,也对所有开发者说:“我们对自己的最新定位是做技术驱动的商业基础设施服务商。我们将和产品技术一起努力,提供更加及时、性能更高、质量更好、价格更低、弹性和稳定性更强、更加重视用户体验的云计算服务。”
产品:打造稳定易用的产品体验
目前,阿里云已经对外提供了包含弹性计算、数据库、存储与CDN、大规模计算、安全和管理、应用服务等20项产品,以及镜像、工具、运维服务等13项服务。但产品本身以及不同产品之间确实还需要打磨,要保证完整而细腻的产品体验,稳定易用是第一关。阿里云产品负责人张东晖认为“不用高大上的话语,踏踏实实地做出真正以客户导向的产品很关键”。
要实现“客户导向的产品改进”这一点,首先要建立更有效的客户沟通渠道,深入理解客户的需求和产品的问题;其次要想方设法为开发者提供更加完整的开发体验,例如:文档准确性、API/SDK完整性、控制台体验等;最后是解决基础产品的稳定性、性能和关键需求,尤其是针对ECS、RDS、OSS、SLB开发者最依赖的四大件进行持续优化和改进。
对于开发者最关心的基础产品体验改进,张东晖从满足ECS高性能磁盘I/O需求,改进RDS稳定性,优化OSS+CDN全链路体验,支持高可用应用架构等方面进行了深入分析。
- 满足ECS高性能磁盘I/O需求:数据可靠性和I/O性能的矛盾是云计算的核心技术挑战,阿里云始终高度关注客户数据的可靠性;针对游戏和企业关键应用对高性能临时磁盘需求强烈,阿里云让客户有能力做主备;同时基于SSD的高性能临时磁盘也将推出,适合MongoDB、PostgreSQL等数据库,磁盘IOPS在10000以上;并不断持续优化云磁盘的I/O,以满足ECS高性能磁盘I/O需求。
- 改进RDS稳定性:提高连接稳定性,杜绝闪断;降低资源争抢,提高性能稳定性,比如高吞吐量的实例争抢CPU所造成的影响,会自动做热点迁移,并做CPU隔离,对客户应用无影响;加强实例空间和SQL诊断优化,提高应用稳定性。比如将自动检查SQL是否包含子循环等,将阿里云的DBA的经验能够用起来。
- 优化OSS+CDN全链路体验:OSS和RDS不同,由于系统不稳定,用户经常会遇到一些性能毛刺,阿里云针对分布式文件系统和服务层做了深度的优化,可以将长尾和毛刺等慢请求整体下降2-3个数量级;由于域名劫持导致OSS存储不可用,针对这点,阿里云做了全链路监控,保证可以尽早发现和解决域名劫持问题;客户促销触发流量清洗,导致网站不可用,阿里云会通过调整、改善流量清洗算法,避免过度防御。
- 支持高可用应用架构:大多数基于云的应用程序在设计时并未考虑到传统数据中心架构,所以阿里云要主动做到更多。大中型互联网应用高度依赖虚拟网络,ECS、SLB、RDS将逐步支持VPC;全面支持可用区,ECS、SLB、RDS、OCS支持可用区,并解决可用区售卖资源不足的问题;解决企业应用上云的挡路问题,如ECS镜像、快照跨Region迁移,ECS账号资源转移和共享,ECS、RDS、OSS支持主子账号。
新的起点
夕阳西下。在参加10月16日开发者之夜的活动时,偶然看到刚刚重回阿里团队,并负责安全的吴翰清发出的几句感慨:“会前各部门准备演讲的时候,王坚博士把每个Speaker叫到一起,一个字一个字地抠PPT,并明确强调这次大会谁都不许吹牛,只许讲用户的痛点,然后要讲对用户承诺什么。所以我们私下里都开玩笑说这次大会我们是来认怂的,是个批斗自己的大会。很多部门Leader因此很苦恼,不知道该怎么讲,但博士大笔一挥,该怎么讲就怎么讲。这颇有点颠覆我的世界观,因为以往参加各种大会,都是想怎么吹就怎么吹,而产品和服务有些瑕疵的地方,一般都不会刻意提起。但阿里云大会这次反其道行之,自曝其短,其实是相当需要勇气的。这让我想到Salesforce在解决用户信任问题时,也采用了同样的方法,把自己所有服务器的宕机时间都公开告诉用户,最后赢得了尊重。我想这样的做法,才能叫做真诚。”
而我想,将自己放得很低的阿里云已经找到了新的起点。
从2006年云计算在全球首次被提出,到2009年阿里云计算正式成立,到2012年护航电商展现云力量,再到2013年实现飞天5K……以技术驱动服务的阿里云一路发展跌宕起伏,令人目不暇接。这其中,规模和服务、技术与实践的矛盾冲突更是在曲线发展中交互辉映。如今,云计算的技术力量已经被产业所认可,并逐步在更多传统领域迅猛发展,阿里云计算承载了更多客户的创新与梦想,站在了一个新的起点上。而逐步参与到世界云计算产业竞争的中国云计算企业如果能以更加踏实的服务心态,更加开放的技术理念,优化生态系统,求同存异,取法中道。东风西渐,也许就在不远的将来。