《鳳凰專案》- 踏入 DevOps 之旅的第一本書

《鳳凰專案》其原文書書名為《The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win》,是一部「IT 人藉由『DevOps』讓企業克敵制勝」的小說。

  • 作者:Gene Kim、Kevin Behr、George Spafford。
  • 譯者:楊仁和。
  • 出版商:碁峰。
  • 出版日期:2017/09/21。
  • 定價:NT$ 480。
  • 語言:繁體中文。
  • 頁數:400。
  • ISBN:9789864765867。

兩年前,凍仁剛接觸 Ansible 時,從一位益師益友的前輩口中得知此書的簡中譯本 -《凤凰项目》,之後在天瓏書局門市,為自己買下第一本《The Phoenix Project》。1

凍仁很幸運的找著幾位前輩的導讀文章,在閱讀此書前給予不少指引,例如:
  1. 保持耐心不跳章節,先把它當成一部小說般閱讀。
  2. 先從後面的致謝 (第 355 頁) 開始看,再重頭閱讀前面的傳奇故事。

雖說自己第一次是使用前者的方式進行閱讀,但相信不管用哪種方式閱讀,都會是個很棒的體驗。

拿起此書,讀者將會很快的發現其與眾不同,特別是目錄的部份。(笑) 2

目錄:

第一部份
  第 1 章 9 月 2 日,星期二                       | 007
  第 2 章 9 月 2 日,星期二                       | 018
  第 3 章 9 月 2 日,星期二                       | 030
  第 4 章 9 月 3 日,星期三                       | 042
  第 5 章 9 月 4 日,星期四                       | 058
  第 6 章 9 月 5 日,星期五                       | 070
  第 7 章 9 月 5 日,星期五                       | 081
  第 8 章 9 月 8 日,星期一                       | 091
  第 9 章 9 月 9 日,星期二                       | 102
  第 10 章 9 月 11 日,星期四                     | 110
  第 11 章 9 月 11 日,星期四                     | 119
  第 12 章 9 月 12 日,星期五                     | 126
  第 13 章 9 月 15 日,星期一                     | 140
  第 14 章 9 月 16 日,星期二                     | 149
  第 15 章 9 月 17 日,星期三                     | 158
  第 16 章 9 月 18 日,星期四                     | 171
第二部份
  第 17 章 9 月 22 日,星期一                     | 181
  第 18 章 9 月 23 日,星期二                     | 186
  第 19 章 9 月 23 日,星期二                     | 192
  第 20 章 9 月 26 日,星期五                     | 209
  第 21 章 9 月 26 日,星期五                     | 223
  第 22 章 9 月 29 日,星期一                     | 231
  第 23 章 10 月 7 日,星期二                     | 241
  第 24 章 10 月 11 日,星期六                    | 247
  第 25 章 10 月 14 日,星期二                    | 256
  第 26 章 10 月 17 日,星期五                    | 265
  第 27 章 10 月 21 日,星期二                    | 274
  第 28 章 10 月 27 日,星期一                    | 284
  第 29 章 11 月 3 日,星期一                     | 294
第三部份
  第 30 章 11 月 3 日,星期一                     | 305
  第 31 章 11 月 3 日,星期一                     | 312
  第 32 章 11 月 10 日,星期一                    | 320
  第 33 章 11 月 11 日,星期二                    | 327
  第 34 章 11 月 28 日,星期五                    | 335
  第 35 章 1 月 9 日,星期五                      | 343
致謝                                            | 355
為什麼需要 DevOps?                              | 363
DevOps 從何而來?                                | 368
關於三步工作法                                    | 370
DevOps 的主要迷思                                | 372
  DevOps 會取代 Agile?
  DevOps 會取代 ITIL?
  有了 DevOps,就無需 Ops?
  DevOps 只適用於開放源始碼?
  DevOps 只是「Infrastructure as code」或自動化?
  DevOps 僅適用於新創公司和「獨角獸公司」?
四種工作類型                                     | 376
延伸閱讀                                        | 381
注釋                                           | 394

《鳳凰專案》一書大致可分為 4 個部份,前 3 部份為小說,而最後則是 DevOps 的入門指南。
  • 第一部份:述說著無極限零件公司 (Unlimited) 每況愈下,以及 IT 部門的慘烈悲歌。3
  • 第二部份:公司開始面對問題,並藉由各種 DevOps 手法,進行絕地大反攻!
  • 第三部份:盡快取得顧客回饋,以及逆轉勝。
  • 第四部份:解答 DevOps 是什麼?並明確指出書中提及的「三步工作法」和「四種工作類型」為何物。

三步工作法 (Flow、Feedback 和 Culture),是實踐 DevOps 的方法之一,同時也是本書的主軸;而四種工作類型 (Business projects、Internal IT projects、Changes 和 Unplanned work / Recovery work) 則很清楚的點出 IT 部門所需負責的工作有哪些。

IT 部門平日除了得支援公司的業務發展,還得維護企業內大大小小的系統,更別說還有變更工作,以及變更不當所造成的例外工作 (計畫外工作)!當 IT 部門忙著救火,又怎麼能支援公司向「錢」跑呢?

除了三步工作法和四種工作類型,書中和 DevOps 界的大師們還提及了許多實踐 DevOps 的方法:
  1. 虛擬化技術 (Virtualization)
  2. 限制理論 (Theory of Constraints)
  3. 精實生產 (Lean production)
  4. 變更管理 (Change Management)
  5. 看板方法 (Kanban Method)
  6. 敏捷開發 (Agile)
  7. 組態管理 (Configuration management)
  8. 持續交付 (Continuous Delivery)
  9. 雲端運算 (Cloud Computing)
  10. 混沌工程 (Chaos engineering)
  11. 豐田生產方式 (Toyota Production System)
  12. 系統思考 (Systems Thinking)
  13. 微服務 (Microservices)

在這麼多方法中,凍仁與團隊成員是先從「變更管理」著手,大幅降低例外工作後,才有心力進行「組態管理」和「持續交付」。鬆綁部署瓶頸的現在,其生產力比起一年前好上太多了!

舉例來說,我們一開始每週至少需耗費 20 小時 (5 人 x 4 小時,且不含例外工作),部署變更到一個預備生產環境 (Pre-production environment),如今我們可以只用 6 小時 (2 人 x 3 小時),完成兩個環境的部署。光這部份我們就節省了 6 倍的人力,更別說我們還有數條管道 (pipeline),可以一提交程式碼就進行單元測試 (Unit Testing),之後部署到開發環境 (Development environment)。

接著凍仁打算透過學習「看板方法」,來降低變革的阻力,一步步的與團隊成長;再來想學習「限制理論」和「系統思考」,藉由看見問題的全貌,即早進行改善。

或許有人讀完此書還是對 DevOps 一詞有些陌生,讀者可以看看艦長大人正瑋所分享的《Effective DevOps》簡報,以更進一步了解 DevOps 是什麼。


以前,我們會建議讀者試著改用其他角色的觀點,多讀《鳳凰專案》幾次。

現在,我們可以接著閱讀其姊妹書 -《The DevOps Handbook》4,直接參悟大師們多年來彙整而出的 DevOps 實踐心法。

推薦以下兩部影片,給想快速了解 DevOps 的伙伴們。
  1. DevOps 的核心理念和實踐 by 劉征 (Martin) | DevOpsDays Taipei 2017

  2. DevOps 的敏捷化思維 by 李智樺 (Ruddy Lee) | Agile Tour Kaohsiung 2017


最後,就讓凍仁用一句話,來總結自己踏上尋求 DevOps 的偉大航道,所尋獲的答案。

「我們不能靠聲稱獲得 DevOps,我們必須展開旅程,走向 DevOps。」5


1 截止至今,凍仁已買了原文、簡中和繁中 3 種語言的《The Phoenix Project》,並送出十餘本繁中和簡中譯本,給過去有恩於在下的友人,和有緣的後輩。
2 繁中版少了前三部份的目錄編排,故順手參照 2013 年出版的原著整理了一番。08/31 收到 2018 年第 3 刷的《The Phoenix Project》五週年紀念版時,才得知最新的版本也拿掉了前三部份的目錄,著實有些可惜啊!
3 在原文書的第 7 章,用了穀倉效應的 Silo 一字,來形容各自為政的部門。要想在企業好好實行 DevOps,勢必得打破殼倉,才得以提高生產力。
4 簡中譯本為《DevOps 实践指南》
5 此句改編於《心態致勝》一書,原話為「你不能靠聲稱獲得成長心態,你必須展開旅程,走向成長心態。」。


(本文已授權 DevOpsDays Taipei 2018天瓏資訊圖書全文轉載。)


站內連結:
DevOps Engineer、SRE 徵才求職雜談
從《心態致勝》看敏捷
一群臺灣老司機參與《鳳凰項目》沙盤的持續成長故事

相關連結:
The Phoenix Project, 5th Anniversary Edition | IT Revolution
The DevOps Handbook: Non-Fiction Follow-Up to The Phoenix Project | IT Revolution
《The Phoenix Project》相關書籍 | chusiang/books2read
The Phoenix project 導讀 | Ruddy Lee 分享空間
《鳳凰專案》私房標題 | Potioneer's Essays
除了 DevOps 之外,鳳凰項目還說了什麼?| Software Architecture School
鳳凰專案:看 IT 部門如何讓公司從谷底翻身的傳奇故事 | 天瓏網路書店
DevOpsDays 2018 專題工作坊:《鳳凰項目》沙盤工作坊 | iThome Learning

留言

  1. 今日 (08/31) 收到 2018 年第 3 刷的《#ThePhoenixProject》五週年紀念版時,才得知最新版也與繁中譯本《# 鳳凰專案》一樣,拿掉了前三部份的目錄,著實有些可惜!
     
    其看似無用的目錄,其實可以自行加工,給進階讀者們提供些便利。
     
    #Book #鳳凰項目

    > https://twitter.com/chusiang_lai/status/1035546024662654976

    > https://www.facebook.com/chusiang.lai/posts/10209656864017690

    回覆刪除
  2. 再次拿起《The Phoenix Project》的繁中譯本《鳳凰專案》,就可看出部份專有名詞前後翻譯不一致。

    ▌ Business projects 在 P.67 被譯為商業專案,可在最後的 P.376 則是業務專案。

    看來在名調統一的部份,還是簡中譯本的《凤凰项目》表現的比較好啊!

    ----

    「 IT 部門的工作,大致可分為業務專案 (Business projects)、IT 內部專案 (Internal IT projects)、變更工作 (Changes) 和計劃外工作 (Unplanned work / Recovery work) 等四種工作類型。相較於業務工作,其它三種工作常被忽略且不被重視。 」

    - 凍仁翔於《系統工程師的 DevOps 實踐之道 》一文。

    ▌ https://note.drx.tw/2018/12/devops-practice-of-system-engineer.html

    回覆刪除
  3. 在《鳳凰專案》一書中,譯者把 Unplanned work / Recovery work 翻為「計『畫』外工作」,故接下來凍仁將儘可能使用「計畫外工作」,而非「計劃外工作」。

    回覆刪除
  4. 比起「計畫外工作」,自己還更常使用「例外工作」呢。

    回覆刪除
  5. 簡單在凍仁已經接觸過的項目後方打個勾,接著應該學學些新東西了!

    01. 虛擬化技術 (Virtualization) ✔
    02. 限制理論 (Theory of Constraints)
    03. 精實生產 (Lean production)
    04. 變更管理 (Change Management) ✔
    05. 看板方法 (Kanban Method) ✔
    06. 敏捷開發 (Agile) ✔
    07. 組態管理 (Configuration management) ✔
    08. 持續交付 (Continuous Delivery) ✔
    09. 雲端運算 (Cloud Computing) ✔
    10. 混沌工程 (Chaos engineering)
    11. 豐田生產方式 (Toyota Production System)
    12. 系統思考 (Systems Thinking) ✔
    13. 微服務 (Microservices)

    回覆刪除

張貼留言

喜歡這篇文章嗎?歡迎在底下留言讓凍仁知道。😉

Popular Articles

MySQL 語法匯整