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