【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

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:491272
用户头像

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

关注

评论

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

你真的了解过Vue的组件化开发吗🔥

渔戈

前端 Vue3 10月月更

Python列表和元组有什么区别

芥末拌个饭吧

后端 python 3.5+ 10月月更

《Go语言学习路线图》让你少踩坑,高效学,Let’s Go!

王中阳Go

golang 学习方法 技术专题合集 10月月更 “程”风破浪的开发者

复杂场景数据处理的 OLTP 与 OLAP 融合实践

NebulaGraph

数据库 知识图谱

Java中的super和this关键字详解

共饮一杯无

Java 10月月更 super和this关键字

2022年第六届数据质量管理国际峰会重磅开启

数据质量管理智库

数据 数据隐私 数据安全 峰会 数据质量

牛客刷题系列之初阶版(自守数,返回小于 N 的质数个数,第一个只出现一次的字符)

雪芙花

c c++ 10月月更

以指标驱动业务决策,Kyligence 亮相 Gartner IT Symposium/Xpo™ 峰会

Kyligence

数据分析 指标中台 OLAP技术

直面数字化挑战,戴尔PowerEdge R750最全面的通用服务器

科技热闻

【网络安全篇】JavaSript基础内容大全

贤鱼很忙

10月月更

常见的网路设备和网络参考模型,以及常见的网络层协议及数据通信过程

Python-派大星

10月月更

前端经典面试题合集

loveX001

JavaScript

软件测试 | 测试开发 | 校招面试真题 | 显式等待与隐式等待的区别?与强制等待的方式分别是什么,有什么区别?

测吧(北京)科技有限公司

测试 测试开发

软件测试 | 测试开发 | 测试开发工程师必读经典好书清单,抽奖赠书送福利!

测吧(北京)科技有限公司

测试

MASA Framework 缓存入门与设计

MASA技术团队

.net MASA Framewrok MASA

react的jsx和React.createElement是什么关系?面试常问

beifeng1996

React

【网络安全篇】--HTML基础(预计学习时间:30分钟)从此以后不迷糊~

贤鱼很忙

html 前端 10月月更

全彩LED显示屏近年来在中国的发展趋势

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

Vue的开发模式与webpack🔥

渔戈

前端 Vue3 10月月更

【kafka运维】Topic的生产和消费运维脚本

石臻臻的杂货铺

kafka kafka运维 10月月更

三次握手与四次挥的问题,怎么回答?

loveX001

JavaScript

牛客刷题系列之进阶版(搜索旋转排序数组,链表内指定区间反转)

雪芙花

c c++ 10月月更

数通路由交换之网络基础(一)

Python-派大星

10月月更

计算机网络 ,什么是Internet?什么是协议?TCP/UDP的区别以及优缺点 分组交换与电路交换的区别以及优缺点

Python-派大星

10月月更

7 步保障 Kubernetes 集群安全

SEAL安全

Kubernetes 云原生 Kubernetes 集群 企业号十月 PK 榜 审计日志

Go语言入门—06切片

良猿

Go golang 后端 10月月更

openGemini内核源码正式对外开源

华为云开发者联盟

数据库 物联网 华为云 企业号十月 PK 榜

你真的了解v-model吗🔥

渔戈

前端 Vue3 10月月更

输入到页面展现到底发生什么?

loveX001

JavaScript

软件测试 | 测试开发工程师必读经典好书清单

测试人

软件测试 测试开发 测试工程师 测试书籍

C++精通之路:红黑树

雪芙花

c c++ 10月月更

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