Linux軟體管理平台設計與實現

內容介紹

《linux軟體管理平台設計與實現》是國內首部關於軟體管理平台設計與實現(針對大規模linux伺服器集群)的著作,由淘寶資深軟體開發工程師和系統運維工程師撰寫,書中凝結了作者在淘寶運維一線積累的寶貴經驗。不僅詳細講解了rpm和yum等軟體管理工具的使用方法、技巧、原理和本質,還系統講解了linux軟體管理平台的規劃、設計與具體實現。對於從事linux伺服器管理和運維的工程師來說,本書將是不可多得的至寶。
全書共8章,在邏輯上分為三個部分:第一部分(第1~4章)為基礎技術篇,詳細介紹了rpm的概念、組織方式和製作方法,另外對yum服務進行了深入的分析,目的是為對軟體開發感興趣的讀者在rpm和yum領域提供導引,為運維和系統管理人員提供指導,幫助讀者在rpm/yum的使用和理解方面掃清障礙;第二部分(第5~6章)為問題分析和系統設計篇,結合企業中軟體管理的現狀,提出問題,然後從基本的系統開始,逐步解決問題,最佳化方案,最終形成一套軟體管理平台的設計方案,適合在企業中負責軟體平台最佳化和系統服務管理的人員閱讀;第三部分(第7~8章)為實現篇,如果讀者想將本書中設計的軟體管理平台套用到自己所在企業的環境中,可以參考這部分的內容進行詳細設計和編碼實現。附錄列舉了rpm和yum在日常使用中經常會遇到的問題以及對應的解決方法。

作品目錄

前言
第1章 rpm認知與格式剖析 1
1.1 軟體包的演變史 2
1.2 rpm軟體包基礎知識 3
1.2.1 rpm軟體包的功能 3
1.2.2 rpm實現引子 6
1.3 rpm 格式剖析 7
1.3.1 從協定說起 7
1.3.2 rpm格式總覽 8
1.3.3 rpm之lead 9
1.3.4 header structure 11
1.3.5 rpm之signature和header 14
1.3.6 rpm之archive 18
1.4 rpm解析例程 19
1.5 本章小結 21
第2章 rpm製作與spec詳解 22
2.1 rpm生成要素 23
2.2 rpm製作實例 23
2.2.1 環境準備 24
.2.2.2 源碼準備 25
2.2.3 spec檔案編寫 25
2.2.4 生成rpm包 26
2.3 rpmbuild介紹 30
2.3.1 概述 30
2.3.2 使用說明 30
2.4 spec檔案解析 31
2.4.1 spec組成元素 32
2.4.2 spec元素解析 32
2.5 本章小結 58
第3章 深入理解和使用yum 59
3.1 rpm運行機制淺析 60
3.1.1 rpm資料庫和packages檔案 61
3.1.2 rpm日誌和定時任務 64
3.1.3 yum/rpm阻塞現象 65
3.2 yum的出現 66
3.2.1 rpm面臨的問題 66
3.2.2 yum的構成 68
3.3 yum服務搭建實例 69
3.4 軟體包的索引機制 72
3.4.1 createrepo命令 73
3.4.2 索引檔案 78
3.5 本地快取 84
3.5.1 快取中的內容 84
3.5.2 索引中的sqlite檔案 86
3.6 配置詳解 87
3.6.1 全局配置 88
3.6.2 repo配置 92
3.6.3 外掛程式配置 97
3.7 本章小結 97
第4章 yum的外掛程式機制 98
4.1 外掛程式介紹 99
4.1.1 外掛程式的概念 99
4.1.2 外掛程式的調用方式 99
4.2 yum的外掛程式 100
4.2.1 yum外掛程式的組織方式 100
4.2.2 yum外掛程式調用情景 101
4.3 yum 外掛程式開發注意事項 104
4.3.1 函式接口規範 104
4.3.2 外掛程式私有選項讀取方法 105
4.3.3 外掛程式類型 105
4.4 再議倉庫優先權 107
4.5 外掛程式開發與實例分析 108
4.5.1 view_hook外掛程式 108
4.5.2 downloadonly外掛程式 110
4.5.3 fastestmirror外掛程式 113
4.6 本章小結 118
第5章 企業軟體管理現狀與規劃 119
5.1 企業軟體管理特點 120
5.1.1 異地多機房 120
5.1.2 伺服器數量多 121
5.1.3 軟體數量多 121
5.1.4 os版本較多 121
5.1.5 服務高可用 122
5.1.6 網路環境複雜 122
5.2 問題總結 123
5.2.1 軟體個數過多 123
5.2.2 rpm衝突 123
5.2.3 開發測試包和線上包 124
5.2.4 不同rhel版本支持 124
5.2.5 單點問題 124
5.2.6 跨機房訪問帶來的頻寬問題 124
5.2.7 大量客戶端引起的網路瓶頸 125
5.2.8 異地機房災備 125
5.3 軟體倉庫規劃之路 125
5.3.1 軟體倉庫劃分 126
5.3.2 redhat倉庫分支規劃 128
5.3.3 第三方包倉庫規劃 133
5.3.4 最終倉庫結構 134
5.3.5 測試包和線上包管理 136
5.4 本章小結 137
第6章 軟體管理平台設計 138
6.1 軟體發布環節 140
6.1.1 組成要素 140
6.1.2 軟體發布設計 140
6.1.3 軟體模型 142
6.2 索引更新設計 143
6.2.1 更新效率問題 143
6.2.2 解決方案 145
6.2.3 軟體工作模型 147
6.3 構建高可用索引伺服器 148
6.3.1 軟體發布概述 148
6.3.2 讀寫分離的必然性 149
6.3.3 改進後的軟體模型 149
6.4 加入鏡像機制 150
6.4.1 鏡像伺服器問題分析 150
6.4.2 解決方案 151
6.4.3 改進後的軟體模型 152
6.5 加入快取機制 153
6.5.1 快取伺服器的出現 153
6.5.2 搭建快取伺服器 154
6.5.3 改進後軟體模型 156
6.6 鏡像與快取的選擇 157
6.6.1 鏡像與快取的搭建原則 157
6.6.2 新機房中鏡像與快取的搭建實現 158
6.7 智慧型dns和多機房容災 159
6.7.1 多機房容災的必要性 159
6.7.2 解決方案 160
6.7.3 軟體模型 161
6.8 節點數據同步最佳化 162
6.8.1 問題分析 162
6.8.2 解決方案 164
6.9 軟體管理平台最終模型 164
6.10 本章小結 165
第7章 平台實現梗概 166
7.1 平台實現約定 167
7.2 機器角色與職能 169
7.2.1 打包發布伺服器 169
7.2.2 索引伺服器 172
7.2.3 鏡像伺服器 174
7.2.4 快取伺服器 175
7.2.5 訪問客戶端 176
7.3 角色實例化 177
7.3.1 全網結構圖 178
7.3.2 中心機房結構圖 179
7.3.3 鏡像機房結構圖 180
7.4 本章小結 181
第8章 平台具體實現 182
8.1 軟體包製作工具mkpkg 183
8.1.1 概述 183
8.1.2 完整spec檔案方式 184
8.1.3 模版spec檔案方式 188
8.2 發布工具pkg-release 192
8.3 索引更新程式repobuilder 196
8.4 同步服務端程式rsync 198
8.5 同步客戶端程式yumclone 199
8.6 yumcache快取服務 200
8.7 初始化rpm包repoutils 205
8.8 更多功能 207
8.9 本章小結 210
附錄 yum/rpm常見問題解決方案 211
參考文獻 215

相關詞條

熱門詞條

聯絡我們