每週一書|第三週

推薦書:DevOps 三十六計 

前言

DevOps是Development(開發)和Operation(維運)兩名詞的組合,至今已走向的10個年頭。其對於敏捷的實踐,及其在Dev 與 Ops 上的核心理念,已為無數的企業打造絕佳的產值。

在本書,總共集結了多位DevOps專家,在本書中寫下自身實戰經驗與血淚史,使讀者可以掌握軟體的敏捷專案管理、流程設計、DevOps相關工具使用、部署與各項維運的技巧等。

 


關於敏捷的實踐

本書的前兩章節討論到軟體的精實以及敏捷開發,精實方面主要討論產品線的業務管控、產品部屬發佈與過程改善、以及可視化重要性;敏捷方面則是討論如何使組織結構適應敏捷的環境、團隊在敏捷環境下的運作管理,如何實踐 Scrum 框架的精神,以及敏捷開發的模式。

 

Do 持續交付 Right, Do Right 持續交付

持續交付是DevOps的核心工程實踐,時至今日軟體在整合方面並且部署到生產環境依舊是個高風險工作。透過實現自動化的管理,「一鍵部署」的目標,使得公司與客戶雙方在軟體交付上獲得雙贏是我們開發人員ㄓ所求的,故書中介紹了 Git、Jenkins、Docker、SaltStack,等工具組,除了旨在給予讀者一個持續交付綜觀可以如何實踐之外,更為後續的章節鋪路,怎麼說呢?

上傳程式碼後,我們首先要進行測試,那會牽涉到 Git 以及 Jenkins, 中間要做到品質管理,那就要思考該如何撰寫良好的測試案例,並且落實自動化測試減少鑑定成本。

在發布方面,如果我們的軟體架構是微服務的風格,則本書第四章所提到微服務的架構,重新拆分的原則、場景,以及其強調的高彈性開發可以讓你參考。那麼 Docker、SaltStack 就會是你重要的工具組。

透過利用平台以及各項插件來實踐達到快速、安全的持續整合與交付,才算剛開始建立起完美的產品流水線。書中提到多項平台插件的功能與使用慣例,以及各工具的設定、與安全管理等,給予讀者操作之期待。

 

我們常常忽略的幾件要事

產品上線後,也不輕鬆,要做到資訊安全、數據監控,軟體是否符合預期的價值?

因此本書自第六章開始,至始討論維運(Operation)的部份。但是首先進入的就是我們常常忽略的部分:資訊安全以及監測等。

資訊安全不可不慎,軟體開發過程中,隨著程式碼的增長,實務中不可能不碰到安全上的疑慮。書中提到定時地檢查程式配置,並做好備份管理等,軟體的安全始得獲得信賴。接續大數據的維運計策,也是現今AI世代的顯學之一,凡是軟體脫離不了「資料」的落地。數據的品質與分類管理,絕非是企業資料的基石。如何確保數據主機的穩定、備份管理等維運技巧,相信讀者看了會有所收穫。

 

維運準則與技巧

我們生活在網路世代,網路管理變成是與軟體有關的人員都要知道的事,故書中多次提到定期演習,以及備份的重要性,也包括 Linux 的 shell、或各大作業系統的基本操作,是作為DevOps人員必備之技能之一,以實踐各項體系,最後要將這些日常重複的工作高度自動化。維運團隊總也要管理,如同開發階段,考驗著管理者如何引領團隊獲得客戶與上級的信任, ITIL 等證照與 DevOps 的迷思等等,也是一大挑戰。

最後的兩章討論到資料庫以及資料中心的維運。每位 DevOps 人都要對資料庫有基本的認知。專案軟體的資料落地點多在資料庫,如何相互配合,考驗著管理者的認知廣度與深度。最後來到資料中心的章節,主要針對安全、容災備份、監控與節能等 內容,不斷呼籲讀者不可不慎。

 

總結

本書以《DevOps三十六計》為名出發,但是第一眼讀起來很多章節都在探討「自動化」,那是不是就是 DevOps 呢?

人生苦短,實在不需要花費太多時間一直做同樣的事,自動化解決這些問題,但這樣並不是就表示有做到 DevOps!《DevOps三十六計》裡面有許多完整軟體開發的概念與奧秘,達到這些實踐,就開始朝向實踐 DevOps 了!如果你是一個熱愛實作的人但對 DevOps 概念覺得模糊,或是新手,甚至是準備培育後進的專業 DevOps 人,不妨入手ㄧ本,讓自己能夠建立知識體系之外,也擁有解決軟體開發問題的「三十六計」!

 

每週一書連結

第一週:持續交付|使用 Java (Continuous Delivery in Java)

第二週:DevOps 和自動化運維實踐

第四週:持續交付2.0 業務引領的 DevOps 精要

 

活動書籍