網站運維技術與實踐

網站運維技術與實踐

網站運維工作,一向以內容繁雜、覆蓋面廣著稱。《網站運維技術與實踐》選取日常工作涉及的監測調優、日誌分析、集群規劃、自動化部署、存儲和資料庫等方面,力圖深入闡述各項工作的技術要點及協定原理,並介紹相關開源產品的實踐經驗。在技術之外,作者也分享了一些關於高效工作及個人成長方面的心得。《網站運維技術與實踐》適合Linux 系統管理員、中大型網站運維工程師及技術負責人、DevOps 愛好者閱讀。同時也適於剛踏上或有興趣踏上運維崗位的年輕朋友,了解運維職業的工作和發展。

基本介紹

  • 書名:網站運維技術與實踐
  • 作者:饒琛琳
  • 出版社:電子工業出版社
  • 頁數:446頁
  • 開本:16
  • 品牌:電子工業出版社
  • 外文名:Web Operations Technology and Practice
  • 類型:計算機與網際網路
  • 出版日期:2014年3月1日
  • 語種:簡體中文
  • ISBN:9787121224331
基本介紹,內容簡介,作者簡介,名人推薦,圖書目錄,序言,

基本介紹

內容簡介

資深一線運維專家誠意之作,總結多年實踐經驗,深入淺出,內容涵蓋運維工作各方各面。
百度、新浪、人人、音悅台等多名技術經理、高級工程師聯名力薦。
《網站運維技術與實踐》深入闡述了運維工作所涉及的監測調優、日誌分析、集群規劃、自動化部署、存數和資料庫等各方面的技術要點,引入了對最新開源產品的實踐經驗,包含了對自動化運維和DevOps等技術形態的大量思考,旨在幫助運維人員“懶惰、急躁和傲慢”(程式設計師的三大美德)地完成網站運維工作。

作者簡介

饒琛琳——“資深運維”,先後在世紀互聯雲快線和中華網負責運維工作,熱愛CDN並樂於嘗試一切可以給網際網路用戶帶來便利和優質體驗的技術。——“DevOps”,現任人人公司網路運營部高級研發工程師。專注自動化運維平台的構建,活躍於Puppet和Logstash開源社區。——“死理性摩羯座”,比特幣大潮中依然堅持要寫程式實踐證券投資分析原理和時間序列數據預警原理。——“Larry Wall教徒”,推崇“懶惰、急躁和傲慢”三大程式設計師美德,並時時運用於運維工作中。同時熱衷於推廣以perltidy、Moo、AnyEvent和Plack為代表的新一代Perl編程,參與組織了Perl中國用戶2013年度大會。

名人推薦

最早跟年年(饒琛琳)的認識和溝通一直都是在微博和他的部落格上,他是我很尊重的技術思考者和實踐者。
運維工作有時會被認為是乏味且缺少技術含量的,因缺乏對必要知識的提綱挈領般的引導,很多運維同學難以快速地掌握運維的門道,而只能在忙碌和無奈中徘徊。感謝年年同學辛苦力作,將他廣博的運維知識和對技術的深度思考、實踐總結出來,深入淺出地帶我們走進運維的世界。
——王春生(@平凡的香草)新浪研發中心技術保障部高級技術經理
中大型網站的運維工作牽扯較多且細節繁雜,需從一定高度來解決應對。弄清問題本質、根據相關技術原理探尋適合的方案、設計開發對應的平台系統和自動化工具,是資深運維人員的必備技能和目標追求。邊喝著咖啡邊把問題解決了或者由系統工具自動發現問題並修復,是理想的並且努力可以達到的場景。琛琳在自動化運維相關領域實戰經驗豐富,成績斐然,本書是他多年工作的心血結晶,其中大量的代碼、配置片段和軟體方案給想進一步提高的運維工程師提出了一些思想思考或者說指引了前進方向。推薦有志青年仔細學習研究本書,共同把自動化運維推向一個新高度。
——張秀嶺(win&ear)人人公司高級技術專家
讀完這本書,驚嘆於作者陳子(饒琛琳)淵博的知識和無私的分享精神。這本書是浩瀚的網際網路技術知識海洋里的一張地圖,每一章都像是一塊大陸,雖不能從地圖上看盡大陸的美麗風光,卻能在一張紙上教會我們往哪裡走可以到達目的地。更加難能可貴的是,這本書介紹的思想、軟體和產品都是最新的,有著非常強的時效性和實用性。
——斯文(@小斯chinatopsquid)百度系統部CDN資深研發工程師
作者在CDN和大中型網站運維方面有著非常豐富的經驗。本書成體系地講解了運維工作中能使用到的方方面面,其中很多技術細節和方案是其他運維類技術書籍中很少提到的,看得出來都是作者多年實際經驗的總結,非常值得相關的用戶仔細研讀。書中CDN方面的一些套用,更是目前市面上的技術書籍中難能可貴的資料,值得研究和深入了解。從全書整體也可以看出作者出身於專業的CDN公司,因為像網站性能卿述、日誌收集處理、存儲系統之類都是專業性非常強的。全書涉及知識點非常豐富,任何一個方面拿出來都可以單獨出版成書。
——扶凱音悅台系統運營總監

圖書目錄

第1章伺服器監測
1.1理解監測的意義
1.2通過命令了解系統的性能概況
1.2.1ifconfig
1.2.2w
1.2.3df
1.2.4ps
1.2.5vmstat
1.2.6netstat
1.2.7iostat
1.3其他常用工具
1.3.1sar
1.3.2dstat
1.3.3mtr
1.3.4IPtraf
1.3.5TcpDump
1.3.6Wireshark
1.3.7strace
1.3.8stap
1.4SmokePing網路質量監測
1.4.1原理
1.4.2配置說明
1.4.3報警
1.4.4WebUI
1.5Nagios分散式監測
1.5.1架構原理
1.5.2Plugin編寫
1.5.3SNMP網路監控
1.5.4Gearman分散式
1.5.5OMD介紹
第2章產品訪問監測
2.1關注產品比伺服器更重要
2.2網站監測的明星指標
2.2.1可用性
2.2.2回響時間
2.2.3首屏回響時間
2.3網頁瀏覽過程簡介
2.3.1解析域名
2.3.2連線伺服器
2.3.3傳送請求
2.3.4等待回響
2.3.5傳輸回響內容
2.3.6瀏覽器渲染處理
2.3.7並發請求
2.4瀏覽器網路監測與分析
2.4.1Firebug
2.4.2Chrome開發人員工具
2.4.3HttpWatch
2.4.4rvictl接口監控IOS設備
2.4.5HAR格式
2.5第三方監測
2.5.1基調網路
2.5.2監控寶
2.6簡單定製JS監測
2.6.1頁面內嵌JS
2.6.2Nginx日誌記錄和存儲
2.6.3數據展示
2.7Boomerang
第3章數據採集、傳輸與過濾
3.1採集點的取捨
3.1.1伺服器數據
3.1.2訪問日誌
3.1.3系統日誌Syslog
3.2收集傳輸
3.2.1Rsyslog
3.2.2messagequeue
3.2.3RPC
3.2.4Gearman
3.3日誌收集系統框架
3.3.1Flume—ng
3.3.2logstash
第4章數據分析與報警
4.1時間序列存儲
4.1.1RRDtool(Round—Robin
DatabaseTool)
4.1.2Graphite
4.1.3OpenTSDB
4.2全文搜尋引擎ElasticSearch
4.2.1簡介
4.2.2安裝
4.2.3集群
4.2.4基礎查詢
4.2.5最佳化
4.2.6時間序列統計示例
4.3數據可視化
4.3.1RRDtool
4.3.2Gnuplot
4.3.3AmCharts
4.3.4其他繪圖庫
4.4報警
4.4.1SendEmail
4.4.2WebSocket
4.4.3手機推送
4.4.4分級和歸併
第5章測試評估
5.1伺服器性能測試
5.1.1IOzone
5.1.2Netperf
5.1.3pktgen
5.1.4sysbench
5.2套用性能測試
5.2.1http_load
5.2.2AB
5.2.3weighttp
5.3分散式測試環境
5.3.1AutoBench
5.3.2TCPCopy
第6章集群架構規劃
6.1IDC的規劃和選擇
6.1.1網站性質決定基礎面
6.1.2IDC廠商服務質量
6.1.3BGP真偽的驗證
6.2CDN規劃
6.2.1CDN原理
6.2.2DNS原理
6.2.3DNS查詢結構實現
6.2.4DNS調度
6.2.5其他調度方法概述
6.2.6動態加速概述
6.3快取設計
6.3.1HTTPHeader對快取的影響
6.3.2Squid的LM—factor過期算法
6.3.3squid的ACL控制
6.3.4Squid的aufs/coss快取引擎
6.3.5squidclient的運用
6.3.6使用SSD提高性能
6.4本地負載均衡
6.4.1LVS負載均衡原理
6.4.2keepalived與VRRP高可用原理
6.4.3Nginx的upstream
6.4.4squid的cache_peer
第7章彈性控制和部署
7.1配置集成的思想
7.1.1抽象的集群管理
7.1.2通用模式設計
7.2作業系統部署KickStart
7.2.1基本原理
7.2.2配置安裝
7.3套用部署與配置管理
7.3.1SSH::Batch
7.3.2Puppet
7.4搭建私有軟體倉庫
7.4.1使用spec檔案構建RPM包
7.4.2命令行打包工具FPM
7.4.3yum私有倉庫
7.5隨時控制成本
7.5.1CGroup配置簡介
7.5.2記憶體限制
7.5.3CPU共享限制
7.5.4CPU綁定限制
7.5.5塊設備讀寫限制
7.5.6配合TC完成網路限速
7.6關於雲計算
第8章分散式檔案系統
8.1NFS
8.1.1原理
8.1.2伺服器端配置和優缺點
8.1.3客戶端參數最佳化
8.1.4丟包與網路參數最佳化
8.2簡單易用的FUSE協定
8.3MogileFS
8.3.1GFS介紹
8.3.2MogileFS介紹
8.3.3MogileFS內部原理
8.3.4安裝和配置
8.3.5客戶端配置和使用
第9章資料庫
9.1MySQL必知必會
9.1.1常見SQL
9.1.2導入導出
9.1.3簡單配置調優
9.2慢查詢分析工具mysqlsla
9.2.1使用
9.2.2結果分析
9.3Percona工具集
9.3.1備份恢復工具XtraBackup
9.3.2線上運維工具箱Toolkit
9.3.3監控外掛程式集
9.4監控工具
9.4.1mytop和innotop
9.4.2orzdba
9.5MySQL集群
9.5.1MySQL複製原理
9.5.2MHA原理
9.5.3MHA安裝使用
第10章備份與同步技術
10.1rsync
10.1.1原理
10.1.2常見運用
10.2inotify和sersync工具
10.2.1inotify概述和示例
10.2.2sersync介紹
10.2.3sersync配置用例
10.3Netcat
10.3.1檔案傳輸
10.3.2連線埠掃描
10.3.3遠程控制
10.4P2P傳輸網路
10.4.1P2P協定概述
10.4.2BitTorrent概述
10.4.3murder部署和運用
第11章運維制度化與自管理
11.1運維制度化
11.1.1運維為什麼要制度化
11.1.2運維如何制度化
11.1.3SLA(ServiceLevelAgreement)協定
11.1.4故障處理的五問法
11.1.5知識庫
11.1.6流程跟蹤的Tracker系統
11.2自管理
11.2.1時間管理
11.2.2思維導圖
11.2.3Git管理和套用
11.2.4交流與活動

序言

運維是一個古老但愈發新奇的職位。在不同時代、不同公司,都有不同的稱呼。在全球資訊網到來之前漫長的幾十年中,運維工作大都由系統本身的開發人員來完成,他們很自豪地給自己加上了系統管理者(System Administrator)的頭銜。隨著全球資訊網的出現和發展,計算機系統管理者中也就出現了專注於網站管理的人群,這些人自稱為網站管理者,至今我們依然可以在一些歷史悠久的軟體(比如Apache、Squid)的配置中,看到專門的指令來設定這個身份。與此同時,在網際網路的另一端(接入端)——為普及上網而大量出現的網咖和網城中,另一批專注於網路接入、區域網路共享和桌面套用管理的人群,則被稱為“網咖管理員”。接入端牢牢占據了絕大多數人對網際網路的第一印象,並將他們所能觸及的方面認定為網際網路從業人員的全部,即軟體開發者和網路管理者。
毫不諱言,筆者在五年前(大學畢業時),同樣以這種眼光看待自己“很熟悉”的這個網際網路。
那么,除去接入端的網管,在網際網路的另一端的管理者們到底是什麼狀態呢?
先說看得見的一面:每次當你發現網頁變樣了,這說明網站管理者完成了一次套用發布;每次你投訴訪問有問題並附上截圖,這意味著網站管理者要開始一次故障排查和修復;每次你覺得比上次訪問快一點了,這說明網站管理者已經悄悄結束了一次後台最佳化……
再說看不見的一面:管理者盡力為你提供優質的訪問體驗,也帶來指數級增長的新訪問者。一百萬、一千萬乃至更多,大家的訪問體驗都要一樣好,數據都要一樣可靠,甚至業大招賊後還要保護大家的信息不被竊取……這些問題的背後,都是網站管理者的工作。
正是由於網站管理者與訪問者之間的頻繁交流,以及網站訪問數據對業務發展的支撐,慢慢地將管理者的職責從系統維護擴展到了運營相關的廣泛領域,最終合二為一成為了“運維”,而這也是現代的專職的“網站運維”與“古代的”模糊化的“系統管理員”最重要的區別。在業內公推為經典著作的Web Operations 一書中,甚至專門有第8 章“Community Management and Web Operations”來講述運維和用戶交流、社區管理相關的內容。
從上一代網際網路巨頭引申出網站運維這個獨立的職位到現在,運維的職能依然在不斷細化和變化——網路運維、系統運維、套用運維、資料庫運維,甚至更細分的CDN 運維和業務變更運維,都有專門的人員和團隊來負責。運維團隊甚至不再僅僅是網站服務的支持方,還越來越以網站內部的技術需求方的角色出現,進行廣泛而細心的考察,採取更激進的方法,從而提升網站的單位成本效益。
從大概一兩年前開始,另一個新的概念“敏捷運維”(DevOps)跟隨雲計算的浪潮出現。從思想和理論上,目前對其依然沒有準確的定義,但從技術實質上,無非是在保證產品質量和訪問性能的前提下提高產品發布的頻率,“自動化一切可自動化的工作”加上“充分了解業務流程”——而這本來就是一個優秀的運維人員應該去實現的事情!
了解業務流程是一件取決於個人偏好和公司文化的事情,雖然筆者在過去的工作經歷中見過不少比相應的開發負責人還了解業務的老運維人員,但是這方面確實很難說出太多可以循序漸進的道理,還是讓我們先掌握那些可以幫助我們“Laziness, Impatience and Hubris”(程式設計師的三大美德——懶惰、急躁和傲慢——出自Larry Wall的Programming Perl)地完成網站運維工作的技術吧!
饒琛琳

相關詞條

熱門詞條

聯絡我們