(本文授權 DevOpsDays Taipei 2018 及天瓏網路書店全文轉載) (本文同步發表於 Medium)
自 2009 年 DevOps 一詞面世以來,如今談到 DevOps 時,經常會發生的一種狀況是「人們彼此談論的 DevOps 並不是相同的一回事」。這是因為隨著時間的推進,各方人馬紛紛為 DevOps 添加了不同的詮釋與定義,這現象令人一則以喜一則以憂,喜的是我們能夠看見 DevOps 從最初微小的「社群」開始發跡,最終延燒成為全世界共同響應的一場「運動」,DevOps 的重要性已不容小覷;憂的是,當 DevOps 成為每個人皆能琅琅上口談上兩句的 buzzword 時,是否已漸漸遠離它最初的根本精神。
無論如何,如今在與他人談論 DevOps 之前,恐怕我們要先與對方確認接下來談論的內容是落在哪些範圍之內,是要討論 DevOps 的定義、歷史、運動、職務、認證、工具、實踐、方法、原則或價值觀,如此才能避免彼此陷入雞同鴨講的狀況。

在這樣的窘境之下,究竟我們該如何全面性的認識 DevOps?有沒有什麼懶人包或便捷的資源可以幫助我們快速的一窺 DevOps 到底是什麼、又與哪些觀念、原則、工具或關鍵字相關?也許各位不妨可以參考看看由「机械工业出版社」出版的《DevOps:原理、方法与实践》。
一本點到為止的 DevOps 教科書
《DevOps:原理、方法与实践》是由中國「机械工业出版社」所出版的 DevOps 入門書籍,如果要用一句話來形容它,我們可以說它是一本點到為止的 DevOps 教科書。 本書的架構如下:
- 第 1 章 DevOps 概述
- 第 2 章 雲時代的維運 (Ops)
- 第 3 章 軟體架構演進
- 第 4 章 軟體開發過程和方法
- 第 5 章 精益 (Lean) 思想和看板方法
- 第 6 章 微服務軟體架構
- 第 7 章 容器 (Container) 技術基礎
- 第 8 章 基於容器技術的 DevOps 實踐
- 第 9 章 DevOps 工具集
全書共九章,可以明顯看出作者們嘗試要在書中涵蓋 DevOps 的各個層面。書中除了基本的 DevOps 概述,簡介了 DevOps 從工具、實踐、方法、原則至價值觀的各面向之外,也個別透過一整個章節篇幅說明維運、軟體架構、軟體開發方法因應這時代所產生的演變,並且介紹藏在 DevOps 背後非常重要的 Lean 精神;另外在工具與實務層面則介紹了 Container 與 Microservices 這兩項在現今的 DevOps 實踐中,有著密切關係的重要技術及架構。
每個章節的篇幅皆不多,分別在各約 20 頁的有限篇幅中快速介紹該章節之關鍵重點,因此本書僅能初略介紹各關鍵字的相關內容。另外,在每個章節,作者們皆會提供「思考題」,幫助讀者複習、思考書中提及的內容,加強對於內容的理解與吸收;如欲更加深入認識書中提及之內容,各章節也同樣附有大量的「參考文獻」幫助讀者能夠進一步的深入學習。
我個人最喜歡這本書的部分是第 1 章「DevOps 概述」,特別是其中關於「什麼是 DevOps?」的內容,作者嘗試用歷史、價值觀、原則、方法、實踐及工具這六個面向來切入介紹 DevOps。我認為這種介紹方式有助於讀者能夠更全面的認識與思考到底 DevOps 涉及哪些層面,同時也能幫助讀者將 DevOps 與更多其他的關鍵字連結,以更全面的視野認識 DevOps。
最後,做一點平衡報導,雖然這是一本「點到為止的 DevOps 教科書」,內容看似全面但仍有不足需要另外補強之處,包含:
- 內容主要環繞「狹義的 DevOps」,即從 Dev 至 Ops 的範圍;書中較少提及「廣義的 DevOps」,即除了 Dev 至 Ops 之外,企業組織的其他部門與專業領域。
- 「文化」層面的內容,僅只在「DevOps 價值觀」有稍微提及,這部分可能要另外從 Agile 相關書籍或參考《Effective DevOps》來補足。
- 雖然書籍結構規劃的不錯,但各章節實際內容的連貫性較為不足,需要額外的資料與說明來補足其中的關聯性。
- 在「容器技術基礎」的章節,僅以 Docker 為主要案例,並太快切入「技術細節」的內容。
小結
如前言所述,已經在 DevOps 圈內打滾的人們在遇到他人詢問「What is DevOps?」時,經常會陷入一陣窘境,不知該從何切入或不知該講多講少,甚至更慘的是,很可能自己在說明講述的同時,隔壁還會臨時亂入另一位 DevOps 專家,提出跟你相似但不太一樣的見解。
同理,在 DevOps 已成為新顯學的情況下,學界的教師又該如何向學生教授「What is DevOps?」,課程教材該如何編撰?教材又要涉及多廣多深呢?
如果您也有以上的「症狀」,這本《DevOps:原理、方法与实践》或許能成為您的一帖藥方,不妨直接購買一本《DevOps:原理、方法与实践》當作解答丟給對方吧!當對方根據書中內容而產生更多的疑問時,再適時地根據他的需求給予更多的解答與延伸閱讀。或者你也可以參考本書的結構,以此為基礎,再延伸建構一份屬於你自己的 DevOps 知識體系。