DevOpsDays Taipei 2021 簡短記錄

感謝所有的贊助商、講師、社群、以及報名參加的所有與會者的支持,最終經過多次延期的 DevOpsDays Taipei 2021 已於 2021/11/24 在臺北文創大樓 6F 順利舉辦。今年一樣擔任大會籌備人員之一,但老實說由於 COVID-19 疫情的緣故,所以個人能投入在籌備工作上的心力不比往年,這次活動能順利舉辦,真的要感謝 iThome 在籌備工作、金流、物流、人力全方位的全力支持,以及 iThome 辦活動大神 Chris 的辛勞。今年一樣用一篇簡短的文章,紀錄與本次大會相關的所見所聞。 活動基本資料 官網:https://devopsdays.tw 日期:2021/11/24 09:00 ~ 17:30 地點:臺北文創大樓 6F 議程:共 17 場(含 3 場 Keynote) 工作坊:共 13 場 贊助商:共 25 家 活動人數:超過 500 人 活動共筆:https://hackmd.io/@DevOpsDay/2021 開場 我的部分 今年還是被推坑負責 10 分鐘的開場,老實說直到活動舉辦的前一晚,我都還在思考開場到底應該要講些什麼?最後還是決定順著當時閱讀《一個 Scrum Master 的獨白》這文章時獲得的感動,想要提一下「反思」這件事情。 因此最終就如我事後在 FB 貼文中做的簡短分享,這次開場主要想分享幾件事情: DevOps 從 2009 年出現至今,已經超過 10 年了。 台灣大約是從 2014 年開始有人浮上水面談論 DevOps 議題,至今也差不多 6-7 年了。 DevOps 是個「不新」的東西了,那麼你目前實踐 DevOps 了嗎?實踐的狀況如何? DevOps 是個「開放」的議題,人們對於它有著不同的觀點、期待與想像,那麼你又是如何描繪你所謂的「實踐 DevOps」? 反思,當一個關鍵字熱門與普遍到一個程度之後,我們應該對它有更多的反思。同樣再回到前面幾點,過去、現在 DevOps 在談討哪些議題,世界的趨勢潮流正往何處發展?台灣的 IT 圈內又是如何看待它?更延伸的如何看待各界各方推崇的各種「實踐方法」、「認證」、「解決方案」、「工具」⋯⋯ 延續反思,也許我們應該回歸初衷,思考為何當年會舉辦第一場 DevOpsDays,為何 Flickr 可以在 2009 就讓 Dev 與 Ops 合作,進而實現一天部署 10 次以上,以及為何 Patrick Debois 會說 DevOps is a human problem。也許 DevOps 最核心最單純的就只是想要解決「讓人(Dev)與人(Ops)可以良好的合作協作」,它的初衷目標想要解決這項「人」的問題,於是眾人圍繞著初衷,開始持續不斷運用各種方法及工具來「持續改善」的解決它。 最後一點是實踐,DevOps 是需要逐步實踐的,別人的 best practice 也許用在自己身上只剩下 good practice!?正是因為如此,我們期待未來可以有機會,在更多的場域,聽見來自不同產業及規模的組織,分享更多元的 DevOps 實踐經驗,彼此借鏡、彼此學習、彼此成長。 其實開場講稿,重寫了好幾遍,也腦中練習了好幾次,但上台時只記得「老東西、反思、初衷及實踐」這幾個關鍵字,希望最終在台上的表現不會太差,感謝大家的包容啦。...

November 26, 2021 · Cheng Wei Chen

【筆記文】全台敏捷大調查,Scrum Master 的三兩事

2021/09/28 的晚上,台灣敏捷協會 ACT 舉辦了一場線上直播【Agile Talks 敏捷論壇系列】全台敏捷大調查,Scrum Master 的三兩事。剛好那一天晚上有一些空閒,於是就來當了一下雅婷逐字稿,邊聽邊記錄了一些自己有聽見的重點,這些重點筆記當晚已經有直接分享於 FB 貼文,本文只是再做一次簡單的校稿與整理。 活動基本資訊 敏捷是這幾年最熱門的話題,Scrum 也是台灣普遍使用的 framework。Scrum Master 這個角色,普遍對他的定位也充滿爭議。感謝 Josh 陳俊樺 佛心對敏捷在台灣社會的發展做了深入研究,並撰述論文發表。 這次 Agile Talks 論壇除了邀請 Josh,還邀請幾位 Scrum Master 一起來對話,來聽聽彼此的看法與研究。 與談人 敏捷實踐者 敏捷行者 / Josh 陳俊樺 魚尾 Agile Coach / Russi 王泰瑞 Jason 廖健勝 主持人 敏捷總舵主 / Hermes 張昀煒 直播影片網址 https://www.youtube.com/watch?v=UPNqzuJnPSQ 筆記 Q: 使用看板方法是否需要 Scrum Master? 要,因為看板有更多的資訊流與資訊需要解讀,如果有一個角色可以適度的幫助大家解讀,令團隊能有所改善是好的。(謎之音:但這樣的角色還叫做 Scrum Master 嗎?) Q: Scrum 的正確性? Russi:還是應該要回到為何要做這件事? 為了團隊自主管理、有助於團隊實現商業價值、對齊商業指標、響應變化的能力⋯⋯。敏捷可以運用在更多領域。...

November 21, 2021 · Cheng Wei Chen

透過 GitLab CI + Drill 進行小規模 Load Testing

在 2021 年四月的文章中,我分享了透過 GitLab CI + JMeter 進行小規模 Load Testing;而在 2021 年七月的文章中,我則是試用了 Drill 這個新興的 Load Testing 工具。 承襲這兩次的經驗,在本文我們就以 GitLab CI + Drill,試一試「如何透過 GitLab CI + Drill 進行小規模 Load Testing」。 (本文同步發表於 Medium。) 操作步驟 首先我們要準備合適的 GitLab CI 環境,老樣子會需要一個可以操控 Container 的 GitLab Runner。如果你只是打算先試玩看看,那最簡單的方式就是使用 gitlab.com 以及官方提供的 Shared runners。 【小提醒】再次提醒大家 gitlab.com 的 Free plan 現在只有 400 CI/CD minutes per month。而且由於一直都有人在濫用這些免費資源,因此官方也有在評估該如何規範濫用的狀況。假如你真的想要由 GitLab CI 觸發 Load Testing,最好還是使用自己架設的 GitLab Runner 喔! 準備 Docker image - drill 接著準備合適的 Docker image。這邊一樣偷懶,就不追求容器 size 最小化,用最直白的方式建立一個可以在 GitLab CI 中使用的 Docker image - drill。...

November 14, 2021 · Cheng Wei Chen

純腦補之如何舉辦線上開放空間會議

在觀摩了幾次如何運用 Zoom、Miro、GatherTown 舉辦線上活動後,自己腦補了一下可以如何運用這些工具舉辦簡易線上版的開放空間會議。 (本文同步發表於 Medium。) 【補充】下面文章所分享的線上活動規劃,我並沒有實際執行過,因此我完全不知道實際執行時,有可能會遇到哪些問題,所以本文標題才會是「純腦補之」。如果你對於腦補的內容沒興趣,那可以直接跳到結語,在結語那邊有稍微想要聊一聊「數位落差」這件事。 如果你不知道什麼是「開放空間會議」(Open Space Technology),可以參考以下幾個連結。 【影片】Open Space Technology Introduction 【文章】何謂開放空間? 【文章】分享發生在台灣的開放空間會議經驗 【書籍】開放空間科技引導者手冊 如果你已經知道「開放空間會議」,就讓我們繼續看下去。 特別感謝 在開始說明我的腦補內容之前,要先獻上我的感謝。 感謝這兩年所有嘗試舉辦線上活動的各個企業、組織與單位,因應疫情全球忽然間被迫執行新一波的「數位轉型」,可以感受到大家都在摸索與尋找更優質的線上活動解決方案。而每一個走在前頭的人,都是後面跟進者學習與觀摩的對象。 感謝 IAF Taiwan 舉辦「引導週線上分享會」,並且不藏私的分享他們成功舉辦線上活動,如何在線上活動進行引導的經驗談。這篇腦補文的許多細節是建立在他們的經驗談之上。(如果沒有預算問題,我真的覺得可以找 IAF Taiwan 來協助舉辦各種需要引導及高度互動的實體或線上活動。) 感謝 RSG Taipei 2021 舉辦線上的「開放空間會議」,讓我能有機會實際觀摩線上的「開放空間會議」。(台灣敏捷社群的志工群實在是非常強大。) 腦補的活動規劃 我所腦補的「簡易線上版開放空間會議」大致規劃如下。 所需資源 多個 Zoom 帳號 / 會議室 付費版的 Miro 帳號 多位志工 一位主要的引導者 / 主持人 供主持人與志工使用的順暢網路及電腦設備 供主持人及志工幕後使用的即時聯繫管道 活動事前工作 在正式舉辦活動之前,需要完成以下的事前工作: 先決定屆時要開啟多少個討論議題的小空間。 續上,根據小空間的數量預備相同數量的 Zoom 會議室。 續上,根據小空間的數量預備「小空間數量 x 2 + 1」的志工。...

November 7, 2021 · Cheng Wei Chen

試用 Load testing 工具 - Drill

Drill 是一個以程式語言 Rust 撰寫的輕量級 HTTP Load testing 工具,Load testing 工具百百款,之所以會特別想認識 Drill 則是因為該工具的一段簡介「You can write benchmark files, in YAML format, describing all the stuff you want to test. It was inspired by Ansible syntax because it is really easy to use and extend.」 看到上面那段簡介,身為 Ansible 的使用者,怎麼可以不來驗證一下,是不是真的如它所言! (本文撰寫時,使用的 Drill 版本為 0.7.1。) (本文同步發表於 Medium。) 操作步驟 我們知道試用任何工作的第一步是先看官方文件! 錯!當然是先看有沒有已經包好立即可用的 Container image!(咦) 可惜在撰文的當下,尚未看見官方有自己包好 Container image,在 Docker Hub 只有找到 Drill 版本 0.5.0 的 Docker image。 https://hub.docker.com/r/xridge/drill 由於沒有最新版的 Container image,只好自己 build 一個,這邊就偷懶不追求 Container Size 的最小化,先搶快做出 Drill 0....

July 18, 2021 · Cheng Wei Chen

透過 GitLab API 為 Project 設定指定的 GitLab Runner

本文只有一個重點,就是介紹可以使用 GitLab API 為 Project 設定 GitLab Runner,如果是使用工具前都會查閱說明書的資深 GitLab 使用者,可以直接轉身離開喔(喂~哪有文章一開頭就把人趕走的~) (本文撰寫時,使用的 GitLab 環境為 14.0。) (本文同步發表於 Medium。) 前情提要 之前在 GitLab Taipei User Group 中有一位苦主表示遇到了一個狀況,他必須要將指定的 GitLab Runner 分配給超過百個 Project 使用,想詢問有沒有比較簡單的方法? 一般來說如果有 Runner 需要同時供應給多個 Project 使用,通常會建議將 Runner 建立為 Group Runner。如此一來在相同 Group 內的所有 Project 皆能直接取用此 Runner,唯一的限制就是 Project 必須隸屬在相同的 Group。因此對於苦主來說,這個解法他會需要將超過百個 Project 全部搬家至 Group 內,因此不太適用。 另一個方案是,假如你是自架 GitLab Server,則可以透過 Admin 管理者,架設 Shared Runner,便能夠如同 gitlab.com 那樣,直接提供不限 User、Project 皆能任意使用的 Runner。當然要說缺點就是 Shared runner 預設是全開放給所有人皆能使用的 Runner,因此如果你又想要做出額外的權限控管,同樣又要另外想辦法。不幸的是印象中苦主似乎是使用 gitlab.com,GitLab 官方當然沒開放權限讓使用者自行在 gitlab.com 上架設 Shared runner。...

July 11, 2021 · Cheng Wei Chen

為何 GitLab CI 沒有在運作?

先前在擔任講師時,有時會遇見學員反應「我的 GitLab CI 沒有在運作」,出狀況的原因當然很多種,像是 .gitlab-ci.yml 的格式錯誤、內容錯誤、Runner 設定錯誤⋯⋯,本文就來條列一些常見的原因。 (本文同步發表於 Medium。) 常見狀況 以下逐一分享幾十種常見的異常狀況。 一、CI/CD Pipeline 設定檔的檔名錯誤 GitLab 預設的 CI/CD Pipeline 設定檔為 .gitlab-ci.yml,要注意前面有一個 .,以及是 yaml 檔案 .yml,不要太順手寫成 .yaml。另外就是 GitLab 也能設定改用別的檔名作為 CI/CD Pipeline 的設定檔,因此也要注意是不是有啟用這項設定,搞不好你的專案還真的已經改用 gitlab.yaml 當作 CI/CD Pipeline 設定檔了喔~ 二、CI/CD Pipeline 設定檔的存放位置錯誤 續上,除了檔名之外,CI/CD Pipeline 設定檔的存放位置也很重要。預設的存放位置是專案的根目錄,存放位置也同樣可以自行修改。 【小提醒】CI/CD Pipeline 設定檔的檔名及存放位置都可以在 GitLab 的 Porject > Settings > CI/CD > General pipelines > CI/CD configuration file 中修改。 三、忘了啟用 Runner CI/CD Pipeline 要能運作,你必須要為 Project 啟用 GitLab Runner 才行。在 Porject > Settings > CI/CD > Runner 中確認是否有 Enable 任何一台 Specific runner 給此專案使用。...

July 4, 2021 · Cheng Wei Chen