軟體架構・絮語

Automate everything, make life easier!

DevOps 核心元素的考古溯源

我在〈一句話囊括 DevOps 的目標〉文中曾經簡略提過: DevOps 雖然和 agile 運動有歷史上的臍帶關係,但嚴格來說,沒有遵循《敏捷宣言》四大原則,也是能做 DevOps 的;硬是把兩個議題綁在一起,會限縮 DevOps 論述空間⋯⋯ 這種分離主義論點並不是我首創的。iThome 的〈為什麼會出現 DevOps?〉一開頭也提到,DevOps 的源頭不只有 agile 一系: DevOps 運動承襲自敏捷系統管理 (Agile System Administration) 運動以及企業系統管理 (Enterprise System Management,ESM)...

READ MORE

電腦界的隱喻:組態管理

人類是很喜愛比喻/譬喻的。戰國時代的莊子愛用譬喻,常和莊子抬槓的惠施也愛譬喻,《說苑‧善說》甚至記載著這麼一段故事: 客謂梁王曰:「惠子之言事也,善譬。王使無譬則不能言矣。」王曰:「諾。」明日見, 謂惠子曰:「願先生言事則直言耳,無譬也。」惠子曰:「今有人於此而不知彈者,曰:『彈之狀何若?』應曰:『彈之狀如彈。』則諭乎?」王曰:「未諭也。」 「於是更應曰:『彈之狀如弓,而竹為弦』,則知乎?」王曰:「可知矣。」 惠子曰:「夫說者固以其所知,喻其所不知,而使人知之。今王曰無譬,則不可矣。」 王曰:「善。」 用譬喻反擊「無譬也」的要求,真是高招! 比喻/譬喻不只是修辭法,甚至是人類根深...

READ MORE

一句話囊括 DevOps 的目標

TL;DR DevOps is a set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality. 我在許多演講場合,都喜歡調侃一下 DevOps 百家爭鳴各言爾志的現況。尤其是像 XebiaLabs 的 "Periodic Table of DevOps...

READ MORE

在 Windows 上也能使用 Ansible 的方法

帶實作課程時,常常遇到兩個問題: 問題一:在 Windows 上面想使用 Ansible control machine,有沒有地雷比較少的方法? 問題二:在 Windows 上面使用 Vagrant 的時候,也有一個常見的困擾:原本 Vagrant 方便的 provisioner 功夫被廢了。 針對這兩個問題,我設計一個 Vagrant box 及一個小工具。 以下是一段大約 14 分鐘的教學影片,示範如何透過 VM 來使用 Ansible control machine,以及如何彌補 Vagrant 的 Ansible provisioner...

READ MORE

DevOps 是圓的,找到立足點就是頂點

Bryan 在【尋找天賦與熱情的系統化做法】大人學講座中曾提到一個觀點:「世界是圓的,找到立足點就是頂點。」 我也想說:「DevOps 是圓的,找到立足點就是頂點。」 不要讓 DevOps 變成負能量 自從 IT 相關媒體開始傳頌 2009 年蔚為經典的 Flickr 經驗 “10+ Deploys per Day”、2014 年 Marissa Mayer 的鐵桿作風「沒有持續交付,專案不得上線,我不是在說笑。」之後,頓時 DevOps 成為 IT 界新的焦慮源。我還聽說有高層在聽完兩天 DevOps 2015 研討會之後,回頭要求 IT 部門要師法 2009 年的...

READ MORE

CI 怎樣帶你遠離平庸?

前天我的文章〈CI 是條不歸路〉提到:「CI/CD/DevOps 既是條不歸路,更是大躍進之路:一旦踏出第一步,就注定你會不斷接觸『遠離平庸』的新觀點、新技術。」 鄉愿一點來講,人生的每一抉擇,都可能是不歸路;後見之明來看,人生的每一轉折,也都可能是不歸路。如果不要陳義過高,回到具體一點的軟體研發情境,CI,的確夠資格當成是不歸路。 護城河 以我寫的一個 Ansible role:williamyeh.prometheus 為例。上個禮拜,我隱約覺得對它感興趣的人似乎變多了,便好奇的去 GitHub 後台調數據來看,結果發現: 原來是被 Prometheus 官網列進去...

READ MORE

CI 是條不歸路

今年九月初參加完 DevOps 2015 之後,有感而發,寫了兩則 tweets: 說實在的,打從 1999 年 Kent Beck 經典著作 Extreme Programming Explained 問世,整個軟體文化就被徹底分裂成兩個國度。以 agile best practices 出發的國度,不斷演化至另一個國度難以企及的高度。 --- Quote: 2015-09-03 Tweet #1 這個時代,如果還覺得 DevOps 是 mission impossible,可以說,連 1999 年的小團隊水準都達不到。或許該回頭蹲馬步,好好思考 Extreme...

READ MORE

Vagrant 安裝說明

我帶的許多實作課程,都需要用到 Vagrant 及相關的配套軟體。 為了方便學員事先安裝,我將安裝步驟整理成三篇文章: 在 Windows 上安裝 Vagrant 軟體 在 Mac OS X 上安裝 Vagrant 軟體 在 Linux 上安裝 Vagrant 軟體 註:Vagrant 1.8 新提供一個功能:如果你沒有安裝過 VirtualBox(或其他可與 Vagrant 搭配的虛擬機軟體),那麼,在第一次執行 vagrant up 時,Vagrant 會設法自動幫你下載、安裝某個版本的...

READ MORE

在 Mac OS X 上安裝 Vagrant 軟體

在 Mac OS X 上,如果想使用 Vagrant 的話,需依序安裝以下軟體: VirtualBox 及 VirtualBox Extension Pack Vagrant 以下分別介紹各軟體的安裝方法。 【2015-12-22 補充】Vagrant 1.8 新增一個功能:如果你沒有安裝過 VirtualBox(或其他可與 Vagrant 搭配的虛擬機軟體),那麼,在第一次執行 vagrant up 時,Vagrant 會設法自動幫你下載、安裝某個版本的 VirtualBox。這功能看似方便,但經我初步實測,很容易有莫名其妙的問題。所以,我仍然建議你親自安裝...

READ MORE

在 Windows 上安裝 Vagrant 軟體

在 Windows 上,如果想使用 Vagrant 的話,需依序安裝以下軟體: VirtualBox 及 VirtualBox Extension Pack Vagrant 純命令列的 ssh 程式 以下分別介紹各軟體的安裝方法,以及可能的問題排除方法。 【2015-12-22 補充】Vagrant 1.8 新增一個功能:如果你沒有安裝過 VirtualBox(或其他可與 Vagrant 搭配的虛擬機軟體),那麼,在第一次執行 vagrant up 時,Vagrant 會設法自動幫你下載、安裝某個版本的...

READ MORE