AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

脚踏实地,仰望星空—运维可以不那么伤 by 黄河

发布者 devops
发布于 1437883200296  浏览 4866 关键词 DevOps 
分享到

第1页

脚踏实地,仰望星空—运维可以不那么伤 

2015-04  黄河

微信:h2ofly  微博:黄河H2O 



第2页

Sections 

«devops理念  «c mdb  «持 续集成  «发 布 



第3页

桑感的运维是怎样的? 

搬机器

人肉运维 背黑锅的



第4页

实地,星空 

«实地 

þ 日常运维:繁杂系统,支持故障频发的系统:运维维度各种优化+架构开 发维度优化 

þ 各个运维模块,平台建设   。。。 

«星 空 

þ 系统可用率99.99%  þ 自动化服务器生命周期管理、服务管控  þIAAS 

þ 私有云     。。。 



第5页

devops理念 

«开 发、运维协作更加紧密 

þ 尽量全程参与开发流程 

– 运维了解应用系统的的体系结构、核心代码 

þ 问题前置: 

– 提出:配置、监控、安全、潜规则、规范,容量  – 推动:运维+开发层面系统优化  – 了解:开发的要求,部署、特殊要求等 

«透 明 

þ cmdb、puppet 

«自动化 

þ 项目启动、开发、测试、(预发布)、发布、运维流程对接和串联  þ 高效工具的提供 



第6页

cmdb——基础 



«配 置管理数据库 

þ 机器信息  þ 应用信息  þ 机器生命周期管理:上线、使用(初始化、部署)、下线  þ Pool维护:自动化申请,下线归还 



服务器上 架安装 +虚拟化



自动化入 库



空闲机器 自动化部 署运行

潜规则配 置透明化: puppet



第7页

cmdb 



第8页

向前一步——持续集成 

«当前面临问题 

þ 手工合并代码工作量大  þ 手工合并耗时耗力  þ 多项目分支一起发布合并麻烦  þ 不断合并,不断部署  þ 上线后再合并入trunk  þ 配置文件管理费力 



第9页

持续集成流程 

«设 计流程  «整个流程需要自动化 

þ 合并: 

– svn merge  – 检测冲突 

þ 编译:mvn  þ 部署:tomcat封装脚本  þ 流程一键化  þ 下游接口对接 



第10页

持续集成系统——jenkins 



系统组成



合并 



编译 



部署 



提交 



撤回 



合并 



第11页

发布 

«发布面临问题 

þ 居然有增量发布?  þ 上传代码,scp,rsync?  þ 启动脚本不一致?  þ 配置文件怎样管理,手工拷贝?  þ 发布怎样做到灰度?  þ 怎样确认应用发布ok与否?  þ 发布不成功,回滚?  þ 整个过程手工多,需要运维全程参与  þ 一不小心敲错了  þ 开发永远比运维多,怎样让他们自助,降低劳动量 



第12页

发布平台 

«发 布平台面临问题 

þ 发布面临的问题+  þ 版本如何管理?  þ 代码如何分发?  þ 发布状态如何抽象流转?  þ 发布怎样做到灰度? 



第13页

发布平台 

«发 布版本管理 

þ 链接+上浮版本号  þ 配置文件和代码一起->zookeeper配置中心 

 

«发 布发布状态抽象和流转   

   

 



第14页

发布平台 

«发布检查 

þ 版本  þ 启动时长  þ 错误日志:容器+应用  þ 健康检查页面 

– 应用启动完成,根据业务情况,反馈ok or error  – GET /monitor.jsp 



第15页

发布平台 

系统模块组成



代码分 发 



deploy  check 



Version DB 



App DB 



第16页

Sections 

«devops理念 

þ 紧密协作、透明、自动化 

«c mdb 

þ 基础:自动化服务器生命周期管理、IAAS 

«持续集成 

þ 向前一步,对接发布系统 

«发布 

þ 自动化部署,从重复的工作中解放 



支持文件格式:*.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。