淘宝资深软件开发工程师和系统运维工程师撰写,淘宝一线运维工作经验的总结,国内首部关于软件管理平台设计与实现的专著
不仅详细讲解了RPM和yum等软件管理工具的使用方法、技巧、原理和本质,而且还系统讲解了软件管理平台的规划、设计与具体实现
海报:
第1章 RPM认知与格式剖析
1.1 软件包的演变史
1.2 RPM软件包基础知识
1.2.1 RPM软件包的功能
1.2.2 RPM实现引子
1.3 RPM 格式剖析
1.3.1 从协议说起
1.3.2 RPM格式总览
1.3.3 RPM之lead
1.3.4 header structure
1.3.5 RPM之signature和header
1.3.6 RPM之archive
1.4 RPM解析例程
1.5 本章小结
第2章 RPM制作与SPEC详解
2.1 RPM生成要素
2.2 RPM制作实例
2.2.1 环境准备
2.2.2 源码准备
2.2.3 SPEC文件编写
2.2.4 生成RPM包
2.3 rpmbuild介绍
2.3.1 概述
2.3.2 使用说明
2.4 SPEC文件解析
2.4.1 SPEC组成元素
2.4.2 SPEC元素解析
2.5 本章小结
第3章 深入理解和使用yum
3.1 RPM运行机制浅析
3.1.1 RPM数据库和Packages文件
3.1.2 RPM日志和定时任务
3.1.3 yum/rpm阻塞现象
3.2 yum的出现
3.2.1 RPM面临的问题
3.2.2 yum的构成
3.3 yum服务搭建实例
3.4 软件包的索引机制
3.4.1 createrepo命令
3.4.2 索引文件
3.5 本地缓存
3.5.1 缓存中的内容
3.5.2 索引中的SQLite文件
3.6 配置详解
3.6.1 全局配置
3.6.2 repo配置
3.6.3 插件配置
3.7 本章小结
第4章 yum的插件机制
4.1 插件介绍
4.1.1 插件的概念
4.1.2 插件的调用方式
4.2 yum的插件
4.2.1 yum插件的组织方式
4.2.2 yum插件调用情景
4.3 yum 插件开发注意事项
4.3.1 函数接口规范
4.3.2 插件私有选项读取方法
4.3.3 插件类型
4.4 再议仓库优先级
4.5 插件开发与实例分析
4.5.1 view_hook插件
4.5.2 downloadonly插件
4.5.3 fastestmirror插件
4.6 本章小结
第5章 企业软件管理现状与规划
5.1 企业软件管理特点
5.1.1 异地多机房
5.1.2 服务器数量多
5.1.3 软件数量多
5.1.4 OS版本较多
5.1.5 服务高可用
5.1.6 网络环境复杂
5.2 问题总结
5.2.1 软件个数过多
5.2.2 RPM冲突
5.2.3 开发测试包和线上包
5.2.4 不同RHEL版本支持
5.2.5 单点问题
5.2.6 跨机房访问带来的带宽问题
5.2.7 大量客户端引起的网络瓶颈
5.2.8 异地机房灾备
5.3 软件仓库规划之路
5.3.1 软件仓库划分
5.3.2 redhat仓库分支规划
5.3.3 第三方包仓库规划
5.3.4 最终仓库结构
5.3.5 测试包和线上包管理
5.4 本章小结
第6章 软件管理平台设计
6.1 软件发布环节
6.1.1 组成要素
6.1.2 软件发布设计
6.1.3 软件模型
6.2 索引更新设计
6.2.1 更新效率问题
6.2.2 解决方案
6.2.3 软件工作模型
6.3 构建高可用索引服务器
6.3.1 软件发布概述
6.3.2 读写分离的必然性
6.3.3 改进后的软件模型
6.4 加入镜像机制
6.4.1 镜像服务器问题分析
6.4.2 解决方案
6.4.3 改进后的软件模型
6.5 加入缓存机制
6.5.1 缓存服务器的出现
6.5.2 搭建缓存服务器
6.5.3 改进后软件模型
6.6 镜像与缓存的选择
6.6.1 镜像与缓存的搭建原则
6.6.2 新机房中镜像与缓存的搭建实现
6.7 智能DNS和多机房容灾
6.7.1 多机房容灾的必要性
6.7.2 解决方案
6.7.3 软件模型
6.8 节点数据同步优化
6.8.1 问题分析
6.8.2 解决方案
6.9 软件管理平台最终模型
6.10 本章小结
第7章 平台实现梗概
7.1 平台实现约定
7.2 机器角色与职能
7.2.1 打包发布服务器
7.2.2 索引服务器
7.2.3 镜像服务器
7.2.4 缓存服务器
7.2.5 访问客户端
7.3 角色实例化
7.3.1 全网结构图
7.3.2 中心机房结构图
7.3.3 镜像机房结构图
7.4 本章小结
第8章 平台具体实现
8.1 软件包制作工具mkpkg
8.1.1 概述
8.1.2 完整SPEC文件方式
8.1.3 模版SPEC文件方式
8.2 发布工具pkg-release
8.3 索引更新程序repobuilder
8.4 同步服务端程序rsync
8.5 同步客户端程序yumclone
8.6 yumcache缓存服务
8.7 初始化RPM包repoutils
8.8 更多功能
8.9 本章小结
附录 yum/RPM常见问题解决方案
参考文献