百度外卖从IDC到云端服务迁移历程
目录
目
录
1
※ 百度外卖平滑迁移百度云的历程
※ 自我介绍
※ 基于云的运维平台建设
2
3
自我介绍
月~月
• LBS-OP技术负责人
• 负责百度地图、百度外卖、百度旅游
月~月
• KS-OP技术负责人
• 负责百度知道、百度文库、百度旅游
• 负责社区基础架构部服务运维
月
• 大连理工大学,计算机专业研究生
• 入职百度运维部
• 加入百度外卖
• 担任运维总监
月~至今
目录
目
录
1
※ 百度外卖平滑迁移百度云的历程
•背景&挑战
•迁移目标
•解决方案
•迁移效果
※ 自我介绍
※ 基于云的运维平台建设
2
3
迁移百度云| 背景&挑战
百度外卖从百度spinoff
挑战&难点:
•数千台服务器规模
•数百 T mysql数据,数T Redis数据
•业务架构复杂:用户端/商户端/物流端
•业务抢占市场份额期,不允许服务中断
迁移百度云| 背景&挑战
迁移百度云| 迁移目标
平滑迁移、分钟级切换、业务零感知
云环境准备
• 机房选择
• 网络打通
• 云主机准备
业务架构迁移
• 架构解耦
• 业务拆迁移
数据同步迁移
• 数据级联
• 实时同步
• 降低延迟
迁移百度云| 云环境准备
• 百度云机房选择:多地域、低延迟
• 网络打通:百度IDC与百度云打通专线,数据实时同步
• 云主机准备:专属机,镜像安装(内核裁剪[镜像]),puppet初始化系统参数,DNS服务
迁移百度云| 业务架构迁移
• 业务解耦:业务拆分独立迁移
迁移百度云| 业务架构迁移
• 业务解耦:bns(Baidu Naming Service)打通,各业务拆分独立迁移
• 自顶向下:业务迁移、数据迁移拆分,独立切换
迁移百度云| 业务架构迁移
迁移百度云| 业务架构迁移
• 业务调用原则:避免跨region访问,垂直关联
• 业务改造点:WODP版本迭代,代理改造,bos基础数据迁移,cdn迁移
迁移百度云| 业务架构迁移
• 读全流量切至百度云,保留IDC应用层服务,做好回滚预案
迁移百度云| 数据同步迁移
• 存储层:读写分离,读写分步迁移
• 级联:解决主库网卡压力问题
迁移百度云| 数据同步迁移
• 写流量迁移:避免跨地域写;
• 操作顺序:redis -> mysql -> nmq -> commit域名
迁移百度云| 数据同步迁移
• 跨端依赖:减少跨地域请求,降低服务性能损失
• 一次跨地域?多次跨地域?
迁移百度云| 迁移效果
• 历经7个月时间
• 外卖自研21个系统
• 方案打磨近10次
• 百度云支持解决了47个问题
• 平滑、无损、对业务无感知
耗时:60s左右
耗时:30s左右
迁移百度云| 迁移效果
目录
目
录
1
※ 百度外卖平滑迁移百度云的历程
※ 自我介绍
※ 基于云的运维平台建设
•网络层
•操作系统层
•应用层:围绕业务生命周期
•正在做…
2
3
运维平台| 背景
Spinoff
入职
域
ERP
邮箱
VPN
UUAP
开发立项
开发机申请
代码提交
编译发布
GZ NJ SZWG
服务器硬件
操作系统安装
IDC环境
系统初始化
代码上线
服务安装 各种平台服务,bdrp等
VIP
BNS
域名
监控
服务器登陆
WIKI
PAAS平台
运维平台归 0
线上环境归 0
运维研发团队 0
系统平台归 0
办公平台归 0
背靠大山,白手起家
从法拉利到拖拉机?
PS:域名进行了更换
运维平台| 背景
近1年时间 6个人
两大主体平台: Pacific Atlantic
业务平台 11个
通用服务 6个
Go lib库 11+
对外接服务 30+
运维平台| 网络层
• 内网网络监控:
• cmdb的agent里集成nmap的sdk
• 探测千台服务器耗时为3s
• Redis做存储,过期存储
• 屏蔽网络故障对检测服务的影响
运维平台| 网络层
• 外网网络监控:公有云环境到各个城市ISP节点的链路质量监测
• 与apm监控互补,apm的数据在网络出现问题时不能上报
运维平台| 操作系统层
操作系统优化:
• cpu优化:关闭cpu降频,打开超线程
• 内存优化:刷脏页的频率优化、transpare
nt_hugepage
• TCP/IP优化:SYN 连接请求、TIME_WAIT
套接字的最大数、最大的监听队列的长度
、关闭ipv6等等
• SSD盘参数优化:磁盘调度策略、随机熵池
内核裁剪[镜像]:
• CONFIG_NO_HZ 关闭
• CONFIG_SPARSE_IRQ 开启
• CONFIG_TRANSPARENT_HUGEPAGE 关闭
• CONFIG_KEXEC CONFIG_KEXEC_AUTO_RESERV
E CONFIG_CRASH_DUMP 开启
• CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORM
ANCE 开启
• CONFIG_KSM 关闭
• CONFIG_COMPACTION 关闭
• CONFIG_MIGRATION 关闭
运维平台| 应用层
• 核心原则:初创团队
• 围绕业务发展
• 支撑业务核心需求
• 深入各个环节细化
运维平台| 环境准备
• 理念:运维标准化、运维效率
• 历程:百度云做镜像->puppet初始化(系统参数优化/常用工具)->blb/eip工具集->硬件故障检测->CMDB
运维平台| 上线部署
运维平台| 上线部署
部署系统:满足需求->精雕细琢
★ 抓住当前痛点,优先解决1-2个问题.
• 上线系统 完成最简单的单模块上线
★ 关键时机,大胆重构
•上线系统 —架构转折性变化.
•执行效率从半小时以上降低到分钟级别.
•成功率从89%提升到99%
★ 精雕细琢,提升速度和功能完善
• 速度: 上线系统 —秒级打包,秒级上线,
回滚优化,对接效率云等.
• 功能: 上线系统 —diff 代码,配置派生
等
运维平台| 正常运行
• Atlantic平台:系统性思维、挖掘需求的通用性、开源与创新
• 内容:容量资源、工单统计、网络耗时、业务SLI指标等
运维平台| 正常运行
Atlantic平台: open-falcon 及 grafana 的应用
数据收集 —业务方推送给open-falcon
数据存储 — graph 和 opentsdb等
数据展示— grafana定制dashboard需求
数据报警— open-falcon
•修改graph query模块,增加多条件查询
•增加同比、环比等函数功能.
•增加求和计算、百分比计算等函数功能
•增加和修复图表功能,如趋势图、中国地图等.
•对接wm-uuap 权限等.
Open-falcon
Grafana
运维平台| 正常运行
• 预案执行系统:实现配置降级,已录入36个业务降级;可以实现分钟级别降级恢复
• 底层调用上线部署系统,进行降级配置的替换。
运维平台| 正常运行
工单系统:支持可定制工单模板,支持移动审批
运维平台| 正常运行
数据库操作:乐高+metis平台
• sql提交、sql审核、sql操作等
运维平台| 正在做…
运维平台| 正在做…