軟體架構・絮語

Automate everything, make life easier!

有了 Agile,為什麼還要有 DevOps?

今晚,受 Agile Community Taiwan 之邀,在 Agile Meetup Taipei 給了一場演講:【有了 Agile,為什麼還要有 DevOps?】 之所以會給這場演講,是因為之前在討論區、在演講、在講課時,總是會收到這類的 Q&A: DevOps 是不是在花大錢搞新技術?商業噱頭? DevOps 只是大雜燴? DevOps 只與 Agile 有關? DevOps 就是 Dev 把魔爪伸到 Ops 嗎? DevOps...

READ MORE

向遊戲學習

前一篇文章〈向工廠管理致敬〉提到,最近為了準備一場 Agile/DevOps 演講,我特地研讀了數本原典,希望能對某些核心的思考元素來一場溯源之旅。 啃原典,其實還有另一個原因:為了好好替今天要去大玩特玩的小火車遊戲⋯⋯喔,不,是為了替今天要專程去上的一門【102...

READ MORE

向工廠管理致敬

身為徹頭徹尾的軟體人,在軟體產業待久了,總會對「硬」一點的產業,尤其是製造業,有莫名的成見,以為他們是僵固的、反人性的。從 1972 年「軟體危機」引發的論述當中,更加深軟體人的印象:製造業的經驗,是無法直接套用到軟體界的;我們是截然不同的國度。 不過,近十年來許多軟體界的流程改革,尤其是同屬 Agile 陣營的 Scrum 及 Kanban,居然有許多元素是從製造業偷竊學習而來:由 Toyota 引領風潮的 Lean Production 及 JIT,是相關文獻最常引述的;但其實還有從 TOC 學來的流程分析及改善手法。 因此,最近為了準備一場 Agile/DevOps...

READ MORE

Docker 端出 Unikernel 路線的第一道菜

Docker 在三歲生日派對時,宣佈要提供「不須透過 VirtualBox」的 Docker engine for Mac/Windows,許多人方才驚覺:今年一月併購 Unikernel Systems 公司,原來早就隱含著這麼一層用意。 [1] Unikernel Systems 這家公司,代表作是 Xen 陣營的 MirageOS;因此,併購之後,Docker Inc 已充分掌握古代的 hypervisor 及現代的 unikernel 技術,更朝向技術自主的獨立路線邁進。 我一直認為,Docker 這家公司,對技術路線有非常獨到的眼光。 就像當年 Docker 先以 LXC...

READ MORE

多工切換:有趣的 Lean 觀點

AlphaGo 四勝一負,贏了李世乭九段。 論人工智慧,我只學到樸素的類神經網路而已;論圍棋,我連初段都沒達到。但畢竟是兩方面都沾上一點點看熱鬧的資格,所以,我也樂得看了五場賭上人類尊嚴的科技盛事。 看熱鬧的網路鄉民,對這五場比賽,自是大發議論品頭論足。 我畢竟身在電腦圈,對於電腦本位的觀點,自認略有能力判斷嘴炮與否;但對於圍棋本位的觀點,就沒辦法分辨了。找職業棋士的發言,比較保險。 首先是 AlphaGo...

READ MORE

POLP:最小權限原則

在我開的 Ansible Workshop 中,不管是課前的【許願池】,還是課程現場的 Q&A,總有一個熱門議題:「如何確保系統是安全的?」 說實在的,這是大哉問,不是單獨一門組態管理課就能探討到令人滿意的地步(資安也不是我所擅長的,汗⋯⋯)。不過,被問到的次數太多了,我還是給個簡單的導引吧。 系統安全有許多層次。以 Learning Linux Security 教學課程的大綱來看,至少涵蓋幾個層次: Booting:作業系統開機環節 Kernel:作業系統核心 Services:典型系統服務 Users and...

READ MORE

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