低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

唐洪:阿里云飞天面对的三大挑战与解决策略

2014 年 10 月 21 日

在 10 月 17 号的 2014 年阿里云开发者大会上,阿里云飞天项目负责人唐洪做了飞天项目的专题演讲,演讲中对飞天项目架构、遇到的技术挑战、监测运维等方面进行了详细介绍。以下是对演讲内容的整理报道。

架构

飞天项目的整体架构,最底层基础架构是由通用服务器组成的 Linux 集群,没有使用高端的服务器和存储。飞天提供功能的方式是通过服务的方式,下图中所有蓝色的框(指各类云计算服务)都是对外提供服务的窗口,但这里蓝色的框并不代表所有阿里云提供的服务,还有许多其他的服务没有包括。最上层,飞天项目是阿里云整个产品和服务的技术基础,上面是各种各样的应用。

飞天平台上强调的是做多租户,因为众所周知云计算带来的好处就是弹性,另外一个就是需要帮助大家降低成本。

挑战

1、小概率故障成为了常态:分布式计算集群里面有成千上万台,几十万台甚至上百万台服务器,每个服务器都有那么多组件,所以任何小概率事件都会被放大。飞天平台是通过数据去掉单点的方法来降低这些小概率带来的影响,但客户受到困扰并不是一个简单的可用率,今天的可用率也可以达到 99.9% 以上,深入挖过去,到每个具体客户的时候,会发现他们的痛点不能只用一个概率来概括。

2、机器比人可靠,但是在飞天服务链条里面有很多很多人的因素,所以第二个挑战就是怎么样能够降低人在服务链条里面的负作用:举个例子,比如说配置的错误,因为配置项很多,让人来配置的话很容易配错,或者代码修改之后,操作其实是一个文档,但没有做相应的修改,然后用老的操作流程的时候就会出现问题,它另外去执行的时候也会发生问题。还有一些操作,虽然有文档,但从来没有操练过,因为很难在一个实验的环境去复现这个情况,其实是没有验证过的,真正上到战场上发现这个流程是错的。最后发现流程是对的,但是人在疲劳或者压力的情况下会出现错误,所以很多情况下是人的失误所导致的故障。

3、后台负载干扰在线服务,就是多种环境下性能隔离的问题:当用户投诉说 ECS 和 IO 比较慢的时候, 经常会告知用户把快照关闭。从系统层面根本解决这个问题是很复杂的事情。一方面需要在全局进行控制,也就是到底多少路 IO 在进行中等等,第二方面是网路的流控,最后要确保单机的流控。

策略

针对上面三种挑战,唐洪提出了针对性的策略:

1、针对小概率故障,会具体问题具体分析,并给出合理的解决方法。而且,在已有的经验与积累基础上,正在研发名为“华佗”的监测系统模块。从系统层面上根本解决尽快发现底层的故障。华佗通过综合了各种类型的系统信息,例如系统的日志、SMART 磁盘的指标或者命令反馈的信息,并且可以综合应用的反馈,比如说访问某个云服务的时候超时了或者断联了,就把这个反馈给华佗,这个形式比较简单,比如通过经验规则,或者可以通过学习的方法建立一个故障模型,甚至在这个硬件发生故障之前就可以判断它即将发生故障,然后通知运维赶紧把这个硬件下掉,也可以通知应用绕开这个节点。目前华佗在 ODPS 上线,并且能够发现磁盘的故障,而且根据观察,基本上能够做到百分之百的覆盖,也就是磁盘有故障就可以发现,误报率在 10% 左右,并不久将推广一些在线的集群。

2、最薄弱的环节,人:有两方面的工作,第一是热升级的工作,每个服务都会承诺三个可用性,而且在升级过程中要求不能够让用户感知到,这个热升级就好象你开着飞机,在飞的途中去换一个引擎,这是非常有挑战的事情。第二个,在生产环境里面配置千奇百怪,很难用一个固定化的流程把这些问题全部剔除掉。升级过程中有很多人操作,也就是每一步都会去看看有没有成功,如果中间没有成功就会进行下一步,所以每个流程非常长。另外一个是阿里云部署升级非常快,部署升级的频率不但跟业务相关,也跟迭代速度有关,但 13 年底的时候,发现目前的方式没有办法跟上业务和产品的规划节奏,所以启动了御风项目,目标是希望把单个集群从原来一个礼拜缩短为六小时,并且希望把整个升级过程中的自动化和可控性能够上升到一定水平,能够把升级效率提高 10 倍以上。

3、后台负载干扰在线服务:比如打快照的时候启动一个后台进程,把原来虚拟磁盘数据搬到快照镜像上。当有写请求进来的时候,需要首先把写之前的磁盘读出来,第二步把读取这个数据写到相应的快照位置上去,第三步才会把这个数据写进去,也就是在打快照期间,写操作的 IO 路径中间有一个读操作。怎么解决这个问题呢?解决的方法,就是用一个影子拷贝,也就是当写的时候,先写到这个影子拷贝里面去,这样在后台打快照将不受影响,前台写也不受影响,直到快照打完之后,会把影子里面所有的数据合并到数据磁盘里面去,这样一来会对打快照对 IO 的影响降到很低很低。

总结

最后,唐洪从《礼记》中庸里面讲到的四个字“困知、勉行”,概括了他和他的团队是怎么理解客户的痛点,怎么理解云计算技术,怎么样去做好云计算技术的。“困知”,靠分析一个个工单,看到每一个蓝屏和闪断等问题学习云计算的挑战在哪里。“勉行”,团队里面没有什么天才,大家都是平凡人,唯一能做的就是努力,每个人用 200% 的努力来实践,才能完成这件事情。

2014 年 10 月 21 日 14:153222

评论

发布
暂无评论
发现更多内容

如何基于 Flink 生成在线机器学习的样本?

Apache Flink

flink

Flink SQL 1.11 新功能与最佳实践

Apache Flink

flink

话题讨论 | 程序员们来说一说,你们从编程开始到现在共使用过多少种语言?

InfoQ写作平台官方

写作平台 话题讨论 语言

云小课 |选定合适的证书,做“有证”的合规域名

华为云开发者社区

证书 课程练习 ssl

从零开始搭建完整的电影全栈系统(四)——restfulApi用户的认证授权及用户注册

刘强西

RESTful API yii

Pulsar Flink Connector 2.5.0 正式发布

Apache Pulsar

flink 开源 flink 消费 kafak Apache Pulsar

区块链支付通道系统搭建,USDT跑分承兑商系统

13823153121

探路人与解题者:腾讯数字生态大会上AI语音助手+X的无限可能

脑极体

USDT支付通道搭建,USDT承兑商跑分系统

13823153121

熟悉又陌生的 k8s 字段:finalizers

郭旭东

Kubernetes

[翻译]Go Code Review Comments

卓丁

GaussDB(DWS)应用实战:对被视图引用的表进行DDL操作

华为云开发者社区

数据库 dll postgre

年薪150万的阿里大佬工资全部上交!家务全包!却被老婆嘲讽嫌弃!网友:你老婆外面有人!

程序员生活志

互联网 职场 大厂 薪资

数字货币交易所开发方案,交易所源码

13530558032

Redis-技术专题-Redis知识体系

李浩宇/Alex

oeasy教您玩转linux010210管理应用aptitude

o

滴滴AR实景导航背后的技术

滴滴技术

人工智能 滴滴技术 实景导航 地图与公交事业群分享月

USDT承兑支付系统,区块链跨境支付源码

13530558032

我四面字节跳动,拿下1-2级offer,太感谢这份“神仙级面试真经pdf”

云流

编程 计算机网络 架构师 java面试

区块链数字钱包开发,数字钱包app

13530558032

大厂面试爱问的「调度算法」,20 张图一举拿下

Java架构师迁哥

字节跳动半夜给员工发钱,全员沸腾了

程序员生活志

字节跳动 职场 薪资

大厂面试爱问的「调度算法」,20 张图一举拿下

小林coding

算法 操作系统 内存 进程

LiteOS间歇计算技术:IOT终端真正感受“电量自由”

华为云开发者社区

物联网 LiteOS

如何利用Chrome DevTools优化网页性能

熊斌

学习

科普:Java 后端开发常用的 10 种第三方服务

沉默王二

Java 后端开发 第三方服务

为了面个好公司!拼了!3.5W字的Java面试题整理(答案+学习路线)上!

Java架构师迁哥

编程的修养

紫枫

读书笔记

这13道面试题,哪怕背你也要背过来。别说我没提醒你

小Q

Java 源码 架构 面试 多线程

超酷! Atlas给黑白视频“上色”

华为云开发者社区

视频 Atlas

大项目写代码写到晕头转向?敏捷多项目框架解君愁

Philips

敏捷开发 程序设计 软件架构

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

唐洪:阿里云飞天面对的三大挑战与解决策略-InfoQ