感謝 iThome 的邀請,有幸能擔任 iThome Cloud Edge Summit 2020 的講師,負責一場演講及大會稱之為「雲端體驗營」的其中一場 Lab。
這次準備的主題是目前正熱門的 GitOps。 (本文同步發表於 Medium)
時間非常巧的,在大會舉辦的前些日子,正好有其他厲害的講師(邱牛)於 Cloud Native Taiwan 社群分享相同的主題,因此最後決定改變演講內容,嘗試用不同的角度來切入分享 GitOps。
因此這次演講與 Lab 的關鍵字雖然是 GitOps,但比起如何在 K8S 上實踐 GitOps 及相關的技術實作細節,我想要分享的內容是:
實踐 GitOps 一定要透過 K8S 嗎? 除了技術層面上帶來的優點之外,GitOps 還帶來哪些好處? 另外,由於在上半年期間都沒有在社群中分享 GitLab 的相關演講,覺得有愧於 GitLab Hero 的身份,最終演講題目定為《From DevOps to GitOps with GitLab》,而 Lab 的題目則是《GitOps with GitLab》。借這次大會分享 GitLab 公司及我個人對於 GitOps 的一些看法。 已經有研究過 GitOps 的人應該都知道,GitOps 一詞來自於 Kubernetes(K8S)及 Cloud Native 社群,甚至可以說是來自於 WEAVEWORKS。因此早先關於 GitOps 的看法,幾乎都是來自於此。
不過與 DevOps 的狀況類似,當有一個新詞開始熱門時,各雲端服務供應商可是不會放過這股潮流趨勢,GitLab 公司當然也不落人後。目前在 GitLab 官網上已經提供了 GitOps 的相關內容。而且資料是越來越多,目前看來 GitLab 有計畫要將 GitOps 作為市場的切入點,從我開始準備題目,直到實際演講的這幾個月內,GitLab 官網就默默的新增許多值得參考的內容。...
今年艦長發了個瘋,在第二個小孩剛出生沒多久、即將舉辦 DevOpsDays Taipei 2019 (我擔任其中一位組織者)的狀態之下,參加了「第 11 屆 iT 邦幫忙鐵人賽(2019)」。
這次參賽的主題為「和艦長一起 30 天玩轉 GitLab」,本來想要用一個虛擬的團隊作為案例,分享關於 GitLab 的使用經驗,但實際上場之後才發現當初規劃的太美好,事前準備的不夠充分。雖然順利完賽,但案例規劃的並不完整、內容深度也不如計畫,最終撰寫的成果仍是較基礎的 GitLab 操作文章。
(This article has been translated into English.)
目前文章依然留存於「iT 邦幫忙」網站上,暫時先不一篇篇的搬到我私人的部落格,先用超連結的方式處理:
iT邦幫忙網站提供的30天文章列表 下面直接附上 30 篇文章連結,並做一個簡單的分類整理: (鐵人賽文章撰寫時,使用的 GitLab 版本主要是 12;後續出版為書籍《和艦長一起 30 天玩轉 GitLab》第一版時,版本為 13.x;2022 年改版《和艦長一起 30 天玩轉 GitLab》為第二版時,版本為 15.x。) 基本認識 前言 安裝 GitLab GitLab 管理與權限 Admin Area—維運 GitLab Server 的管理者後台 GitLab 的 User 與權限控管 GitLab Workflow GitLab: 從建立 Group 和 Project 開始 初探 GitLab Workflow & GitLab Flow GitLab 和 Mattermost GitLab: Issue、Issue Board 和 Kanban GitLab: To-Do List 與 Milestones GitLab: Commit & Merge Request GitLab: Issue Templates & Merge Request Templates GitLab: Project Wiki & GitLab Pages GitLab Cycle Analytics & Charts GitLab CI 架設 GitLab CI Runner GitLab: 建立第一條 CI/CD Pipeline CI/CD Pipeline 之 stage: build CI/CD Pipeline 之 stage: deploy CI/CD Pipeline 之 stage: test CI/CD Pipeline 之 stage: prod-deploy CI/CD Pipeline 之 Container CI/CD Pipeline 之 CI Service 掛掉時該怎麼辦? GitLab CI 之 CI trigger、API 與 ChatOps GitLab CI 之 Scheduling Pipelines GitLab Auto DevOps GitLab: Auto DevOps 之牛刀小試 GitLab: Auto DevOps 之牛刀小試 2 - K8S GitLab: Auto DevOps 之牛刀小試 3 - Auto Deploy (Production) GitLab: Auto DevOps 之牛刀小試 4 - Auto Browser Performance Testing GitLab: Auto DevOps 之牛刀小試 5 - Auto Monitoring GitLab: Auto DevOps 之牛刀小試 6 - Customizing 回顧與總結 回顧與總結 以上就是 30 天鐵人賽的所有文章。...
如果要說前一陣子還有在忙些什麼事情,那其中一項就是幫忙出版社擔任《DevOps三十六計》繁中版的審校者。因為擔任這個審校者,讓我簡繁詞語轉換能力提升了不少,某種層面來說算是另一項意外收穫。
(本文同步發表於 Medium)
首先還是要感謝編輯的寬容,一而再的容許我的拖稿,如果哪天我要自己寫書,恐怕會被編輯徹底的討厭,大概會成為更誇張的拖稿大王。《DevOps三十六計》繁中版,即將於二月底出版上市,既然出版社已經將新書資訊傳遞給各個書籍通路了,我也終於可以公開的分享一下我對這本書的一些看法。
如果用嚴謹的角度來評斷,那這本書其實有著一些些小缺點。首先因為這是一本多作者合著的書籍,正確來說這本來就是一本公開徵稿、收錄多位作者的文章集結而成的書籍,因此像是各章節之間顯得過於獨立,彼此的連貫性、關聯性不足;同時有時作者們為了配合書名「三十六計」,有部分出現內容因此受限,導致作者在內容撰寫時過於抽象或隱晦,進而可能會影響讀者難以理解作者想要傳達的重點,或是難以理解某些「計策」背後欲傳遞的重點觀念。
但如我們放下前述的嚴厲眼光,回到前面提到的「這本來就是公開徵稿、收錄多作者文章集結而成的書籍」,那其實這本書可謂是「社群精神」的另一種實際體現,因為這就好比多位專家一起線上共筆、一起貢獻開源專案,而這次是大家一起貢獻了一本豐富的 DevOps 案例集與經驗談。
而事實也是如此,《DevOps三十六計》原本只是中國的 DevOps 社群,在中國舉辦的 DevOpsDays 活動中發起的一項計畫,廣邀講者、專家一起來撰文分享經驗,最初它只是在中國舉辦的 DevOpsDays 活動中免費贈送的一本小冊子。然而隨著內容越來越豐富,最終由出版社協助正式出版上市。
所以在閱讀本書時,就請用觀看實務案例集、踩雷血淚史和經驗分享之文章的方式閱讀它。如此你會發現,其實別人跟你一樣,在導入 DevOps 時、在撰寫自動化測試、在維運實務工作現場⋯⋯在許多地方都踩過不少雷,大家也都是這樣一路成長過來的。
另外,看見這樣的書籍出版,對於亦有在經營 DevOps 社群的我而言是非常高興與雀躍的。一方面高興市面上又多了更多的 DevOps 案例。另一方面則是高興能看見這樣一個集合社群力量合力出書的案例;如果有類似的機會,是否在台灣的社群當中亦能產生這樣的動能?
最後,再附上一小段內容與前文有些重複的「審校感言」,這是原本預備用來假如編輯有向我要一篇「審校序」時使用的,但最終編輯沒說,不過既然都寫了,就丟出來傷傷大家的眼睛了。
時光飛逝,從第一次聽見 DevOps 到如今積極投入台灣的 DevOps 社群,轉眼也已經快要五年的時間了。然實際上自 2009 年 DevOps 一詞誕生以來,至今也已經過十年時光了。DevOps 發跡於社群、乘載著社群的力量,最終被推廣至世界各地。DevOps 在業界的能見度越來越高,而投身於社群的人們亦針對 DevOps 持續分享著各式各樣的經驗談。
在 2017 年時,我聽聞中國的 DevOps 社群正在進行一項名為「DevOps三十六計」的大計畫,那是一項發自社群,期望能凝聚社群、集結社群力量的一個非常有意義的專案。而隔年 2018 再次打聽消息時,令人驚訝的是這專案不但成功執行完畢,並且已正式出版成為在各通路流通的出版品。
就我這幾年協助組織社群的經驗,我看見《DevOps三十六計》這樣的出版品能夠面世,是感到非常高興與雀躍的。我覺得《DevOps三十六計》可謂是「社群精神」的另一種實際體現。社群由人與人所組成,社群除了能夠令人們彼此建立連結、交流經驗之外,社群亦能發揮更大的影響力並為後人留下許多寶貴的寶藏。而這本由多位專家參與、分別貢獻各自專業經驗集結而成的《DevOps三十六計》,正是此種社群寶藏的一項絕佳例證。
《DevOps三十六計》,書名雖為「三十六計」,但在一篇篇經驗談中,實則蘊含了多位業界前輩的深厚功力與血淚經驗。「三十六計」不過是個引子、是個起點,更重要的是除了收錄於書中的三十六計之外,在社群這個「武林」之中,還有著更多的「師傅」,更多的「計策」等著我們持續地去探索與挖掘。來吧,各位朋友!一起踏入這個名為「DevOps 社群」的武林天下!分享你的「計策」、彼此求教學習,讓三十六計不僅能昇華為七十二計,甚至變成無以計數的寶貴計策,成為值得後人收藏的珍貴寶藏。
最後,再次感謝碁峰出版社的抬愛,讓我有這個機會能擔任《DevOps三十六計》繁中版的審校者,能以不同的形式為 DevOps 社群貢獻一份心力。同時我也要再次藉這個機會向世界各地的 DevOps 實踐家們致謝,感謝各位前輩的付出與分享,成為無數後進們的寶貴借鏡,謝謝各位!
希望這條邁向 DevOps 的成功之路,你我皆能持續地相互扶持,持續地向前邁進!
陳正瑋 2019 年初 備註:如果你購買了《DevOps三十六計》繁中版,發現其中有任何的錯字、錯誤的名詞、錯誤的簡繁名詞轉換,又或者對書中的內容有所提問或建議,還請務必提供讓我知道,謝謝。
 (本文授權 DevOpsDays Taipei 2018 及天瓏網路書店全文轉載) (本文同步發表於 Medium)
自 2009 年 DevOps 一詞面世以來,如今談到 DevOps 時,經常會發生的一種狀況是「人們彼此談論的 DevOps 並不是相同的一回事」。這是因為隨著時間的推進,各方人馬紛紛為 DevOps 添加了不同的詮釋與定義,這現象令人一則以喜一則以憂,喜的是我們能夠看見 DevOps 從最初微小的「社群」開始發跡,最終延燒成為全世界共同響應的一場「運動」,DevOps 的重要性已不容小覷;憂的是,當 DevOps 成為每個人皆能琅琅上口談上兩句的 buzzword 時,是否已漸漸遠離它最初的根本精神。
無論如何,如今在與他人談論 DevOps 之前,恐怕我們要先與對方確認接下來談論的內容是落在哪些範圍之內,是要討論 DevOps 的定義、歷史、運動、職務、認證、工具、實踐、方法、原則或價值觀,如此才能避免彼此陷入雞同鴨講的狀況。

在這樣的窘境之下,究竟我們該如何全面性的認識 DevOps?有沒有什麼懶人包或便捷的資源可以幫助我們快速的一窺 DevOps 到底是什麼、又與哪些觀念、原則、工具或關鍵字相關?也許各位不妨可以參考看看由「机械工业出版社」出版的《DevOps:原理、方法与实践》。
一本點到為止的 DevOps 教科書 《DevOps:原理、方法与实践》是由中國「机械工业出版社」所出版的 DevOps 入門書籍,如果要用一句話來形容它,我們可以說它是一本點到為止的 DevOps 教科書。 本書的架構如下:
第 1 章 DevOps 概述 第 2 章 雲時代的維運 (Ops) 第 3 章 軟體架構演進 第 4 章 軟體開發過程和方法 第 5 章 精益 (Lean) 思想和看板方法 第 6 章 微服務軟體架構 第 7 章 容器 (Container) 技術基礎 第 8 章 基於容器技術的 DevOps 實踐 第 9 章 DevOps 工具集 全書共九章,可以明顯看出作者們嘗試要在書中涵蓋 DevOps 的各個層面。書中除了基本的 DevOps 概述,簡介了 DevOps 從工具、實踐、方法、原則至價值觀的各面向之外,也個別透過一整個章節篇幅說明維運、軟體架構、軟體開發方法因應這時代所產生的演變,並且介紹藏在 DevOps 背後非常重要的 Lean 精神;另外在工具與實務層面則介紹了 Container 與 Microservices 這兩項在現今的 DevOps 實踐中,有著密切關係的重要技術及架構。...
談到 DevOps,我們很容易會陷入一種刻板印象—「DevOps 是非常專注於技術」,因此談論的內容常會偏向於「使用哪種 CI Server?」、「CI / CD Pipeline 如何規劃?」或「是否有採用 Docker 或 K8S?」⋯⋯等。
但在《Effective DevOps》這本書中談到的 DevOps 則並非如此,作者一再強調我們不妨回歸到 DevOps 一詞及 DevOps 運動最初的目標—「讓不同團隊(Dev 與 Ops)的人們能夠互相協作」,以此來看待 DevOps。
因此在書中作者提出了 devops compact 及 Effective DevOps 的四大主軸(支柱,pillar)這兩種概念貫穿全書,希望用文化、組織發展的角度來看待 DevOps。而四大主軸的其中一項即是—協作 (Collaboration)。
(本文同步發表於 Medium)

協作 (Collaboration) 「協作所指的是在擁有共同目標的前提下。個體之間所進行的各種有意識的活動及過程。」—《Effective DevOps 中文版》P.74 身為組織及團隊的一份子,無法避免一定有必須與他人協作的時候,你可能和座位隔壁的同事、相同團隊或部門的成員擁有較好的協作默契,但與其他部門或單位的協作默契則較差一些。在書中介紹了許多會對「協作」造成影響的因素,若將其一一條列,會發現其中大半都與「人」習習相關:
專業背景 包含個體的專業能力、過往累積的經驗、經歷⋯⋯ 個人背景 個體的各種多元特性,性別、語言、種族、國籍、教育水平⋯⋯ 目標 個人、團隊與組織的目標是否一致、擁有共識。 認知方式 人們如何認知事物,對事情、環境及他人的看法與想法。 企業內部的教育與投資 組織內部是否擁有教育訓練,是否提供良好的學習流程與制度。 思維模式 成長型思維或固定型思維。 學習型組織 是否擁抱持續學習、自我改善、對事不對人的文化。 回饋機制 是否擁有良好的回饋機制,幫助團隊自我改善、成長 溝通與解決衝突 是否具備有效的溝通管道與方式,團隊如何面對衝突、化解衝突。 同理心和信任 組織成員是否具備同理心與信任。 人力配置與資源分配 是否擁有人性化的人力配置,人力與工作量的分配狀況又是如何,是否擁有合宜的補償措施。 小結 「如果沒有妥善的處理人們因為專業和個人背景的差異所引起的摩擦,原本高效率的協作就會出現問題。去幫助人們辨別、塑造、並積極努力朝向各自不同的動機和目標,是領導力很重要的一部份,無論你是擁有正式職位的管理者,或只是在同儕之間擔任領導者角色的一般員工。」— 《Effective DevOps 中文版》P.115 協作與人的因素密切相關,這不只是組織管理階層,而是團隊的每一份子都需要面對的問題。畢竟團隊文化的形成,仰賴的是該團隊中每一份子的行為舉止。假如團隊內充滿著可以隨意中斷他人工作的溝通方式,久而久之該團隊很可能就會形成一種可以隨意干擾他人工作的文化,進而導致無法建立良好的團隊協作,甚至因此長期影響著團隊整體的工作效率。
協作:讓人們一起協力工作—除了自己的團隊與部門之外,企業與組織包含著許許多多的團隊與部門,如今談到 DevOps 除了狹義的讓 Dev 與 Ops 可以良好的溝通與協作之外,也廣義的擴及到整體組織的其他部門。當範圍擴大時,需要面對的「人的因素」及「差異」將會更廣更多,而本書《Effective DevOps》在有限的篇幅之內針對這些因素只能點到為止,建議您不妨將本書當作一個起點或參考,再更進一步深入地了解還有哪些因素與方法可以幫助讓您的團隊(企業)成為一個具備高效率協作的團隊(企業)。...
《Effective DevOps》是一本技術人撰寫的非技術書籍,它探討的並非要用什麼工具來實踐 DevOps,而是帶領讀者關注 DevOps 最本質讓人面對的「human problem」。 (本文同步發表於 Medium) 《Effective DevOps》英文版於 2016 年出版,如果你在 Twitter 上耐心搜尋 #EffectiveDevOps,仍然可以找到在《Effective DevOps》剛出版時,人們所拍下的許許多多「開箱照」。
如同我在譯者序中提到的,《Effective DevOps》並非是一本 IT 技術人習以為常的「技術書籍」,而是一本由技術人寫出來的非技術書籍。全書雖然從四個主軸切入來探討如何讓 DevOps Effectively,但若仔細閱讀,你會發現這四大主軸依然全都圍繞著相同的重點——人與文化。即便其中一個主軸的名稱為「工具」,但內文描述的卻不是你應該使用哪一個工具、運用哪些工具鍊才符合 DevOps,反而內容是一再地提醒你要思考人們為何要使用工具?如何使用?工具與人的關係及關聯性為何。
書籍架構 按目錄,這本書的架構被分為六篇:
第一篇:什麼是 DevOps? 第二篇:協作 第三篇:親和力 第四篇:工具 第五篇:擴展 第六篇:建立 DevOps 文化的連結 但其實可以分成三個部分來看:
第一篇即是 DevOps 的簡介與這本書想要傳達的核心理念 第二至五篇從四種不同的面向切入,說明「人與文化」有關的各種因素及影響性 第六篇為結論與呼籲 在第一篇,作者幫助大家先建立對於 DevOps 的基本認識,幫助讀者將自身對於 DevOps 的觀點,從 技術、工具轉移至作者認為大家真正應該專注的「human problem」。 在第二至五篇則是詳細介紹作者提出的「Effective Devops 四大主軸」為何,以及其重要性與影響性。各篇單獨說明如下:
第二篇:協作,內容談的即是何為協作,其重要性、影響性,以及有哪些因素會影響協作。 第三篇:親和力,談的是「連結」與「關係」,及其能夠帶來交互作用,內容涉及了「人與人」、「人與群體」、「群體與群體」、「組織與組織」,甚至是「企業與企業」的關係。 第四篇:工具,不同於技術書看待工具的方式,本書是從「工具對於人及文化的影響層面」來切入,強調「工具之於人的價值」。 第五篇:擴展,談的不是系統、基礎架構的 scaling,更不是 Cloud 的 Auto Scaling,而是組織的演化與生命週期,提醒我們當組織在 scaling 時(可能是擴大、縮編、轉型⋯⋯),別忘了關注「人與文化」的議題。 最後第六篇,則是整本書的收尾,再次提醒「DevOps is a human problem」,呼籲大家除了要關注「技術債」之外,更要關注組織與團隊內的「文化債」。同時第六篇也是一份邀請,作者在邀請讀者們一起擁抱她們所認為 #devops 這個 hashtag 最初的精神——打破穀倉與隔閡,讓人們彼此串連、連結,邀請大家加入世界各地的 DevOps 社群,彼此分享經驗,創造更多的連結與正向循環。...
 (本文同步發表於 Medium)
我個人的 devops 旅程大約起始於 2013 的年中,當時我正陷於傳統產業之 IT 與 MIS 的救火工作之中,就在那時我收到了來自好友聖佑捎來的一段訊息,「你有聽說過 DevOps 嗎?」正是這一句有如直銷的話語,引領我正式進入 devops 的世界中。而在接下來的日子裡,大量的知識與資訊向我席捲而來,到底什麼是 devops?是特定的技術?團隊協作方式?組織轉型?文化?面對大量令人眼花撩亂的資訊,實在是令人難以招架,現在回想起來,我與本書其中一則推薦序有著相同的想法,若是當時的我也能夠擁有這本書那該有多好。
這並不是一本寫給技術宅的技術手冊,它更像是一本心理學字典、參考書、故事集或者是《哈佛商業評論》雜誌。本書就像是一份指南,能夠指引向來只重視技術知識的 IT 人,繼續探索更多不同領域的知識與資源。一間企業能夠順利的運作絕不是只靠「dev」或「ops」即可,企業若期望提升其生存能力,組織內的每個部門皆有其重要性,希望本書的中譯本可以幫助更多人以更廣義的角度來看待 devops,讓優良的企業文化能深植在全體組織之中。
在未來 devops 一詞會不會消失?我個人不敢斷言,但可以肯定的是隨著這波 devops 風潮,只會有越來越多的人們知道,原來世界上擁有更優良的工作方法、團隊協作方式以及各種可以提升組織效能的工具。而「開放」和「持續改善」恐怕也將會是未來組織、團隊及個人都必須擁抱的一種優良文化。
在我個人的 devops 旅程中,一再接受到來自社群的諸多幫助,「取之於社群,回饋於社群」,主動請纓擔任本書譯者是我個人在心中為「回饋社群」所立下的一項里程碑,期盼本書能為社群提供更多的參考資料,讓更多人能夠因此受益。讀者若對於 devops 相關主題有興趣,可以加入世界各地的 devops 社群,也歡迎加入 DevOps Taiwan 社群,同時也鼓勵你嘗試籌組屬於自己城市的在地社群,讓社群能夠遍地開花,建立更多的人際連結、互動與交流。另外我個人比照原書作者為英文版設立 https://effectivedevops.net/ 的做法,也設立了 https://effectivedevops.tw,期盼也能為社群提供更多有助於互動交流的空間。
這本由技術人寫出來的非技術書籍,實在是令人感佩兩位作者的學識豐富,但對於擔任譯者的我而言,則是一段艱難的歷程,能夠順利完成本書的翻譯,著實要感謝許多人的幫助,感謝出版社編輯的耐心、感謝多位社群前輩的建議及鼓勵、感謝幾位心理學領域的朋友所提供的諮詢。
最後感謝我那可愛又逗趣的妻子,雖然妳一再表示妳是氣質美女,但在我的心目中,妳就是為人生旅途增添風趣的最佳伴侶,還有我的寶貝女兒,妳的可愛笑容是這段艱難日子中最棒的心靈療癒,謝謝妳們,妳們是我持續向前邁進的重要助力。
——陳正瑋
寫在翻譯書籍順利出版之後 感謝來自社群針對《Effective DevOps 中文版》的支持與鼓勵,但還請容我再次向大家致歉,對於這本書延誤到如今才順利出版,實在是感到非常不好意思,謝謝大家的包容與忍耐。
同時也再次說明,譯者並非作者,因此無論各位是買一本或買十本,基本上都不會影響我個人的收入,不過還是鼓勵大家多多買書、看書,因為出版業真的需要更多人的支持,不然出版品的品質恐怕只會逐年下滑。我一直很認同過去求學時期聽見的一句話「一個國家的國力與翻譯力息息相關」,雖然現在是網路 + 人人都會英文的時代,想要取得第一手的資訊與知識已經不像過去的時代那麼困難,但我還是依然認為知識能否更快速的普及與傳遞,和該知識是否能被快速、正確地被翻譯為當地語言是有關聯性的。因此,還是要再次呼籲,希望大家能多多支持出版業,不論是買書、看書、推廣好書、擔任譯者或作者,這些都是值得鼓勵的方式。
另外,https://effectivedevops.tw 網站也已經順利上線,將會貢獻給 DevOps Taiwan 社群使用,將會用來匯整各種值得收藏的 DevOps 相關好文或參考資料。雖然網站目前還只是一個陽春的 MVP 版本,但相信未來的日子我們會將其改善得越來越好,如果您也有收藏任何與 DevOps 有關的優質文章,也歡迎讓我們知道,謝謝。
提供 DevOps 經典好文與參考資料 最後,要再提一次,縱然在書籍出版過程中,譯稿已經過多雙眼睛的校對與覆閱,但相信本書依然可能會有錯譯及翻譯不佳之處,如果有任何的建議,還請各位務必回報讓我們知道,我們會盡快將大家回報的錯誤,整理為「書籍勘誤對照表」並於網路公佈,在此就先感謝大家的指教了。 回報《Effective DevOps 中文版》勘誤 相關連結 《Effective DevOps 中文版》 DevOps Taiwan 社群 https://effectivedevops....