浙江大学软件学院讲师才振功——容器环境下的智能运维技术研发与实践

2020-02-27 1087浏览

  • 1.容器环境下智能运维技术研发 与实践 才振功 博士 浙江大学SEL实验室
  • 2.
  • 3.
  • 4.
  • 5.浙江大学SEL实验室 容器环境下智能运维的挑战 容器环境下智能运维研发实践 智能运维发展展望
  • 6.浙江大学SEL实验室 2009 2001 ! ! 2011 SEL ! 2013 ! 2016 ! SEL Zhejiang University!
  • 7.实验室团队 ! •  / ! •  / 20 100+ ! ! CIO IT ! ! ! ! SEL ! ! ! •  100 •  •  •  DST IFDS ! ! ! •  •  •  •  • 300 ! ! ! ! ! ! !
  • 8.实验室容器云贡献 pC  NCF 200 Kubernetes Docker p  ! 2016 7 20 ! ! Kubernetes! Docker! Cloud Foundry! ! 1! 5! 3! ! 5! 24! 26! Kubernetes ,, 2017/8/30! -- byhttp://stackalytics.com/!! 5!
  • 9.我们为什么做容器平台 的智能运维 !! !! SEL Zhejiang University!
  • 10.浙江大学SEL实验室 容器环境下智能运维的挑战 容器环境下智能运维研发实践 智能运维发展展望
  • 11.传统运维挑战 ! ! ! !
  • 12.容器环境特点 •  容器化是IT架构*要发展趋势之一 •  组件和服务数量众多 •  部署模式多样化 •  自带服务治理功能
  • 13.容器环境下智能运维挑战 ! ! !!
  • 14.浙江大学SEL实验室 容器环境下智能运维的挑战 容器环境下智能运维研发实践 智能运维发展展望
  • 15.智能运维技术研发与实践 •  •  1. ! •  ! ! ! •  •  2. ! •  ! ! ! •  •  3. ! •  ! ! !
  • 16.1. 容器统一监控 •  案例场景为某政务数据中心,采用IaaS+容器技术方案 •  *要业务:支撑各部门单位应用系统发布运维 •  特点:系统托管在数据中心,发现问题后,应用方请求 数据中心提供相关数据进行故障诊断 •  目标:提供适合应用的监控数据,供运维运行分析
  • 17.! !! Ag!e! nt! !! flum! ! e! ! ! …! ! ! ! !! Ag!!e!! nt! flum!! ! e! ! 设计思路 ! ! ! ElasticS! earch! ! !! ! ! ! ! ! Spark Str! eaming! ! ! !! ! Kafaka! ! ! ! Spark! SQL! ! ! HBa! se! ! HD! FS!
  • 18.容器监控方案
  • 19.如何监控容器镜像 •Option1:镜像提前做好,tomcat,jetty等启动命令提前 加好 •  Option 2: 脚本Batch 批量更新镜像 •  但: 根据只跟踪service ip, 没有pod ip,如何对应到pod
  • 20.Agent与K8S •  Agent如何识别自己是哪个service?哪个POD? Ø  ETCD维护着service与pod关系 Ø  Agent启动时查询自己所属的service
  • 21.如何获取链路 •  对代码掌控能力较强采用OpenTracing •  对代码进行插裝实现Google Dapper的原理 origin.class Class Loader new class JVM Javaagent Tomcat ! Request Response
  • 22.Google Dapper
  • 23.链路跟踪 •  TraceID : 识别用户一次请求,所有全链路上的节点共 用一个TraceID •  SpanID:正在处理用户请求的节点 •  ParentSpanID:正在处理用户请求节点的上一个节点
  • 24.2. 故障根源分析 •  案例场景为某在线教育平台 •  提供各类教育资源分享,用户广泛,IT技术能力差异显著 •  客服经常接到比较奇葩的投诉,很难给出合理建议 •  发生故障后,IT团队修复问题需要花费较长时间定位问题根 源 •  目标:减轻客服和运维工作量,快速定位故障或投诉根由
  • 25.! ! ! 分析流程 ! ! ! ! ! ! ! ! ! Trace ! ! ! ! !
  • 26.动态拓扑结构
  • 27.基于拓扑的异常检测 WEB Logic Logic DB 1 DB 2 •  构建执行链正常模型 Ø  资源访问 Ø  性能基线 •  异常行为检测 Ø  行为异常 Ø  性能异常 Ø  访问量异常
  • 28.因果关系分析 •  因果关系分析定义 Ø  构建数据中心服务拓扑结构图,如右图A调用B触发B调用C, A->B称为B的因边,B->C称为B的果边 •  如何判定因果关系 Ø  果边应发生在因边之后的一个特定的时间段,即服务延时 Ø  服务延时不能超过超时时间也不能低于服务处理时间 Ø  通过关联分析,判断潜在因果关系
  • 29.故障根由定位 •  对故障相关容器节点的可能性进行量化分 析 Ø  形成故障因果关系链,执行链的历史执行频度将 作为该链路上节点权重 Ø  计算因果链上每个节点的影响 ü  以右图D为例,影响D的节点为E,F等,受D 影响的节点为C,B,A Ø  量化单个节点对其他节点影响 Ø  P(D F)=P(DF)*wF/P(F) Ø  P(C F)=P(C D)*P(D F),其中权重由节点历 史执行频率决定 Ø  异常发生时,可快速计算出其他节点的嫌疑 程度 0.9! B! 0.90! 0.95! C! 0.88! A! 0.85! 0.8! 0.88! E! 0.5! 0.8! D! 0.84! 1! 0.98! G! 0.6! 0.9! H! 0.78! F! 0.8! 0.4! 0.6! H! 0.86! I! 0.8!
  • 30.3. 智能调度 ! 10+ ! ! !
  • 31.设计思路
  • 32.性能瓶颈定位 ! ! ! !
  • 33.性能瓶颈定位 •  资源利用率 Ø  服务时间估算 多元线性回归) Ø  资源利用率预测 •  响应时间预测 Ø  MVA队列模型 Ø  BP神经网络 + 遗传算法
  • 34.应用容量估算相关方法 ! •  CPU IO ! ! •  ! •  HoltWinters! ! •  Regression Analysis! ! •  Neural network! •  Queue network! •  ! !
  • 35.Access log! Transaction profile! ETL! Resource log! 0.8 0.6 0.4 0.2 util 0 5 13 21 29 37 45 53 61 69 77 85 93 1 9 17 25 33 41 49 57 65 73 81 89 97 1! Regression Analysis! 2! Transaction Transaction resource demand! ordering shopping search browsing 0 2 4 6 8 10 12 demand(mills) DB Disk DB CPU Web CPU
  • 36.应用资源需求估算 •  MySQL CPU vs
  • 37.容器动态资源调度 •  Kubernetes容器资源调度:Predicates和Priority •  业务指标驱动资源调度 Ø  容器业务访问量预测 à Ø  容器资源需求 / 应用性能分析 à Ø  如可能过载,容器弹性伸缩或迁移 ! ! ! ! !
  • 38.浙江大学SEL实验室 容器环境下智能运维的挑战 容器环境下智能运维实践案例 智能运维发展展望
  • 39.智能运维展望 ! !! •  •  ! •  ! •  ! or •  • …! ! ! •  !
  • 40.进一步交流请加微信
  • 41.