持續交付-發布可靠軟件的系統方法-(英文版) 版權信息
- ISBN:9787115403759
- 條形碼:9787115403759 ; 978-7-115-40375-9
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
持續交付-發布可靠軟件的系統方法-(英文版) 本書特色
本書講述如何實現更快、更可靠、低成本的自動化軟件交付,描述了如何通過增加反饋,并改進開發人員、測試人員、運維人員和項目經理之間的協作來達到這個目標。本書由三部分組成:部分闡述了持續交付背后的一些原則,以及支持這些原則的實踐;二部分是本書的核心,全面講述了部署流水線;第三部分圍繞部署流水線的投入產出討論了更多細節,包括增量開發技術、高級版本控制模式,以及基礎設施、環境和數據的管理和組織治理。
本書適合所有開發人員、測試人員、運維人員和項目經理學習參考。
持續交付-發布可靠軟件的系統方法-(英文版) 內容簡介
- 第21屆jolt大獎獲獎作品
- martin fowler作序推薦
- 軟件開發領域新經典
軟件發布是一個令人頭痛的過程,非常耗時且風險很高。本書獨特而有條理地闡述了以快速、高效、可靠的方式向用戶交付新功能的原則和技術實踐。通過實現自動化的構建、部署和測試過程,并改進開發人員、測試人員、運維人員之間的協作,交付團隊可以在幾小時(甚至幾分鐘)內發布軟件變更,而這不受項目大小和代碼復雜性的影響。
本書首先給出了實現快速、可靠、低風險交付過程的基礎知識,然后介紹了部署流水線,即從簽入到發布的過程中管理所有變更的一個自動化過程。書中探討了支撐持續交付的“交付生態圈”,內容涉及基礎設施、數據和配置的管理,以及組織治理。
作者為我們呈現了新的技術,包括自動化的基礎設施管理和數據遷移,以及虛擬化的使用,并分別探討了各種技術中的關鍵問題和實踐,演示了降低風險的方法。
無論是開發人員、系統管理人員、測試人員,還是經理人員,本書都能前所未有地加速你將想法變成可發布軟件的步伐,為企業迅速可靠地增添價值。
持續交付-發布可靠軟件的系統方法-(英文版) 目錄
目錄part i: foundations / 基礎篇 1chapter 1: the problem of delivering software / 軟件交付的問題 3introduction / 引言 3some common release antipatterns / 一些常見的發布反模式 4antipattern: deploying software manually / 反模式:手工部署軟件 5antipattern:deploying to a production-like environment only after development is complete / 反模式:開發完成之后才向類生產環境部署 7antipattern: manual configuration management of production environments / 反模式:生產環境的手工配置管理 9can we do better? / 我們能做得更好嗎 10how do we achieve our goal? / 如何實現目標 11every change should trigger the feedback process / 每次修改都應該觸發反饋流程 13the feedback must be received as soon as possible / 必須盡快接收反饋/ 14the delivery team must receive feedback and then act on it / 交付團隊必須接收反饋并作出反應 15does this process scale? / 這個流程可以推廣嗎 16what are the benefits? / 收效 17empowering teams / 授權團隊 17reducing errors / 減少錯誤 18lowering stress / 緩解壓力 20deployment flexibility / 部署的靈活性 21practice makes perfect / 多加練習,使其完美 22the release candidate / 候選發布版本 22every check-in leads to a potential release 23principles of software delivery / 軟件交付的原則 24create a repeatable,reliable process for releasing software / 為軟件的發布創建一個可重復且可靠的過程 24automate almost everything / 將幾乎所有事情自動化 25keep everything in version control / 把所有的東西都納入版本控制 26if it hurts, do it more frequently, and bring the pain forward / 提前并頻繁地做讓你感到痛苦的事 26build quality in / 內建質量 27done means released / “done”意味著“已發布” 27everybody is responsible for the delivery process / 交付過程是每個成員的責任 28continuous improvement / 持續改進 28summary / 小結 29chapter 2: configuration management / 配置管理 31introduction / 引言 31using version control / 使用版本控制 32keep absolutely everything in version control / 對所有內容進行版本控制 33check in regularly to trunk / 頻繁提交代碼到主干 35use meaningful commit messages / 使用意義明顯的提交注釋 37managing dependencies / 依賴管理 38managing external libraries / 外部庫文件管理 38managing components / 組件管理 39managing software configuration / 軟件配置管理 39configuration and flexibility / 配置與靈活性 40types of configuration / 配置的分類 41managing application configuration / 應用程序的配置管理 43managing configuration across applications / 跨應用的配置管理 47principles of managing application configuration / 管理配置信息的原則 47managing your environments / 環境管理 49tools to manage environments / 環境管理的工具 53managing the change process / 變更過程管理 53summary / 小結 54chapter 3: continuous integration / 持續集成 55introduction / 引言 55implementing continuous integration / 實現持續集成 56what you need before you start / 準備工作 56a basic continuous integration system / 一個基本的持續集成系統 57prerequisites for continuous integration / 持續集成的前提條件 59check in regularly / 頻繁提交 59create a comprehensive automated test suite / 創建全面的自動化測試套件 60keep the build and test process short / 保持較短的構建和測試過程 60managing your development workspace / 管理開發工作區 62using continuous integration software / 使用持續集成軟件 63basic operation / 基本操作 63bells and whistles / 鈴聲和口哨 63essential practices / 必不可少的實踐 66don’t check in on a broken build / 構建失敗之后不要提交新代碼 66always run all commit tests locally before committing, or get your ci server to do it for you / 提交前在本地運行所有的提交測試,或者讓持續集成服務器完成此事 66wait for commit tests to pass before moving on / 等提交測試通過后再繼續工作 67never go home on a broken build / 回家之前,構建必須處于成功狀態 68always be prepared to revert to the previous revision / 時刻準備著回滾到前一個版本 69time-box fixing before reverting / 在回滾之前要規定一個修復時間 70don’t comment out failing tests / 不要將失敗的測試注釋掉 70take responsibility for all breakages that result from your changes /為自己導致的問題負責 70test-driven development / 測試驅動的開發 71suggested practices / 推薦的實踐 71extreme programming (xp) development practices / 極限編程開發實踐 71failing a build for architectural breaches / 若違背架構原則,就讓構建失敗 72failing the build for slow tests / 若測試運行變慢,就讓構建失敗 73failing the build for warnings and code style breaches / 若有編譯警告或代碼風格問題,就讓測試失敗 73distributed teams / 分布式團隊 75the impact on process / 對流程的影響 75centralized continuous integration / 集中式持續集成 76technical issues /技
展開全部
持續交付-發布可靠軟件的系統方法-(英文版) 相關資料
如果你需要頻繁地部署軟件,那么本書就是你所需要的。采用本書所描述的實踐會幫助你降低風險,克服工作的乏味,并增強信心。我會在我所有的項目中使用本書所描述的原則與實踐。
——kent beck,three rivers institute
不管你的軟件開發團隊是否已經明白持續集成就像源代碼控制一樣必不可少,本書都是必讀之物。本書不可多得地將整個開發和交付過程放在一起進行詮釋,不僅提到了技術與工具,而且提供了一種理念和一些原則。作者講述的內容從測試自動化到自動部署不一而足,能夠滿足讀者的廣泛需求。開發團隊中的每個人,包括編程人員、測試人員、系統管理員、dba和管理者,都應該讀一讀這本書。
——lisa crispin,agile testing: a practical guide for testers and agile teams的作者之一
對于很多組織來說,持續交付不僅僅是一種部署方法,它對于開展業務也是至關重要的。本書展示了如何在具體環境中讓持續交付成為現實。
——james turnbull,pulling strings with puppet: configuration management made easy的作者
這是一本清晰、準確、精心編寫的書,力求讓讀者明白發布過程應該是什么樣子。作者以漸進的方式一步步地闡述了軟件部署中的理想狀態與障礙。本書是每位軟件工程師的讀物。
——leyna cotran,加利福尼亞大學歐文分校軟件研究所
humble和farley闡明了是什么使快速成長的web應用取得成功。曾經頗具爭議的持續部署和交付已經成為司空見慣的技術,而本書出色地講述了其中的方方面面。在很多層面上,這都是開發和運維的交點,而他們正是瞄準了這一點。
——john allspaw, etsy.com技術運營副總裁,the art of capacity planning和web operations的作者
如果你的業務就是構建和交付基于軟件的服務,你一定會從本書清晰闡述的理念中受益。而且,除了這些理念以外,humble和farley還為快速可靠地進行軟件變更提供了一份卓越的“劇本”。
——damon edwards,dto solutions總裁,dev2ops.org網站主編之一
我相信,做軟件的人拿起這本書,翻到任意一章,都會很快得到有價值的信息。如果從頭到尾仔細閱讀,你就能根據所在組織的具體情況對構建和部署過程進行簡化。我認為,這是一本關于軟件構建、部署、測試和發布的手冊。
——sarah edrie,哈佛商學院質量工程總監
對于現代軟件團隊來說,顯然持續交付就是持續集成的下一步。本書以不斷為客戶提供有價值的軟件為目標,通過一套明確且有效的原則和做法使這一目
持續交付-發布可靠軟件的系統方法-(英文版) 作者簡介
Jez Humble ThoughtWorks公司首席咨詢顧問,致力于幫助企業快速、可靠地交付高質量軟件,經常在各種敏捷技術大會上發表演講,擁有牛津大學物理學學士學位和倫敦大學民族音樂學碩士學位。2000年至今,他曾在各行業和不同技術領域擔任系統管理員、開發人員、培訓人員、咨詢師和經理人員。
David Farley 具有20多年的大型分布式系統開發經驗,是采用敏捷開發技術的先行者,曾作為技術負責人參加了ThoughtWorks公司許多極具挑戰性的軟件項目。目前幫助構建倫敦多項金融衍生品交易所(London Multi-Asset Exchange,LMAE)。