自救必看三大準則

CI 是條不歸路

今年九月初參加完 DevOps 2015 之後,有感而發,寫了兩則 tweets:
說實在的,打從 1999 年 Kent Beck 經典著作 Extreme Programming Explained 問世,整個軟體文化就被徹底分裂成兩個國度。以 agile best practices 出發的國度,不斷演化至另一個國度難以企及的高度。
--- Quote: 2015-09-03 Tweet #1
這個時代,如果還覺得 DevOps 是 mission impossible,可以說,連 1999 年的小團隊水準都達不到。或許該回頭蹲馬步,好好思考 Extreme Programming Explained 裡面講的幾個 best practices,有哪些可以嘗試看看。 
--- Quote: 2015-09-03 Tweet #2
Extreme Programming Explained 書中列的 best practices 很多,有些與組織文化及流程息息相關,也不見得一開始就能被說服。其中,我覺得最立竿見影的,與組織文化流程最少互斥的,就是這幾項:
  • Ten-Minute Build
  • Continuous Integration
說來容易,做起來可也得花一番工夫。但這世界上,有些打地基的事,不做,就像不會基本代數,就註定與微積分的境界絕緣。
CI,就是幫助你打好地基,開啟另一扇窗的手法。
AgileCICDDevOpsScrumTDD⋯⋯這個新國度,有太多神奇咒語,讓人一頭霧水,也搞不清楚優先順序。雖然我不認為有放諸四海皆準的萬靈丹特效藥,但是如果真的要挑出一項可以當做照妖鏡或試金石的切入手法,我認為,就從 CI 開始吧。
CI (continuous integration),是一條不會過度陷入工具至上的 "cargo cult" 迷思,又能從某些角度有效撼動既有的流程制度。難怪梅姐 (Marissa Mayer) 會選擇用這條角度切入:
「沒有持續交付 (Continuous Delivery),專案不得上線,我不是在說笑。」Yahoo 執行長 Marissa Mayer 的宣言。
--- Quote: 【誰說大象不能實現 DevOps】雅虎 97% 專案擁抱持續交付的關鍵
CI,不管你選用的是當紅的自架工具 Jenkins,或託管給 Travis CI(OSS 專案可免費使用),重點是:請踏出第一步。
初步嘗試 CI,一定會遇到絆腳石,但你不是第一個。我推薦過的好書《笑談軟體工程:敏捷開發法的逆襲》,就徹底討論過該議題了。摘錄一段當時的推薦文:
作者感慨:「在臺灣很多試圖採用敏捷方法但卻槓龜的團隊,缺少『追求技術卓越』的精神很有可能是一個主要的原因。」譬如說,如果沒有紮實的「自動化測試」及「持續整合」工夫,那麼,逐漸累積的「測試債」會讓 sprint 制度破功。當然啦,紮實的基本功並非一蹴可幾,作者也勉勵看過本書卻認為自己辦不到的人:「要『傻的願意相信書本裡所說的』,不要在尚未嘗試之前就先否定。」你願意開始嘗試嗎?
--- Quote: iThome 2012年 iT人必看的好書
手頭沒這本書的,不妨看看以下幾則文章:
不過,對「聰明人」來說,「傻得願意相信」可能是頭一個要面對的關卡吧。

今早,又忍不住寫下了:
CI/CD/DevOps 既是條不歸路,更是大躍進之路:一旦踏出第一步,就注定你會不斷接觸遠離平庸的新觀點、新技術。

至於背後是不是跑 agile,反而不那麼絕對了。 

屢屢從自己與別人演講、教育訓練、Q&A 中歸納出來的心法……
--- Quote: 2015-12-21 Tweet
重點是:一旦踏出第一步,就注定你會不斷接觸「遠離平庸」的新觀點、新技術。
所以,為了呼應剛剛的感想,在新梯次的 Ansible Workshop,乾脆帶大家用 Travis CI + Docker 玩一下 CI/CD 好了。因為從今年五個梯次 Docker Workshop 的經驗看來,滿意度最高的實作任務,一直都是 GitHub → Docker Hub 這一段 CI 動線⋯⋯
參考:https://school.soft-arch.net/blog/70585/ci-no-turning-back

留言

這個網誌中的熱門文章

IIS - ASP.NET 網站基本優化設定

Node.js 部署至 IIS 站台

遇見 Parameters 參數上限之大量資料寫入方法