本書作為系統(tǒng)介紹DevOps的教材,內(nèi)容包括了DevOps這種互聯(lián)網(wǎng)時代新型開發(fā)模式的多個方面。全書第一部分首先從時代背景出發(fā),介紹DevOps模式的淵源;結(jié)合云時代運維的特征,進一步闡明DevOps模式是適應(yīng)當前軟件系統(tǒng)開發(fā)、部署和維護的必然選擇。盡管DevOps從很多方面來看是一個新生事物,但是其內(nèi)在的軟件開發(fā)方法和過程并沒有太大的調(diào)整,因此,本書第二部分介紹了主流軟件開發(fā)方法及其流程;當然,作為DevOps的基礎(chǔ)理論,精益生產(chǎn)和看板方法是這部分的重點。本書第三部分則重點闡述了DevOps模式下的典型實踐,例如:微服務(wù)架構(gòu)、持續(xù)集成、持續(xù)交付(部署)、虛擬化、Docker容器、自動化等。
深度解析互聯(lián)網(wǎng)時代開發(fā)運維模式DevOps。每一個想學(xué)習(xí)DevOps理論與實踐的人都應(yīng)該研讀的*一本書。工業(yè)界和學(xué)術(shù)界的一次思想碰撞——實用具體和嚴謹全面的有機融合。
李兵劉超王青汪浩洪緋王潤郭峰徐峰郭蕾吳超英沈海峰黃麗果祝立明聯(lián)名推薦。
近年來DevOps開發(fā)模式對軟件產(chǎn)業(yè)產(chǎn)生了深遠影響,相當多的軟件企業(yè)開始采用這種新的模式。來自權(quán)威機構(gòu)的預(yù)測報告甚至認為,未來全球排名前2000的軟件企業(yè)中,超過80%都將轉(zhuǎn)向DevOps模式。事實上,DevOps發(fā)展速度之快和影響范圍之廣都大大超出了人們的預(yù)期。
DevOps之所以會產(chǎn)生如此巨大的影響,我們認為這不是偶然的。這種方法本身具有的特性非常適合在需求很難確定、快速響應(yīng)變更、快速提供價值和高可靠性要求這樣的所謂互聯(lián)網(wǎng)時代軟件環(huán)境中得到應(yīng)用。由此,作為軟件工程教育者,我們不得不思考DevOps給現(xiàn)代軟件工程教育所帶來的影響。一方面,我們的教育本身就需要教會學(xué)生把經(jīng)過實踐檢驗的優(yōu)秀管理方法和適用的具體開發(fā)技術(shù)相結(jié)合,應(yīng)用過程化思想和系統(tǒng)化的方法去開發(fā)和維護各類軟件系統(tǒng)。從這個意義上說,DevOps是滿足上述目標的極好載體。因此,忽視DevOps,不僅僅會錯過一個實現(xiàn)軟件工程教育目的的好機會,更為糟糕的是,可能會由此擴大學(xué)校教育和業(yè)界實際實踐之間的差距。另一方面,將DevOps引入大學(xué)課堂,也面臨著諸多挑戰(zhàn)。首要的就是目前尚缺一本專門以DevOps為主題,全面系統(tǒng)地涵蓋DevOps各個方面的教材。有鑒于此,我們編著了這樣一本教材,試圖彌補這一缺憾。
考慮到本書主要面向DevOps的初學(xué)者,因此,在內(nèi)容的選擇和組織上,我們并沒有一味羅列DevOps的流行詞匯和工具,而是盡可能把DevOps方法背后的理論基礎(chǔ)解釋清楚。對于具有典型DevOps特征的軟件工程技術(shù)和實踐,例如微服務(wù)架構(gòu)演進、精益管理、容器技術(shù)等,我們則不吝筆墨地大篇幅介紹。由此,我們試圖傳遞出一個概念,即DevOps作為一種方法學(xué),不能簡單等同于某類實踐或者工具,而是涵蓋管理的基礎(chǔ)理論、技術(shù)以及工具的有機整體。綜合起來,本書具有如下特點:
全面系統(tǒng)地覆蓋DevOps的各個方面,便于讀者以此書作為DevOps的基礎(chǔ)(盡管內(nèi)容并不基礎(chǔ)!)入門書籍。
保持客觀、中立和審慎的態(tài)度。盡管我們推崇DevOps,但絕不盲從。在材料的組織和內(nèi)容表述方面,我們以解決實際問題為導(dǎo)向來介紹DevOps。同時,我們也清晰表達觀點—DevOps并不抗拒其他方法學(xué)。
部分知識點和相應(yīng)的案例直接來源于一線業(yè)界專家的工作經(jīng)歷,可以增強讀者的代入感,同時,也有助于讀者更好地理解DevOps。
本書具體分工如下:第1章由王天青、邵棟、張賀以及任群合作編寫;第2章由騰靈靈和宋駿合作編寫;第3章由蔣孟杰編寫;第4章由榮國平編寫;第5章由何勉編寫;第6~8章由王天青編寫;第9章由吳昊編寫。此外,榮國平、張賀和邵棟對全書進行統(tǒng)稿和潤色。由于時間倉促,再加上編者的水平所限,書中難免有錯誤與不妥之處,懇請讀者指正和賜教。
榮國平
2017年7月于南大北園
榮國平,南京大學(xué)軟件學(xué)院教師,長期從事軟件過程改進相關(guān)的工作。從2006年開始,多次赴美參加SEI的相關(guān)培訓(xùn),并在當年成為國內(nèi)唯*的SEI授權(quán)PSP培訓(xùn)師和TSP團隊教練。在JSS、軟件學(xué)報等期刊以及包括ICSE、ESEM、ICSSP、EASE、CSEE&T、APSEC等在內(nèi)的一流國際會議上發(fā)表論文40余篇。DevOps中國技術(shù)社區(qū)發(fā)起人之一。
張賀,南京大學(xué)軟件工程教授、博士生導(dǎo)師,入選登峰人才計劃(A-層次),澳大利亞聯(lián)邦科學(xué)院(CSIRO)主任科學(xué)家。在歐洲和澳洲從事軟件工程研究與實踐十余年,2013年起就職于南京大學(xué)。長期從事軟件過程、軟件體系結(jié)構(gòu)、服務(wù)計算、經(jīng)驗軟件工程領(lǐng)域的科研和實踐。負責主持愛爾蘭(歐盟)、澳大利亞、中國等多個國家*科研基金項目。著有英文專著兩部,并在國際重要軟件工程學(xué)術(shù)期刊和會議上發(fā)表論文百余篇,其中10篇會議長文獲*佳論文獎。
邵棟,南京大學(xué)軟件學(xué)院副教授,嵌入式技術(shù)系主任,軟件學(xué)院院長助理。主要從事軟件工程教學(xué)研究工作,研究方向為軟件過程、高科技市場理論、敏捷軟件開發(fā)、軟件工程教育等。2005、2009、2014年三次獲得教育部頒發(fā)的“國家*教學(xué)成果獎二等獎”,是國家*教學(xué)團隊“軟件工程主干課程教學(xué)團隊”骨干成員,編寫教材一部,擔任國家精品課程“計算與軟件工程”主講教師,兩次獲得“南京大學(xué)我*喜愛的老師”稱號。
贊譽
序
前言
第1章DevOps概述
互聯(lián)網(wǎng)時代的轉(zhuǎn)型挑戰(zhàn) l
獨角獸公司 4
1.2.1 Netflix公司 4
1.2.2 Instagram 8
1.2.3成功秘訣 9
什么是DevOps 10
1.3.1發(fā)展淵源 10
1.3.2價值觀 l2
1.3.3原則 l3
1.3.4方法 l5
1.3.5實踐 l6
1.3.6工具 l6
DevOps應(yīng)用與研究現(xiàn)狀 17
1.4.1微服務(wù) 17
1.4.2持續(xù)集成和持續(xù)交付 l9
1.4.3工具研究和開發(fā) 2l
本章小結(jié) 23
思考題 23
參考文獻 23
第2章云時代的運維26
第3章軟件架構(gòu)演進44
第4章軟件開發(fā)過程和方法68
第5章精益思想和看板方法124
第6章微服務(wù)軟件架構(gòu)144
第7章容器技術(shù)基礎(chǔ)163
第8章基于容器技術(shù)DevOps的實踐188
第9章DevOps工具表214