最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

Geekbang 圆桌讨论:高效运维之路

  • 2015-06-18
  • 本文字数:4220 字

    阅读完需:约 14 分钟

在最近举行的 Geekbang 科技日“高效运维”专场活动中,触控科技运维总监萧田国、腾讯互娱运营管理中心总监刘栖铜、环信首席架构师梁宇鹏、UnitedStack 技术专家田双进行了圆桌讨论,就如何高效运维发表了自己的意见。

Geekbang:“我想知道在携程,知乎之类的事情发生以后,运维们在部署 IDC 机房的时候都会关注哪些参数或规格?”

梁宇鹏:实际上来讲,在我们这边我们的技术改进是一直在持续进行的,并没有受到它事件的影响。我可以讲一下我们这边部署的话,你说的规格,我理解是云服务器底层的设施,因为我们使用的是云,也可能有基础设施这部分的工作,后面哪位聊一下就行了。我们正常的大部系统,今天我们讲运维成熟度模型,还没有服务,甚至工具化、自动化在完善的过程,这里没有太多跟大家分享的东西。

刘栖铜:其实说实话,我到今天还不是很清楚说,咱们这次携程,知乎这个比较新还没有时间看,携程到底是什么原因,我今天还不是很清楚。但是就这个问题来看的话,我们以前可能有类似的例子,因为我们是自己的 IDC,也是自己去部署,包括机器选型也是我们自己做,但是因为腾讯在底层这块专门有 TEG 这么一个团队专门去做底层的 IDC 包括网络这块。对于我们运维团队来讲,我们可能涉及到 OS 方面的参数的调整,可能以前我们也碰到过,因为系统参数造成我们的服务,比如进程数的瓶颈等等之类的,就是也碰到过这类的问题。

碰到这类问题,因为我们所有的环境设置都是服务器由 TEG 部署交付给我们,我们会把所有的环境设置做初始化,在那里面就会把问题的参数调整过来了,保证每一台拿过来的业务参数是最新的,都是吸取了之前的教训的。

当然回过头来,携程这次事件之后,其实我们也比较忐忑,我们也不知道原因,我们回过头查,包括我们的蓝鲸里面的发布系统里面的回馈机制,我们全部所有的业务都去核查了一遍,保证我们回退是有效的。因为携程这个事情我们之前听到很多传言,包括数据库的数据丢失,或者说因为发布系统造成所有的发布环境的数据全部被删除掉了,这种传言。我们针对这些传言在内部做了一些针对性的切合和梳理。

萧田国:我们觉得本次 5·27 支付宝事件后,对大家而言会关注 IDC 上传目录,看看它是不是真的有这种可用的主备链路,而且我们这些在使用 IDC,特别像网易,网易之前也出了一次很大的事故。同样我们最关注的,还是说是不是有两个或者三个机房互备的关键链路,而且保证机房链路是特别好的状态。这个可能是以后比以前更加关注的地方。

Geekbang:“能不能说一下白盒运维?”

田双:白盒运维我觉得从两方面入手:一个是首先开发人员会要求提供更多的监控参数,然后这样的话,会更早地发现这个问题。可能从运维角度讲的话,多去了解用户的需求,多去了解开发的需求,尽量把这个纽带建起来,尽量地加上更多可能的报警。

Geekbang:做公有云的,云平台有很多告警机制,比如发现问题的时候,会发短信、打电话各种告警,但是发现问题了怎么处理?

田双:首先看一下是什么问题,客户业务放在我们这边,我们能感觉到,只是说我们的主机问题,主要还是硬件方面的问题。因为我们是看不到用户到底在跑什么业务的,我们只能说是会给用户定一个级别,说什么样的级别会用什么样的响应速度,通过什么样的报警方式去通知用户。我们只能告诉他们说,这个服务现在大概到了什么样的状态,比如说存储用的已经达到报警预值了,或者内存跟历史来比的话不太正常,我们只能通过这种方式告知用户。

萧田国:一般我们提出的都是黑盒测试,白盒测试,白盒运维反正我听的不太多。我觉得说明的白盒运维,应该是说开发人员,研发人员试图更多的要对运维进行了解。既然想更多运维的话你就去学呗。基本的 Linux,特别是以后当很多部署是基于 docker 的时候,你自然也要去学各种东西。甚至有人建议,以后的系统的迁移,你从当前的虚拟机或者说物理机上迁上去,这个操作应该由开发部门去做的。

Geekbang:是不是大多数生产环境都跑在云上,虚拟机上,docker上,而跑在物理机上相对越来越少,或者说你们公司的情况怎么样的?

萧田国:对一般公司而言的话,它还是有大量的核心业务是跑在物理机上的,那些新的业务和以前的业务并没有耦合,这个时候会选择云,不管是私有云还是公有云也好。

Geekbang:你们在运维这些问题的时候,比如说你们自己开发可能会有哪些测试,或者哪些手段?客户用你的服务的时候你们会有哪些建议,你们是怎么做的?

刘栖铜:首先白盒运维是第一次听到。我想白盒测试是不是不止是从程序外部来看,而是通过程序内部逻辑持续监控和及时发现问题点,可能是这样的概念。如果是这样的概念的话,在腾讯可能有两种方式:第一种,腾讯自研的业务,像互联网社群,它们的框架里面就已经包含了很多监测点,比如说有模块建调用的成功率,还有响应速度这些指标。这种就比较好去监测内部的逻辑。

还有互娱遇到的情况,像有些是代理的,代理的对我们来说是没有源码的,我们也不清楚里面具体的逻辑,因为开发商不会有完善的文档告诉我们逻辑。所以这里我们有接入标准,这里面有一部分叫做可运维性的评估。这个可运维性评估包含了,我们会要求说开发商开发的这些程序里面,在关键点上一定要有日志输出,我们通过这个日志输出检查内部的逻辑,是不是有故障,有问题,通过这样的方式去及时发现腾讯的问题点。

Geekbang:像游戏用户分布到全国各地,你们有没有遇到跨区域出现的问题,你们有没有运维的解决方案?

梁宇鹏:还是先理解一下白盒运维的事情。我理解黑盒运维,可能是说运维不知道在干什么,它只知道是否在运行。白盒运维的时候,可能你需要知道这个程序到底在干什么,然后它的每一步对资源的消耗是怎么样的。这里都称运维了,为什么分白盒和黑盒呢?我觉得这是一个理念问题。在我们这里推行的理念是开发人员接触的服务器部署越多越好。

刚才说可运维性,这个是慢慢提高的过程,如果你发现这个问题要解决就把它完善,工具化,后面的运维就可以操作了。我们这边的原则,是只要开发能登上服务器,进行一些操作,操作完一遍之后,剩下的事情就是运维的了。不管我是去连到一台虚拟机上,写了几行代码也好,还是我直接通过一个 Rest 接口调一下这个服务,只要我开发能到机上去做,剩下的第二遍,第三遍就是运维的事情了。

从这个角度来讲,可能我们不要界定自己能做什么,不能做什么,或者非要说清楚,这个到底是白盒还是黑盒?我们还是回到我们最开始的,作为一个技术团队整体地来思考,只有这部分跟运维相关就做,跟开发相关的就开发做,我倒不太区分白盒还是黑盒。

Geekbang:“什么情况下或者怎么才能避免出现像携程这样的,因为携程官方发布的是误操作。他说怎么避免这个误操作的发生?”

梁宇鹏:误操作,刚才举的例子,大家都会遇到很多,各种误操作。我这边觉得只要是人就会误操作,你能做的事情就是让它工具化,没必要的人不要上去。你要看日志,我日志搜集起来给你,剩下的事,正常来讲都不应该需要更多的人来参与,首先把人数降到最低。如果你真要上去,那就是工具的问题了。当然刘总上升到更高的高度了,工具的问题等会儿他会介绍,我就不说了。

刘栖铜:梁总说的很对,对于误操作,我们尽量让少的人操作,这样风险就越少。就像梁总说的是人都会有误操作,即使有工具,就算工具简单到在里面填一个数字,比如填 200,我不小心打成 2000 了,这个都可能出现比较严重的后果。对于这种情况怎么规避呢?

当我们已经工具化的时候,对于这种还可能出现的误操作,我们采取的措施是:刚才权限说了,这是最基础的,除了这个之外,第一,我们操作还有一些超限监测,当监测到是超限,非常不合理的时候可以拒绝这个指令,把问题反馈过来,这个就是避免非常严重的后果。当然这个超限还是会有一定的范围,比如我刚好打错了没有超限,这个时候怎么办呢?

我们想还是从人的层面解决问题,当然不是让人审批,像我们在蓝鲸里有一个防误操作,这里面说起来很简单,比如说我们要求所有的关键操作的输入,一定要有输入框的弹出确认的,而且这个输入框弹出确认是有时间限制的。而且输入框按纽的位置还会颠倒。就是当你输这些数字的时候,会要求你二次确认,大家知道二次确认很多时候都是一点就去了,都不会看看,我们是说通过系统的设置,强制操作人能看以下自己的这个操作是不是有效。

当然,还有一种,就是两个人同时确认才能进行操作。这种我们用的非常少,这种除非是非常非常关键的那些我们才会用,因为这种会严重的增加我们的投入成本,降低我们的效率。这种双人确认的机制,在某些关键场景我们也会用。所以我们是这几种方式,减少误操作出现的几率的。

当然我觉得误操作不能避免,这是系统性的事情,除了刚才说除了工具层面解决,还有刚才说的人员层面。所以我刚才在分享的时候有篇幅比较多的讲,说我们对人为失误的低容忍,这就是为了,首先做运维,至少我们自己要有一个比较强的意识,就是人为失误,我们尽量从意识上规避。当然我们也理解,每个人都有打瞌睡的时候,所以在系统上尽量减少措施。

萧田国:这个观点在我刚才的演讲里都有,再讲一下,误操作有两类,一类是真的误操作,是无意的。像这些用刚刚说的,有一些权限,校验,或者两个人检查去做是可以的。但是还有一种误操作是有意的,或者说他就不爽了,有一个老大哥跟我说过,运维是需要关怀的群体。如果你有意误操作,让你整个系统都没有的话,你怎么办?你唯一的只能是多给这些员工一些关怀,不要让他走极端的事情。

Geekbang:之前做程序开发,可能是为了防止误操作,会写很多类,很多库,和API,像青云上也放了很多API,这个规范的目的就是为了防止误操作,所以我想问一下,从原来田双你们的角度,因为你是做公有云的,对客户遇到这种问题的时候你们会有哪些建议?

田双:误操作大家确实都遇到过,就像刚才几位老师讲到的,我们只能尽力去避免,然后我们这边能做的不多吧。

Geekbang:就是说在云不上开发东西,像环信做的SAAS层的,像就开放一些API,能不能避免这种误操作?

梁宇鹏:我举个例子,我们是用云服务的,但是我们的负载均衡也是服务,负载均衡的权重调整可能会有这样的问题,如果在你们实现负载均衡权重 API 时是不是有限制?还有不是怎么做呢?

田双:负载均衡这方面,我觉得软件层面的限制,像配置方面限制的话,这个可能跟各个业务有关系吧,只是说我们如果要做的话,只是会提供一个模板,具体到底怎么限制,包括权重要做一个人为限制的话,我们应该只能提供的是一个模板。

Geekbang 的微信号是 geekbang01,读者也可以扫描下方二维码来关注。

2015-06-18 20:491276
用户头像

发布了 501 篇内容, 共 248.2 次阅读, 收获喜欢 57 次。

关注

评论

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

老凡尔赛了!当亚马逊云科技大佬“转行”讲起脱口秀

亚马逊云科技 (Amazon Web Services)

数字化转型 设计师

第 21 章 -《Linux 一学就会》- 结构化命令case和for、while循环

学神来啦

OpenMLDB Weekly Update(2021.9.19-2021.9.26)

第四范式开发者社区

机器学习 数据库 开源技术 OpenMLDB

OpenMLDB Weekly Update(2021.10.4-2021.10.11)

第四范式开发者社区

第四范式 开源技术 OpenMLDB 机器学习数据库

OpenMLDB Weekly Update(2021.10.11-2021.10.18)

第四范式开发者社区

第四范式 开源技术 OpenMLDB 机器学习数据库

SpringBoot 自动装配

黄敏

QCon看点|亚马逊云科技可持续软件工程实践分享

亚马逊云科技 (Amazon Web Services)

软件工程 S3 云端

模块一作业

周文

「架构实战营」

官方线索|金山集团“程风破浪,码动未来”

xcbeyond

1024我在现场

一周信创舆情观察(10.11~10.17)

统小信uos

达摩院求解器升级 覆盖黑盒优化难题

Lily

阿里云正式开源PolarDB-X数据库,壮大云原生分布式数据库生态

Lily

OpenMLDB Weekly Update(2021.8.30-2021.9.6)

第四范式开发者社区

机器学习 数据库 第四范式 开源技术 OpenMLDB

金九银十,面试必备!耗时一周整理的牛客网上最火Java面试八股文

Java 程序员 架构 面试 大厂

会计CRM系统软件提高公司管理效率

低代码小观

企业 企业管理 管理会计综合实训平台 CRM 管理系统

分布式事务开山之作,带你深入理解分布式事务

华章IT

SimpleDateFormat线程不安全了?这里有5种解决方案

华为云开发者联盟

安全 线程 变量 SimpleDateFormat

OpenMLDB Weekly Update(2021.9.12-2021.9.19)

第四范式开发者社区

人工智能 机器学习 开源技术 OpenMLDB

OpenMLDB Weekly Update(2021.9.27-2021.10.4)

第四范式开发者社区

机器学习 数据库 开源 第四范式 OpenMLDB

官方线索|把梦想当作热爱,用技术创造价值!

搬砖人

1024我在现场

架构设计第一周学习总结

周文

总结思考

CMP是什么意思?谁能解释下?

行云管家

cmp 多云管理平台 多云管理 云管平台

开发者测试你必须知道的7件事

华为云开发者联盟

软件 开发者 测试 代码 测试工程师

阿里巴巴10个顶级开源项目,确定不来看看?

Java 阿里巴巴 开源 面试 项目

Week 1命题作业

小朱

架构实战营

腾讯云,五轮面试,六个小时,灵魂拷问,含泪拿下 60W offer

进击的王小二

java面试 大厂面试 java

OpenMLDB Weekly Update(2021.9.5-2021.9.12)

第四范式开发者社区

机器学习 数据库 第四范式 开源技术 OpenMLDB

【云管平台】多云混合云管理平台用哪个好?

行云管家

公有云 私有云 混合云 多云 云管理

Defi系统开发搭建(案例)

DTCC 干货分享:Real Time DaaS - 面向TP+AP业务的数据平台架构

tapdata

现成DeFi交易所系统源码开发

Geekbang圆桌讨论:高效运维之路_DevOps & 平台工程_崔康_InfoQ精选文章