京东云架构
加减乘除 TopN 分位值 ……
JNS
范围圈 定
调度 策略
数据接收
Nginx->sparkA Mysql->sparkB App1->sparkA App2->sparkB
分机房
部署
ES
RedisFresh
RedisMeta
saver
Es-client redis-client
Interface 数据抽样 Metric-meta
京东云自动化运维 体系构建
郑永宽
京东云资深架构师
个人简介
华中京东云运维平台负责人
京东云自动化运维体系构建
6年自动化运维平台研发运营经验
目录
01 概要介绍 02 基础组件介绍 03 部署系统介绍 04 监控系统介绍 05 总结与展望
业务实践 • 京东云监控体系 — 全链路监控解决方案
智能监控-基础监控
• 机器监控
– 自动采集,支持物理机、虚拟机、容器 – 采集项全:Cpu/mem/disk/net/load/swap/system – 支持一键搜图 – 检查机器连通性
• 默认的报警配置
告警 cpu空闲率
计算(阈值) cpu.idle<10%
数据接收
query
Es-client
redisclient
Interface
自适应路由 查询格式转换
API
基础组件 — 客户端体系构建
• 客户端的挑战:
– 全部机器、各种功能Agent多 – 机器环境复杂(磁盘、链接库、安全认证、隔
离环境) – 定期守护(自我守护不行,外部守护) – 资源限制(cpu/fd/mem/日志) – 分级发布
业务 数据
…
JNS
机器
网络
域名 应用
• 功能亮点
– 采集手段丰富,功能覆盖全面 – 多种异常检测策略
• 同环比/突升突降 • 数值/字符串报警
– 多维度分析能力,精准发现问题 – 报警功能丰富
• 支持报警合并 • 支持报警回调,故障自愈
– 丰富的数据展示功能,定制化 DashBord支持
• 性能
– 10w+机器(容器)量级
核心诉求
跨平台混合云管理
采用网络负载接口的抽象和多平台适配 技术手段实现私有云、公有云和各种虚 拟化平台。 如VMware、OpenStack、物理机资源 的统一接入管理。帮助用户实现统一的 运维管理体验。
简化运维,轻松实现DevOps
通过统一操作入口,同时通过对特定的 运维场景定制化的支持,实现一键部署、 一键添加监控,一键上下游关联关系解 耦,使得运维简单高效 同时可统一收集应用实例的日志,能够 快速查询和检索,帮助快速定位问题。
– 对指定的一批机器,按照指定策略,执行指定命令
• 批量执行
– 基于服务树和JNS – 指定账号
• 策略
– 并发控制:并发度、串并行 – 容错控制:失败阈值、超时阈值
• 扩展性
– 业务端统一API – 插件化
• 可追溯
– 任务记录 – 单机日志
基础组件 — 监控数据平台
• 实时数据计算
– 调度spark计算的能力 – 基于JNS的范围圈定 – 丰富的算子支持
• 可用性(稳定性) • 效率:研发、运维、测试的全环节效率 • 成本
安全
备份管 理
监控管 理
• 京东云运维新挑战
• 对内保障京东云自身系统稳定性 • 对外保障SaaS用户业务稳定性 • 提升用户交付效率 • 精细化运维体验
基础设施 运维
部署变 更
故障管 理
运维 场景
环境维 护
资源管 理
网络管 理
业务系统 运维
功能实现
• 功能亮点
– 部署:支持构建包和镜像两 种部署,轻松支持物理机、 虚拟机和容器(Docker) 资源;
– 服务和资源管理:基于NS 的自动化服务和资源管理, 研发无需关心APP下实例的 变更
– 多环境管理:支持测试、预 发、线上环境分离,同时支 持分级发布
– 日志:支持日志订阅与分析 – 流量:支持ContainerLB – 支持秒级回滚,止损效率高
• 维护实例-App-主机之间的对应关系 • 服务关联关系管理 • 服务解耦合
服务树与名字服务示意图
公司 二级部门 产品线
系统 应用 实例
京东云
基础云
云主机
云硬盘
技术保障部
运维工具
CDN
名字 服务
Ark
Load
Instance1
Instance2
主机
实例
APP
基础组件 — 分布式任务调度
• ControlTower
1:支持命名正则提取 2:支持运营商/省份转换 3:支持公式计算 4:支持字典转换 5:支持数值分桶
智能监控 — 业务监控
• 用户侧黑盒监控
– 外网域名监控(模拟全国各地用户访问)
• 整体和分运营商/省份访问情况
– 自定义方式模拟用户操作(脚本接入)
• 用户相关操作成功/失败及对应原因
总结与展望
定制化用 户运维
京东云运维平台 – 为京东云保驾护航
京东云运维平台概览
RoadMap
SaaS化
运维平台完善
监控部署系统构建
基础组 件构建
客户端体系构建
基础组件 — 服务与资源管理
• 服务树
• 业务组织架构信息 • 全流程机器管理 • 角色管理与基于角色的权限控制 • 其他meta数据
• JD Naming Service(名字服务)
运维工具构建 — 智能监控系统
• 核心诉求 — 缩短异常生命周期MTTR
– See->know->act
监控标准
抽象为基础监控、存活性监控、性能监 控、应用监控四级,指导用户什么是一 个 ‘全’的监控
跨云部署解决
通过代理方案,支持私有云、公有云、 混合云等不同的基础设施
多环境支持
多环境支持,包括linux、Windows操作 系统,支持docker,物理机,虚拟机等
• 京东云自动化运维平台 —
总结与展望
• 智能化运维 • 服务化 — 致力于京东云客户成功
• 服务全生命周期devops
• 人员效率提升 • 交付效率提升 • 资源效率提升 • 服务稳定性提升
• 专有云、私有云、混合云运维解决方案
• 一键接入 • 无限扩展 • 7*24小时支持
计算(阈值) proc.status != 1 proc.cpu > 2 Port.status != 1
智能监控 – 性能监控
• 四大黄金指标:流量、错误码、平响、容量 • 采集方式
– 日志监控(类似logstash,命名正则) – 自定义输出(脚本、http,约定格式)
• 报警推荐
• 流量(同环比) • 错误码/容量(恒定阈值) • 平响(突升突降、恒定阈值)
全链路监控解决
采集从机器、网络、域名到常见的开源 软件;支持聚合计算,告警处理,预案 平台等
部署进行联动
跟部署方案进行结合,上线过程无 告警;事件流图,告警时方便知道 是否是上线导致
智能监控功能实现
数据展示
Dashbord
报警展示
事件流图
离线处理
MetaDB 数据挖掘
根因推荐 关联分析
预案 止损
ES
自动容错,服务不掉线
可自动为宕机服务器上运行的容器重新 迁移并生成容器资源,保障业务不掉线, 高可靠运行。这也就意味着您不用再为 一两台服务器的宕机,而经历一个不眠 之夜。 容器实例服务健康检查,服务意外故障, 自动拉起,做到服务故障自愈。
全生命周期,一站式服务
实现开发-测试-部署-运维-运营的服 务全生命周期管理,轻松实现持续 集成,提升研发部署效率 同时支持服务编排,针对微服务场 景提供特定优化
一键伸缩,轻松应对业务爆发
可以管理任意规模的应用。不管是 10还是1000个实例,都可以在轻松 实现弹性扩展。 一键扩展应用实例,从而轻松应对 业务的爆发式增长需求。
灵活定制容器,降低企业成本
以租户为单位实现,资源隔离,权限分 配,资源配额管理。相比传统数据中心 物理机或者虚拟机,云翼轻松实现资源 容器化,从而提升资源利用率,降低企 业成本
异
常
proxy
事 件
实时处理
puller 实 时
Kafka& 聚 spark 合
计 adaptor 算
query 时
序
ES & 数
redis
据 存
saver 储
sender
报
alert 警
通
judge 路
数据采集 数据抽象
采集Agent
外部探测
API推送
机器 端口 网络 进程
自定义
日志
语意 死机
方法 环境
• 成功客户
• 华南城 • 京东保险 • 京东物流 • 宿迁政务云
Thank you!
下游
存储
报警
• 时序数据存储 — TSDB
– 热点数据redis存储 – 多机房部署,数据热备,高可用 – 读写分离,高效稳定 – 自动抽样,查询自适应路由
分机房 Spark 计算
Puller-A Spark-Job-A Kafka-topic-A
Puller-B Spark-Job-B Kafka-topic-B
• 统一Agent管控ifrit:
– 托管Agent升级功能 – 类puppet方式,定期获取更新列表 – Agent存活守护 – 资源超限守护 – 具备分级发布能力 – 公有云/私有云/混合云的部署解决方案