從本書中將會學到
√ 理解DevOps和持續交付的本質並看到DevOps如何支持敏捷流程
√ 瞭解係統如何相互匹配並組成一個更大的整體
√ 創建並熟悉讓DevOps更有效率的工具
√ 用DevOps的思想設計一個適閤持續部署的係統
√ 用諸如Git、Gerrit和GitLab等不同方式高效地存儲和管理代碼
√ 配置一個構建CRUD應用樣例的任務
√ 通過Jenkins和Selenium使用自動化迴歸測試來測試代碼
√ 使用諸如Puppet、Ansible、PalletOps、Chef和Vagrant等工具部署代碼
√ 使用Nagios、Munin和Graphite監控代碼健康
√ 探索Trac的工作方式—— 一個用於問題跟蹤的工具
《DevOps 實踐》介紹瞭DevOps 的起源和概覽,並通過一個貫穿全書的例子,從架構開始,到代碼的存儲、構建、測試、部署、監控,直至流程的跟蹤,推薦瞭許多可用的工具和可行的示範,是一本DevOps實踐方麵不可多得的參考書籍。
《DevOps 實踐》麵嚮願意承擔更大責任的開發人員和係統管理員,也很適閤願意更好地支持開發人員的運維人員。無須任何DevOps 知識即可快速上手!
Joakim Verona是一位擅長持續交付和DevOps的谘詢師。自1994年以來,在係統開發的所有方麵他都曾工作過。他積極地在諸如web係統、多媒體係統和軟硬件混閤係統等復雜的多層係統上做齣瞭領導實踐者的貢獻。自2004年以來,他廣泛的技能興趣把他導嚮瞭新興的DevOps領域。
Joakim在林雪平理工學院完成瞭計算機科學的碩士學位。他也曾作為谘詢師工作在各種各樣的工業領域上,例如銀行和財務、電信、工程、印刷和排版,還有遊戲開發。他也對敏捷領域感興趣,是一位Scrum認證的敏捷教練、Scrum産品負責人並擁有Java認證。
【譯者介紹】
高清華:悅跑圈資深研發工程師。工作十多年以來,在簡潔代碼、自動化測試、持續集成、DevOps等方麵都有著豐富的經驗。曾在ThoughtWorks任職多年,從事敏捷軟件開發、DevOps谘詢等工作。
馬博文,ThoughtWorks Senior Consultant,Senior DevOps,西安DevOps Meetup發起人。AWS Certified Solution Architect/Certified Developer。《Scala Cookbook》譯者。熟悉Web/Ruby/Java/Scala開發,目前專注DevOps,持續交付,容器技術,微服務,AWS等。
前言 XIII
1 DevOps 和持續交付簡介 1
DevOps 簡介 1
多快纔算快? 3
敏捷之輪 4
敏捷不隻是形式 5
DevOps 和ITIL(信息技術基礎架構庫) 7
總結 8
2 洞察全局 9
DevOps 流程和持續交付——概覽 9
開發人員 10
版本控製係統 12
構建服務器 13
工件庫 13
包管理器 13
測試環境 14
預發布/生産 15
發布管理 15
Scrum、看闆和交付流水綫 16
圓滿結束——一個完整的例子 17
識彆瓶頸 18
總結 18
3 DevOps 如何影響架構 19
介紹軟件架構 19
單塊係統場景 20
架構經驗法則 21
關注點分離 21
內聚原則 21
耦閤 22
迴到單塊係統場景 22
一個真實例子 22
三層係統 23
錶示層 23
業務層 24
數據層 24
處理數據庫遷移 24
滾動升級 25
Liquibase 的Hello world 26
變更記錄文件 27
pom.xml 文件 27
手動安裝 29
微服務 30
小插麯——康威定律 31
如何保持服務接口嚮上兼容 32
微服務和數據層 33
DevOps、架構和彈性 33
總結 34
4 一切皆代碼 35
源代碼控製的必要性 35
源代碼管理曆史 36
角色和代碼 37
哪一個源代碼管理係統? 38
源代碼管理係統遷移之言 39
選擇分支策略 39
分支問題域 41
工件版本命名 42
選擇一個客戶端 43
創建一個基本的Git 服務器 44
共享認證 45
托管Git 服務器 45
大的二進製文件 46
嘗試不同的Git 服務器實現 47
中場休息,插播Docker 48
Gerrit 49
安裝git-review 包 49
曆史修正主義的價值 50
拉請求模型 52
GitLab 52
總結 54
5 構建代碼 55
我們為什麼要構建代碼 55
構建係統的各個方麵 56
Jenkins 構建服務器 57
管理構建依賴 60
最終工件 61
用FPM 取巧 62
持續集成 63
持續交付 64
Jenkins 插件 64
托管服務器 66
構建從機 66
主機上的軟件 67
觸發器 68
任務鏈和構建流水綫 68
Jenkins 文件係統結構概覽 69
構建服務器和基礎設施即代碼 70
按依賴順序構建 70
構建階段 71
可選的構建服務器 72
校驗質量指標 72
構建狀態可視化 73
嚴肅對待構建錯誤 74
健壯性 74
總結 75
6 測試代碼 77
人工測試 77
自動化測試的優缺點 78
單元測試 80
一般的JUnit 和特殊的JUnit 81
一個JUnit 的例子 82
Mocking 82
測試覆蓋率 83
自動化集成測試 84
在自動化測試中使用Docker 84
Arquillian 85
性能測試 85
自動化接受測試 86
自動化GUI 測試 88
在Jenkins 中集成Selenium 測試 89
JavaScript 測試 90
測試後端集成點 91
測試驅動開發 93
REPL(交互式命令行)驅動開發 93
一個完整的自動化測試場景 94
人工測試web 應用 94
運行自動化測試 97
查找缺陷 98
測試巡禮 98
用Docker 處理棘手的依賴 102
總結 103
7 部署代碼 105
為什麼有這麼多的部署係統 105
配置基礎操作係統 106
描述集群 107
為係統交付包 107
虛擬化棧 109
在客戶端執行代碼 111
有關練習的注意事項 111
Puppet 服務器和Puppet 代理 112
Ansible 113
PalletOps 117
用Chef 做部署 117
用SaltStack 做部署 118
從執行的模型來比較Salt、Ansible、Puppet 和PalletOps 120
Vagrant 121
用Docker 做部署 123
對比錶 124
雲計算解決方案 124
AWS 125
Azure 126
總結 126
8 監控代碼 127
Nagios 127
Munin 134
Ganglia 138
Graphite 142
日誌處理 144
客戶端日誌類庫 145
ELK 147
總結 149
9 問題跟蹤 151
用問題跟蹤器做什麼? 151
工作流和問題的一些例子 152
我們需要從問題跟蹤器裏得到什麼? 154
問題跟蹤器激增所帶來的問題 157
所有的跟蹤器 158
Bugzilla 158
Trac 164
Redmine 172
GitLab 問題跟蹤器 178
Jira 181
總結 183
10 物聯網和DevOps 185
IoT 和DevOps 簡介 185
從市場的角度看物聯網的未來 188
機器到機器的通信 190
物聯網的部署影響軟件架構 191
物聯網部署的安全性 191
好啦,但是DevOps 和物聯網有什麼關係? 192
DevOps 的物聯網設備動手實驗室 193
總結 199
DevOps 領域在近年來變得流行而普遍。它是那麼的流行,以至於很容易忘記在2008年以前,當Patrick Debois 組織起第一個DevOps 之日大會時,幾乎沒人曾經聽說過該詞。由開發(developers)和運維(operations)組成的DevOps 這個詞,到底意味著什麼?
為什麼它能造成如此巨大的狂熱?
本書的任務就是迴答這個看起來很簡單的問題。
簡短的答案就是:DevOps 旨在將不同的社區,比如開發和運維社區,聯閤起來變成一個更有效率的整體。
這也反映在本書中。它探索瞭許多在DevOps 工作中有用的工具,還有那些更加凝聚人們的工具,這些工具比起那些在人之間劃清邊界的工具來說更令人喜愛。我們用來進行軟件開發的流程也是工具,所以將DevOsp 相關的不同敏捷流派的各個方麵包含進來也是很自然的事。
本書也希望做到像標題說的那樣,注重實戰。讓我們在DevOps 之路上開始旅程吧!
本書主要內容
第1 章,DevOps 和持續交付簡介,涉及瞭DevOps 的背景,並介紹它是怎樣融入到敏捷開發的廣袤世界的。
第2 章,洞察全局,它會幫助你瞭解DevOps 使用的多個係統如何協同工作,組成一個大整體。
第3 章,DevOps 如何影響架構,描述瞭軟件架構的各個方麵,以及當我們以DevOps的視角工作時它對我們的意義。
第4 章,一切皆代碼,解釋瞭如何實現一切皆代碼。而且,你需要一個地方來存儲代碼,這個地方就是組織裏的源代碼管理係統。
第5 章,構建代碼,解釋瞭為何需要係統來構建代碼,介紹瞭這些係統。
第6 章,測試代碼,展示瞭如果需要及早發布或者經常性發布代碼,我們就得對代碼的質量有信心。因此我們需要自動化迴歸測試。
第7 章,部署代碼,展示瞭當完成瞭代碼的構建和測試,你需要將其部署到服務器上,
這樣客戶就能使用新部署的特性瞭。
第8 章,監控代碼,涵蓋瞭代碼如何通過選擇的部署方案來安全地部署到服務器上。
你需要監護著它以使其正常工作。
第9 章,問題跟蹤,介紹瞭處理組織內開發流程的係統,例如問題跟蹤軟件。在實現敏捷流程時,這樣的係統是很重要的幫手。
第10 章,物聯網和DevOps,描述瞭DevOps 如何在物聯網的新興領域幫助我們。
本書的使用要求
本書包含瞭許多實用例子。為瞭融會貫通這些例子,你需要一颱機器,最好是基於GNU/Linux 的操作係統,例如Fedora。
本書的讀者
本書麵嚮那些想要承擔更大責任,並瞭解基礎設施如何做到構建現代企業的開發者。
本書也麵嚮那些想要更好地支持開發者的運維人員。自動化測試的技術人員也是本書的目標受眾。
本書主要是包含瞭許多實例的技術文檔,適閤那些想要學習實現具體工作代碼的人員。
盡管如此,前兩章的實踐性並不強。它們交代瞭有助於瞭解其餘章節的背景和概覽。
約定
在本書中,你將會發現不同的信息類型使用不同的文本樣式來區彆。這裏列齣瞭一些範例和解釋:
文本中的代碼、數據庫錶名、文件夾名、文件名、文件擴展名、路徑、僞URL、用戶輸入和Twitter 標簽以下列形式展示:“在你的本地安裝git-review”。
代碼段如下所示:
private int positiveValue;
void setPositiveValue(int x){
this.positiveValue=x;
}
int getPositiveValue(){
return positiveValue;
}
命令行的輸入輸齣如下所示:
docker run -d -p 4444:4444 --name selenium-hub selenium/hub
新術語和關鍵詞粗體顯示。你在屏幕上看到的詞,例如在菜單或者是對話框裏,在文本中看起來像是這樣:“我們可以通過修改按鈕改變狀態。”
警告或是注意事項像這樣展示。
要訣和技巧是這樣的。
勘誤錶
雖然我們已經盡力謹慎地確保內容的準確性,但錯誤仍然存在。如果你發現瞭書中的錯誤,包括正文和代碼中的錯誤,請告訴我們,我們會非常感激。這樣,你不僅幫助瞭其他讀者,也幫助我們改進後續的齣版。如發現任何勘誤,可以在博文視點網站相應圖書的頁麵提交勘誤信息。一旦你找到的錯誤被證實,你提交的信息就會被接受,我們的網站也會發布這些勘誤信息。你可以隨時瀏覽圖書頁麵,查看已發布的勘誤信息。
譯者序
什麼是DevOps?我的前同事李光磊將其譯為開發自運維,他還寫瞭篇很有意思的博客來說明:http://liguanglei.name/blogs/2015/04/22/devops-chinese-name/。這個將開發和運維結閤起來的詞,代錶瞭一種文化,那就是大傢共同協作。狹義上的大傢,指的是開發和運維,廣義上,指的是所有軟件生命周期裏參與的角色。
“共同協作”是個富有正能量的詞。感覺上,隨便往哪兒一套都是正確的。那為什麼要在DevOps 裏著重強調呢?DevOps 到底解決瞭什麼問題?歸根結底,就是提高産品質量。愛思考的你,可能心裏已經有韆萬個提高産品質量的方案從腦海裏呼嘯而過——代碼審查、自動化測試、持續集成、代碼質量管理工具、程序員鼓勵師……對對對,這些方案都能在某種程度上解決一些層次的問題。但是,産品質量的根源在哪兒呢?在於人。如果開發者對自己要做的事情不負責,甚至壓根兒不知道後果,怎麼能指望這樣的人能夠生産齣來高質量的代碼呢?舉個例子:作為開發者,我知道自己寫的代碼會由測試部門來進一步測試,在有進度壓力的時候,我就會更傾嚮於去想:“那就先這麼湊閤著吧,反正有問題QA 們會說的”。如果我不知道部署和維護産品是怎麼一迴事,我就不會主動地在産品裏寫上日誌的代碼。對於運維人員來說,由於處於軟件生命周期的下遊,相信對類似的場景感觸更甚。DevOps 能夠做到的事,就是讓人有這個意識:需要對産品的質量負責。DevOps 能夠提供一個平颱或機製,讓我能夠從中找到所需的資源。
“共同協作”也是個虛無縹緲的詞。它應該如何落地呢?這就是本書想要給讀者們帶來的內容。在實踐上,從架構開始,到代碼的存儲、構建、測試、部署、監控,直至流程的跟蹤,本書推薦瞭許多可用的工具和練習,確實無愧於《DevOps 實踐》之名。細讀全書可以對其有一個全局的概覽並充實自己的DevOps 工具箱;而在實際場景中再查閱本書,將其當作一本各種技術的快速參考手冊也不失為明智之舉。本書的許多實例通過Docker 啓動,在緊隨潮流技術的同時也簡化瞭練習步驟,值得花些時間試試。在企業裏,使用自動化和持續交付來提高代碼部署頻率、降低代碼上綫間隔。這樣的指標是比較容易統計的,在讓管理人員滿意的同時,也能減少開發和運維的痛苦。隻有讓各角色都真切地感受到實惠,大傢纔會更加願意從心底接受並積極參與到這一過程中。
“共同協作”是個看上去很美的詞。為什麼大傢還不趕緊擁抱它?因為它的成本可能還挺高的。大型企業在管理上,通常權責分明,從而導緻每個角色的成員都不願意輕易踏足其他領域;流程煩瑣,導緻一個小小的改進也需要漫長的批復;安全性要求高,引發各種違規,進一步導緻沒有和其他人分享的意願;員工操作權限管理精密,上不瞭網、下不瞭包、開不瞭虛擬機……這些問題,雖然不至於疾在骨髓,但起碼也在腸胃瞭。而且,自動化測試、部署流水綫等都需要比較高的成本。在看見收益和認清自己之前,可能大多數人也會像蔡桓公那樣默認拒絕吧:“醫之好治不病以為功”。成本最低的時候,可能就是開始寫第一行産品代碼的時候。話雖如此,任何時候都是實現DevOps 的最佳時機,因為隨企業的擴大和代碼庫的膨脹,成本一定是越來越高的。另外,完全地追求技術上的卓越而忽視成本也不是DevOps 的推薦做法。讀者們在閱讀時,也會看到DevOps 在一些狀況下采取的權衡方案。
你希望在一個大傢敞開心胸、相互擁抱的環境裏共同協作以打造最好的産品,還是守著自己的一畝三分地,與人爭辯這是誰的責任,抱怨人們冷漠的同時拒絕其他人的“與你無關”的要求?從本書開始,應用自己獲得的知識,並嘗試改造這個世界吧!
我是一名運維工程師,長期以來,我們團隊的工作主要是保障係統的穩定運行,處理各種突發事件。但很多時候,我們感覺自己就像是救火隊員,被動地響應問題,而缺乏主動優化和預防的能力。我一直對DevOps的理念很感興趣,特彆是它如何將開發和運維的工作更緊密地結閤起來。這本書的書名“DevOps實踐:馭DevOps之力強化技術棧並優化IT運行”,非常吸引我。我特彆希望書中能夠詳細介紹DevOps在運維層麵的具體實踐。例如,如何通過自動化腳本和工具來減少重復性勞動,如何利用容器化技術和微服務架構來提高部署效率和資源利用率,以及如何構建強大的監控和告警係統來提前發現和解決問題。同時,“強化技術棧”也讓我聯想到,DevOps是否能夠幫助運維團隊提升在自動化、雲原生、基礎設施即代碼等方麵的能力。而“優化IT運行”,則是我最關心的一點,我希望通過學習這本書,能夠掌握一些切實可行的方法,讓我們的IT係統運行得更穩定、更高效、更具彈性,從而更好地支撐業務的發展。
評分這本書的書名“DevOps實踐:馭DevOps之力強化技術棧並優化IT運行”,仿佛是一張通往更高效IT運作的藍圖。作為一個對前沿技術和管理方法論充滿好奇的IT從業者,我一直在尋找能夠係統性地提升IT部門效能的解決方案。DevOps這個概念我已耳聞許久,但一直未能對其有深入的、體係化的理解。這本書的標題“馭DevOps之力”讓我覺得,它不僅僅是介紹一些工具或流程,更是要教會我們如何真正地掌控DevOps,讓它成為推動技術和業務發展的強大引擎。我非常期待書中能深入剖析DevOps的文化變革、組織結構調整以及敏捷開發與持續交付的有機結閤。尤其吸引我的是“強化技術棧”和“優化IT運行”這兩個方麵,這暗示著本書將提供切實可行的方法,幫助我們構建更具現代化、自動化、彈性的技術基礎,並在此之上實現IT運行效率的飛躍。我希望能從中學習到如何從根本上提升團隊的協同能力,縮短産品上市時間,降低故障率,提高客戶滿意度。這本書在我看來,可能是一次重新審視和升級我們IT運作模式的絕佳機會。
評分作為一個在傳統企業轉型IT的團隊負責人,我們麵臨著巨大的挑戰。原有的流程僵化,部門之間壁壘森嚴,開發、測試、運維各自為政,導緻項目周期長,質量難以保證,而且用戶反饋也常常滯後。我們迫切需要引入一種能夠打破這種局麵的方法論。這本書的書名,特彆是“馭DevOps之力”,讓我感到很有共鳴。它不僅僅是關於技術,更關乎“力量”的駕馭,這暗示著一種係統性的、能夠驅動變革的力量。我非常關注書中如何講解DevOps的文化層麵,以及如何通過DevOps來促進跨團隊的協作和溝通。另外,“強化技術棧”和“優化IT運行”這兩個關鍵詞也擊中瞭我。在傳統企業中,我們積纍瞭很多遺留係統和技術,如何將DevOps的理念與現有的技術棧相結閤,並逐步進行現代化改造,是一個巨大的課題。我希望書中能夠提供一些關於如何選擇閤適的工具、如何循序漸進地引入DevOps實踐的建議,以及如何衡量DevOps實施的效果。我們希望能夠通過DevOps,讓IT部門從一個成本中心轉變為一個能夠驅動業務增長的戰略夥伴,而這本書的標題似乎預示著一種能夠實現這一目標的力量。
評分這本書的書名本身就吸引瞭我,"DevOps實踐:馭DevOps之力強化技術棧並優化IT運行"——光是這名字,就充滿瞭力量感和前瞻性。我一直對如何將開發和運維的界限模糊化,從而提升整個IT流程的效率充滿興趣。在我的日常工作中,經常會遇到開發團隊和運維團隊之間的溝通障礙,導緻項目上綫周期拖遝,甚至齣現上綫後的不穩定問題。這本書的標題讓我看到瞭希望,它似乎預示著一種能夠打破壁壘、形成協同效應的方法論。我特彆期待書中能詳細闡述如何通過DevOps的理念和實踐,不僅僅是技術上的工具堆砌,而是真正地從文化、流程、工具等多個維度去構建一個更加敏捷、可靠、高效的IT運行體係。書名中“馭DevOps之力”更是讓我聯想到瞭一種掌握主動權、能夠駕馭復雜係統並實現飛躍的強大能力。我希望它能提供切實可行的指導,幫助我理解並應用DevOps的精髓,從而真正地“強化技術棧”——讓我的技術能力和工具組閤更加現代化、自動化、智能化;同時也能“優化IT運行”,讓整個IT基礎設施和服務的交付更加順暢、穩定、可預測。這本書似乎描繪瞭一個理想的IT運作圖景,我很想知道它能否為我指明實現這一圖景的具體路徑。
評分我是一名在互聯網公司從事後端開發的工程師,平時的工作內容主要是開發和維護大量的微服務。隨著業務的快速迭代,代碼的交付頻率越來越高,但隨之而來的問題也越來越多,比如環境不一緻導緻的部署失敗、日誌分析睏難、故障排查周期長等等。我一直想深入瞭解DevOps,但市麵上的一些書籍要麼過於理論化,要麼側重於某個單一工具的使用,很難形成係統性的認知。而這本《DevOps實踐:馭DevOps之力強化技術棧並優化IT運行》的書名,聽起來非常接地氣,它明確提到瞭“實踐”和“優化IT運行”,這正是我目前最迫切需要解決的問題。我尤其好奇書中是如何“強化技術棧”的。在我看來,技術棧的強化不僅僅是學習新的編程語言或框架,更重要的是如何將這些技術能力有效地整閤到整個DevOps流程中,實現自動化構建、持續集成、持續部署,以及如何利用監控和日誌係統來支撐這些過程。同時,“優化IT運行”也讓我充滿瞭期待,我希望書中能夠提供一些具體的策略和案例,說明如何通過DevOps的方法,減少人為錯誤,提高係統的穩定性和可用性,縮短故障響應時間,最終實現更快的交付速度和更高的客戶滿意度。這本書似乎能為我提供一條清晰的、可操作的學習和實踐路綫圖,幫助我更好地應對快速變化的互聯網技術環境。
評分京東自營商品速度就是不一般。。。
評分瞭解下網絡的未來形態,相信大麵積部署的日子不會很遠,加強學習,跟上技術潮流,不被時代所拋棄。
評分之前買過一本docker入門書,現在想要進階一下,希望有所幫助,manning是傢好齣版社
評分基礎篇,彆人推薦
評分用券後很劃算,好評好評
評分對於瞭解devops還是有幫助的 比較薄
評分之前買過一本docker入門書,現在想要進階一下,希望有所幫助,manning是傢好齣版社
評分內容詳實,非常值得一讀。使用400-300的優惠買的,巨劃算。京東快遞也相當給力,小哥服務態度很好。
評分包裝盒裏麵直接塞瞭一本書,連書膜都沒有。還好書沒有破損,隻是摺瞭一些角,稍微有點灰。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有