首页>会议文档 >

IoT峰会 李玉峰 IOT运维之路

page:
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路
IoT峰会 李玉峰 IOT运维之路

IoT峰会 李玉峰 IOT运维之路

所属会议:GITC 2017全球互联网技术大会 北京站会议地点:北京


下载

手机看
活动家APP客户端

扫二维码下载
或点击下载
Android iOS

4568次
浏览次数
GITC 2017全球互联网技术大会 北京站所有文档 移动互联网 金昊 搜狐-如何解决视频直播APP开发与性能痛点 移动互联网 刘振峰 移动社区的云实现和技术实践——Mob刘振峰 移动互联网 齐屹屹 高德地图SDK自动化实践之路高德-下载版 全球化专场-Joe-拥抱全球互联时代_部分1 全球化专场-Joe-拥抱全球互联时代_部分2 全球化专场-Joe-拥抱全球互联时代_部分3 互联网金融 刘发鹏 新零售互联网金融分布式架构实践-GITC2017-V3-4GITC 互联网金融 刘江-携程大数据风控实践携程-下载版 互联网金融 马俊 互联网技术团队如何应对互金业务的多变和挑战 网信财富集团 互联网金融 徐佳晶 Fintech场景下大数据处理的挑战与实践_徐佳晶 互联网金融 杨敏强 金山云互联网金融解决方案 网络安全 董俊杰 业务安全之反爬虫实践猎聘-下载版 网络安全 何艺 流量安全分析平台建设gitc-heyi 网络安全 刘刚 电商大促的那些事 网络安全 王志刚 DevOps开发模式下软件安全 网络安全 袁曙光 Docker安全实践探索 联众游戏-演讲版 网络安全专场 陈莹 实时攻击检测的智能化之路 携程 下载版 移动互联网 陈曦 链家网组件化路由方案解析 链家网路由 GITC 移动互联网 陈云龙 精益化数据分析——让你的企业具有BAT的数据分析能力 移动互联网 董岩-阿里巴巴-Apache Weex:移动研发的进阶之路 移动互联网 胡彪-饿了么Mobile Infrastructure Platform建设 GITC演讲稿 质量&测试 邱化峰 基于java代码的覆盖率在饿了么的应用 质量&测试 茹炳晟 测试基础架构的演进之路 ebay 下载版 质量&测试 陶文-基于流量回放技术进行中台建设 质量&测试 田西西 演讲版PPT 质量&测试 王公瑾 汽车电商架构测试实践 汽车之家 质量&测试 薛亚斌 京东金融app测试探索与实践 质量&测试_何畅_APP自动遍历程序的技术实现 互联网金融 高少峰-金融科技引领金融变革GITC_部分1 互联网金融 高少峰-金融科技引领金融变革GITC_部分2 互联网金融 李少伟 大数据驱动下的互联网金融创新 国美金融-GITC IoT峰会 吴川常 物联网商业系统构建之路 IoT峰会 郑晔 一个工业物联网应用的架构与实现 大大演讲_部分1 IoT峰会 郑晔 一个工业物联网应用的架构与实现 大大演讲_部分2 智慧物流论坛 陈俊波物流无人技术应用与探讨-陈俊波 智慧物流论坛 解本齐-国美安迅物流-GITC2017 智慧物流论坛 杨威 新物流--智能仓储机器人快人一步 智能仓储 让人类不再搬运 智慧物流论坛-李波-盛丰物流结算一体化的探索与实践(新) 智慧物流论坛-李伟-如何做到物流信息化建设的加减乘除_部分1 智慧物流论坛-李伟-如何做到物流信息化建设的加减乘除_部分2 智慧物流专场 伍冠军+苏宁物流在实时大数据的最佳实践 IoT峰会 仇剑东 智能家居生态系统的架构与实践 南京物联传感技术有限公司 前端技术 苗典 小程序框架-teddy 滴滴出行_部分1 前端技术 苗典 小程序框架-teddy 滴滴出行_部分2 前端技术 曲毅 多业务场景下的灰度解决方案2017-11-17_部分1 前端技术 曲毅 多业务场景下的灰度解决方案2017-11-17_部分2 前端技术 禹立彬 苏宁渐进式前后端分离实践 前端技术 郑勇 rn-web的设计与实现 携程_部分1 前端技术 郑勇 rn-web的设计与实现 携程_部分2 前端技术 邓国梁-前端开发前后端分离实践 饿了么-下载版 前端技术 黄勇 酷家乐 Virtual DOM在3D渲染中的应用——类ReactJS库的实现及3D应用 前端技术 林溪-tree-shaking性能优化实践 百度外卖-下载版 基础架构 陈杰-支付宝关系链平台设计与实现 基础架构 高飞航 陌陌服务化架构实践 基础架构 梁向东 饿了么API框架的实践 - API Everything R1 基础架构 刘星辰如何优雅的落地中间件-GITC_部分1 基础架构 刘星辰如何优雅的落地中间件-GITC_部分2 基础架构 刘星辰如何优雅的落地中间件-GITC_部分3 基础架构 宁克凡 目睹直播下载版终稿 基础架构 沈国勋-阿里旺旺百亿消息架构演进 基础架构 沈剑 互联网分层架构演进 基础架构 孙杰 大型企业云平台的实践之路 外发版 基础架构 魏云-轻轻家教-下载版-构建基于容器的混合云架构实践 基础架构 杨培锋 广东奥飞数据科技股份有限公司-下载版 基础架构 张良 小米MySQL高可用架构演进 基础架构 赵国光途牛系统架构演化实践GITC-下载版 基础架构 郑树新 爱奇艺高可用高性能服务器编程架构实践 - v6 大数据 赵天烁_魅族大数据可视化平台建设之路 运维 权熙哲 智能时代数据中心网络实践与趋势 运维 王忠宁-搜狗运维自动化平台架构设计与实践 运维 熊亚军 新ITOM 新监控_部分1 运维 熊亚军 新ITOM 新监控_部分2 运维 熊亚军 新ITOM 新监控_部分3 运维 熊亚军 新ITOM 新监控_部分4 运维 杨金全-微服务架构的应用性能监控 运维 余珂 爱奇艺-爱奇艺基于DPDK的网络优化实践-下载版 运维 周彦伟-用开源工具之利器,善MySQL运维之琐事 运维专场 黄振 开源运维自动化平台架构实现与运营实践 运维专场 宋国欢 猎豹移动可持续性自动化运维的探索与创新 大数据 曹永鹏-Mobike大数据平台建设 大数据 常雷-新一代数据仓库:Apache HAWQ 大数据 陈涛-喜马拉雅数据计算平台xql 大数据 高鹏 数据分析领域的黑马-ClickHouse-新浪-高鹏_部分1 大数据 高鹏 数据分析领域的黑马-ClickHouse-新浪-高鹏_部分2 大数据 高鹏 数据分析领域的黑马-ClickHouse-新浪-高鹏_部分3 大数据 高鹏 数据分析领域的黑马-ClickHouse-新浪-高鹏_部分4 大数据 黄波 微博机器学习平台实践 大数据 刘一鸣_Kyligence_Apache Kylin加速大数据OLAP 大数据 欧阳辰-实时大数据分析之利器Druid 大数据 吴君-基于大数据的智能交通搜索和一键预定系统 大数据 杨少航 从位置服务到数据赋能 大数据 张博 搜狗人工智能实践与合作生态 大数据 张惠亮 联动大数据处理架构的选择和演进 大数据 张翼-携程大数据平台实践 主会场 郭炜 智能时代的大数据用户分析 主会场 侯震宇_金山云混合云网络架构设计与实现 主会场 谭晓生 互联网进入大安全时代 主会场 王卓然-语义智能:技术探索与产品落地 主会场-陈国成 构建10亿级商品的电商平台架构(微店) 运维 张兴龙-京东基础运维的智能化实践 运维 陈怡婷 呼叫中心语音线路自动化运维之路 运维 程捷 海量数据在线分析技术剖析 运维 强昌金 MySQL_NDB_Cluster实践

文档介绍

圆桌论坛:东南亚出海那点事: 1. 出海企业为什么普遍把东南亚当作出海第一站; 2.现在企业的东南亚布局是怎样的(业务重点区域是哪里?什么类型的业务要出海?); 3. 出海东南亚如何选择IT和网络架构; 4. 遇到IT部署的问题和对业务的影响,未来的规划是怎样的。

演讲实录

11月23日IoT峰会上,Mobike 高级总监李玉峰分享了《IoT运维之路》,并介绍了摩拜在IoT运维路上的创新与改变。
无论做物联网也好,做互联网也好,我们在后端的研发人员,关注最多的是怎么发现问题,解决问题,包括车的问题,用户在什么地方,车出现了问题。骑行过程当中,结费是不是出现了问题,是不是支付出现问题,是不是用户登陆的问题,是不是哪儿崩溃了,但是我们在整体发现问题当中,做了哪些工作呢?



我们经常会有一些这样的感受,为什么每次情况都是业务先发现,客户先发现。还有一个就是我们整体值班是靠感觉的,然后觉得大家的值守,不管是说车整体的链路状态还是我们后台应用的状态,大家在值守的时候,都没有特别好的发现这个问题,大家就觉得这儿有可能出现问题。然后几乎也没有监控,就觉得我们是不是出一些历史性的图表,就可以把这些东西做好。



前期要有监控,大概会分几个方向,首先是业务监控,是不是要加车的状态、链路状态,从开锁到整体的用户支付,到收到订单,整体状态是不是每一个都要埋点。基础监控,硬件的基础设施、应用的基础设施、容器的基础设施上,我们要做哪些事情。链路监控,链路其实就是说整体的一个状态,对于软件层面,或者系统硬件层面,然后每一个地方,是否要采取一些数据,分析一些事情。



后面发现,这三点完全不够,进行了一轮改变,变成了:大数据监控、异常日志监控、Sentry、业务监控dashboard、Event Log、Tracing 全链路监控、Oncall rotation tool。但是这个东西留存度太高了,那我们怎么解决这个问题?进行了发现的优化,因为我们没有自己的机房,也没有自己的硬件设施,我们都是跑在云上,做了服务都拆分了。所以我们大概有两类问题,一类是关于业务,或者关于日志的问题,一类是关于基础信息的问题,那我们有两个节点去完善。



第一点完善,用Prometheus的两个节点,去监控我们容器的状态,监控我们实时下面基础组件的状态。然后我们去收集所有服务器相关的信息,去算一些信息的值,然后去做一些线上实时的分离,让一些硬件工程师去解决问题。



为什么当时会选择用Prometheus来做这一件事情呢?相对于来说,它的生态会相对于成熟,上手比较容易。因为摩拜是一个成立一两年的公司,也许技术沉淀还不是特别高,那我们会用一些比较快,比较容易上手的事情来做这一件事。

通过用Prometheus的Missiles相关的原生基础的节点,来做这样一些事情。因为我们这个Missiles也好,包括Prometheus也好,都是放在Dr容器里面的,但是他们有点像,然后实际测一测,每一个容器不超过0.2个CPU,就可以跑起来。

我们把报警拆出来,自己开发了一些单独的模块来组件。比如说我们报警所有的预置,会接到我们现在所谓报警数据库平台里面去,然后我们大概会预置好多模板中心,包括硬件的模板中心,软件的模板中心,不同的用户支付中心,然后数据库、软件之类不同的模板中心进行匹配。然后我们调动这个组件,会匹配一些策略。比如说也许ABC,三个不同的人,也许我们会在相关的时段,给A报20分,假如说20条短信,假如说一个小时之内。如果这个问题没有得到响应,我们会报给B,如果B还没有响应,我们会报给C。我们会一层级一层级的去报,这是一种调度方法。



其实做容器化的云平台,包括把整个IOT的过程放在云上,其实最大的问题,不是说我们整体业务代码怎么编,怎么写。其实对于我们来说,最难的其实就是说一些监控的调试。因为如果你要做容器化,其实你之前一个单体服务,也可以拆出十几个,甚至几十个这样的服务。



你拆这么多,你怎么发现问题呢?我们做了一些相关的事情。比如说做了一些相关的机制。比如说在每一个容器相关部门,不同属性,不同模块业务之间,相互顺序是什么样子,它的耗时是什么样子,情况是如何的。比如说我们之前调研过两款开源还不错Trace的工具。有一款还是比较流行的,包括国外的案例,做的一个鹰眼这样的系统。然后我们根据开源,做了一些二次开发。我这里大概截了一个Trace的图,大概说明一些问题。

比如说假如是一次简单的访问请求,它由三个模块组成,一个是色块区域,它记录什么?它记录比如说我们用户骑车,从开锁发动请求到解锁,整个完成过程到扣费,整体一个准备是什么样子的,他请求的时间是多少,服务器接受请求时间是多少,完成处理,反馈请求的时间是多少,其中的耗时是多少,也许在这个阶段,会定位一些什么问题。比如说请求之前,你出现了问题,没有发出去,我们服务器没有收到,导致开锁延迟。色块里面,记录了这样一些状态。整体色块组合起来,是整体请求的次数,所有公共的ID叫TraceID,这个可以方便快捷的定位和解决问题。



大概有几个指标,刚才我说了,色块有一系列RPC的构成,一系列的CPC的系列。主要包含什么?主要包含一些信息,比如说CRS,客户端发起的一次请求。它会把这个时间记录下来。然后通过RS的请求时间,就是服务器接收到请求,开始接收时间点,我们就可以算出来,他们的时间是不是有误差,是不是会有网络延时。是不是始终会有问题。SF服务器是否完成了整体处理请求,访问客户端的一个事件。这个SF是否可以跟SR,算出一个处理的时长。服务器完成请求,处理完以后,这个时间段,是不是我们可以算出来,服务器的请求,这是整理数据包的时候,花了多长时间,这个过程,其实可以算出一些现在瓶颈的问题。大概Trace的概念就是这些。

如果我们后端应用通过微服务部署,做了很多容器化相关的事情,其实比较必要的就是效率的问题,比如说我们用监控发现问题,我们怎么快速解决这个问题。比如说你们在骑行过程当中,车子出问题了,车故障了,那我们怎么提升后台统一协调的效率。或者有什么好的解决方式,来做这样的事。我们其实做了一些相关CD的事情。其实摩拜CD的一个演化过程。最开始,我们非常简单的部署。也许我们集群在一个更好的容器上,会有一系列维护的工具,来做一次性的部署。



刚开始部署的时候,也许你lb的请求,你在维护、在升级的时候,你会把lb挂到一个维护页面。你要完成一个更新测试,如果成功了,你会恢复所有的监控。也许失败了,你会把lb取出去,解决问题以后再回来。这样一次性的过程,比较省事,也挺适合你单台机器,十几台机器的状态。但是这种服务器维护窗口时间太长了,所以很早就被弃用了。



然后做一些类似于巩固升级这样的事情,在你的应用,在CD的时候,是不是可以尝试说你们有多组服务,每一组服务有冗余,那我们每一组数据单独摘出来,然后去做一次一次的巩固升级。比如说你刚开始说,也会从lb下载服务,相同的服务。然后让其他几种服务,你这个服务就可以一台一台做我们的升级,当然前期做的时候,你们也要Down time到你的监控服务。一组完成以后,再进行下一组,进行下一组。



这样的好处就是,你整体业务可应用型是百分之百的,几乎没有断裂的过程,那出现问题,唯一不好的地方,也许你会出现两个版本,一个老的版本在实时运行,你现在的版本,其实也是存在的下面会出现一种问题。那我们出现这种问题,这个问题怎么解决,我们参考了一个做云的亚马逊,他在海外一家公司,部署的情况。其实原理很简单,他做的是一次性的部署,相当于是说,他用了AWS的ELV集成代理,他在每一次上线新服务的时候,他会新起一个工具,先做一件图件。比如说他要做用户中心,他会先起一个用户中心这样的组件,把用户中心重置,初始化,一次完整性的发布。

发布完以后,测试通过,整体都测试通过,用户把这个连接指向过去,指过去以后,没有问题,上线了。属于有问题,ERB也会以很快的时间,切回正常的老服务。我们在它的基础之上,做了一些改进,蓝绿部署,现在行业里也比较通用的一种方式,大概做了什么事情?我们现在同时存在两个集成,同时都是提供服务的,也许这组是流量比较大的集群,这组是流量比较小的集群。也许我们会做一些升级,做升级的时候,我们会通过lb,把所有请求都录入到咱们这个执行上去。B的时候,它这个时候不接受请求,它这个时间段,可以释放他之前所有的请求,进行处理。到了一定的时间段,接受请求处理。之前请求处理完之后,进行一个巩固升级。升级完之后,OK,这个没有问题,它的lb就回来,录入到B里面,把它录入上来,指向新的软件技术,再持续部署。只要他部署完善以后,由两者分担,两者同时都能工作,同时存在。

这种架构设计得好,一旦每一个机房如果有充电问题,可以从这个层面,去破除这样的问题。比如说我这个阶段出现问题,我可以把60%的流量,Push到这个机房里面去,然后它承接百分之百。当然前期它有一定的能力承担。他承担了以后,我们做蓝绿部署自己做,做完以后,整体没有问题,然后去接上,告诉他们我们这里已经完成了,再从DNS也好,或者其他CEN这样的平台,把所有的数据都又回来了。大概整体从路由更新到路由探测的一个过程。

把所有软件适配,所有这样的事情,会串在系统集成的流程里面来做CI,这是我大概画了一下我们现在做的CI所有的集成的拓扑图。一个新版本,构建出来,打包成一个可部署的迹象。打包部署完成以后,也许你会通过一些回归测试,可能是第一步回归测试环境,进行回归测试。紧接着这个测试,它会有下跌的UPS这一类设备操作,你测试通过的同时,也许你会打一个值,扔到系统里面去。包括刚才我讲的,一些不同的方式列出去。告诉他,我已经走到回归测试了,走到回归测试以后,然后我们继续适配。



通过UT,通过FT之后,走到了一个最终的回归测试,OK,这个版本已经完全可以上线了,这样时候,打一个最终的版本,给我们的CD。让他确定没有问题了,可以完成整个发布了,这个CI流程已经完结了。如果从每一个环节出现问题,比如说从第一次回归的时候出现问题,或者从适配的时间出现问题。这个流程会被打断,打断以后,然后他们会重新进行测试。

我们整体的链由,因为散热的方式,现在都是集中自动化的。没有什么弯域。这样就会有一些问题,比如说好多环境有监控,每一个人是不是要有一个监控。出现这种控制的问题,怎么搞定。我们就放在这个框架里面,我们用这个框架,管理整体的监控式集群,我们通过DR软件,预定一个模板,它会有基础的配置,权限,每一个业务部门想做CI的时候,会从进项里面拉一个出来。它其实可以注册,或者到你的容器平台进行注册。注册完以后,可以形成一个值,去调动这些业务,完成整体的调度的过程。



也许会有那种情况,怎么做?有一种情况,你使用这个环境的时候,也许会预编一个环境的问题,这个CI流程怎么跑,也许会有一个预编。比如说你要求环境是新的,要求数据是无污染的,也许你会要求新建一个环境,它不会拉原有的,去执行这个过程,它会新建一个环境,从容器池里面拉住一个,构建新的环境,完成一系列平台的测算,到一系列的执行测试到完毕。

然后如果还有一种,比较着急,你CI流程想很快的跑完,不会要求痕迹,特别复杂,特别难受。也许你就会拉一个相对来说,之前存在的环境。你会重新构建,重新生成时间,把这个流程跑完。

×

打开微信扫一扫,分享到朋友圈