談 DevOps 這個字,不如談一談⋯⋯

感謝台灣微軟的 R 姐邀請,上週五晚上有幸能參加微軟 MVP 的活動。活動安排的行程前半部為「講者分享」,而後半段則為「分組討論」,在四個分組主題之中,其中一組的討論主題即為「DevOps」。 (本文同步發表於 Medium ) 在當晚的分組討論中,眾多 MVP 及與會者針對 DevOps 及 Scrum 交流了許多經驗,很有趣的是在「DevOps」這一組,首個被提出討論的問題依然是「What is DevOps?」 到底什麼是 DevOps?這真是一個難以回答的問題,特別是當你看見越來越多的資料及聽見不同專家的見解之後,個人越是深深覺得 DevOps 這個字難以用幾個字簡單的說明。 DevOps 是一場 IT 及軟體界的轉型運動、DevOps 是一種文化、DevOps 是一種精神、DevOps 是一種方法論、DevOps 是一大堆串聯在一起的技術解決方案、DevOps 是商人用來⋯⋯ 在活動結束、返家的路途之中,自己再一次地咀嚼於活動中交流及獲得的各種經驗,並且反思如果下次再遇到「What is DevOps?」,到底應該要談些什麼?於是心中浮現了以下幾個問題。 組織內外是否有溝通層面的問題? 組織內外有穀倉效應的問題嗎? 目前團隊的生產力如何? 目前從開發直到維運整個流程的順暢度如何? 組織是否擁抱「持續改善」的文化? 組織是否擁抱「不咎責」的文化? 組織是否擁抱「學習型組織」? 成員是否具備「當責」的心態? 同時也想起在 Agile Tour HsinChu 2017 活動當天,一早遇見 Titansoft 的老闆 Yves 時的情景。在當時與 Yves 的閒聊中,對於 DevOps 自己似乎說過這樣的一句話——「我覺得 DevOps 這個字可能會漸漸消失,真正會留下的是其他這些相關的重要觀念與實踐方法⋯⋯」

January 22, 2018 · Cheng Wei Chen

DevOpsDays Taipei 2017 感恩再感恩的一段旅程

就用一篇部落格文章來紀念本次參與籌辦 DevOpsDays Taipei 2017。  約莫在今年二月底的時候,注意到了北京將會舉辦 DevOpsDays Beijing 的消息,看著網路上傳來的資訊,當時心裡並未多想,只是想著:「哇,沒想到北京在今年加入響應舉辦 DevOpsDays,去年亞洲區好像只有新加坡舉辦的樣子?北京辦得如此盛大,不知道會不會有哪個好心人願意舉辦一場屬於台北的 DevOpsDays。」 接下來的日子陸續傳出北京的各種消息,包含注意到 Ruddy 老師在臉書上貼出了北京的照片,因為老師受邀擔任北京的其中一位講者,老師還秀出他與 DevOps 之父 Patrick debois 的合影。接著在 2017/3/22 當晚,Ruddy 老師便主動傳訊息給我,鼓勵可以嘗試舉辦屬於台灣的 DevOpsDays,並且告知要與 DevOpsDays 官方搭上線並沒有想像中的困難。  雖然 Ruddy 老師推了一把,但其實在當時我自己心中的想法是:「想要辦這樣的大活動,必定要動用不少的資源,包含資金、人力、人脈與熱情。今年就先調查一下狀況,也許明年 2018 再來看看有沒有機會號召眾人一起來舉辦。」 不過萬萬沒有想到,雖然自己在心中是這樣許願,但現實世界卻默默之間急速運轉了起來。  接下來急速運轉了哪些事情呢? 首先是 iThome 主動地表示希望能與社群有更多的合作機會,而我隨口一提的意見「那就一起來辦 DevOpsDays Taipei 吧?」,卻獲得 iThome 谷社長與吳總編輯一致表示有高度的興趣。 接著向 DevOps Taiwan 社群的志工們詢問意見,志工們也一致贊成。 最後,因為談到 DevOps 時,其主題與 Lean、Agile 密不可分,因此我嘗試邀約 Agile Community Taiwan 的前輩柯仁傑一起參與首次的籌辦會議,結果會議一次就順利談妥三方共同主辦 DevOpsDays Taipei。(其實那時還稱不上是正式的籌辦會議,比較像是先試著確認彼此有沒有共識,有沒有機會合作。) 原本我自己還想著明年才來考慮要不要籌辦的想法,在數週的時間內就被替換成「木已成舟,今年非辦不可」。 於是各式各樣的籌備工作就這麼迅速展開: 與 DevOpsDays 官方聯繫,取得官方 Guilde,遵照官方 Guilde 籌辦活動。 與官方進行線上會議,確認彼此沒有任何異議。 尋找評估合適的場地與日期。 請設計師設計 Logo。 公開徵稿與私下邀稿。 尋求贊助商。 送 PR 至官方網站,讓 DevOpsDays Taipei 的資訊可以刊登上 devopsdays....

September 16, 2017 · Cheng Wei Chen

COSCUP 2017 - Ansible & GitLab CI/CD workshop 101

今年(2017)的 COSCUP 採用與過往不同的徵稿方式,而 DevOps Taiwan 社群也共襄盛舉貢獻了三場分享。 縱然我們知道談到 DevOps 時,不該只談論其中的技術層面,更應該要包含文化層面的議題,不過在這種技術力爆表的場子,就請原諒我們還是會以技術為主要的分享內容。 (不過這麼說有失偏頗,因為 COSCUP 2017 還是有像是「如何將女友培養成開源貢獻者」這種軟性的主題,因此只要有心,還是能夠分享非技術主題的。) DevOps Taiwan 這次由三位講者,分別負責一場分享,首先我們邀請了部落格「小城故事不多-科技部」的蔡宗城(smalltown)為我們分享「Infrastructure As Code」。 第二位講者則是大家從小看到大的部落格「凍仁的筆記」其主人凍仁翔,為我們分享「DevOps 人一定要知道的 Ansible & GitLab CI 持續交付技巧」。 最後,則由小弟我延續凍仁翔的題目,帶來一場簡易的 Workshop 「Ansible & GitLab CI/CD workshop 101」。 Ansible & GitLab CI/CD workshop 101 這場 Workshop 在構思時,預定的難度是 101 的程度,但實際動手設計內容時發現要講多淺才算是 101?要多複雜才算是 201、301 或更高的難度?有一些難以拿捏,總之就請各位保持著一種開開心心的心情來跟著下面的內容操作練習即可,到底是 101、201、或甚至根本只是幼幼班就先拋在腦後吧(逃)。 回到正題,這場 Workshop 希望能幫助大家藉由實際操作,能夠體驗看看 CI / CD、Automation,以及當我們在談到開發流程的規劃,關於 workflow 或 pipeline 的規劃時可能要注意些什麼? 要注意的是,這個 workshop 的案例只是一個簡單的示範,不同的公司、組織或團隊在規劃 pipeline 時會有各自的考量,因此在實際體驗之後,當你回到自己的團隊時,務必要根據你自身的情況進行規劃,如此才能建構出最適合你團隊的 CI / CD pipeline。 所需工具 本次我們會使用的工具如下: Ansible - 我們會利用 Ansible 撰寫一些簡易的自動化腳本。 Docker Community Edition - 用來運行你自己 CI Runner 與模擬 Web Server。 續上,一台可以跑得動 2-3 個 Container 的主機(可以是你自己的筆電、雲端的 VPS,或其他。),預計會消耗 5 GB 以內的硬碟空間,因為在 Workshop 使用的是個人自建又大又肥的 Container。 GitLab....

August 5, 2017 · Cheng Wei Chen

DevOps Taiwan Meetup #6 簡短紀錄

 (圖說:本次 Meetup 大合照) DevOps Taiwan 社群在 2017/5/17 舉辦了 Meetup #6,因為這是一場充滿實驗性質的 Meetup,因此將主題訂為「實驗、連結、對話與成長」。 感謝 104 資訊科技贊助所有的零食與飲料,以及所有的文具耗材。 感謝極客窩 (Geek Cave) 贊助場地。 感謝 tonypai 願意自告奮勇擔任 Ignite Talks 的其中一位講者。 感謝譚御丰擔任「非技術之主題分享」的講者。 感謝 John Yu 協助場地佈置並在 open space 的時段擔任小幫手。 感謝多位來自敏捷社群的朋友,open space 能順利進行你們每一位都功不可沒。 感謝 DevOps Taiwan 志工群的幫忙。 最後也感謝社群朋友的熱情參與! 就以此文簡短紀錄一下本次活動。 籌備 Meetup #5 之後,社群又陷入缺講者的狀態,同時社群志工群們各個都被本職工作追著跑,Meetup #6 到底該如何是好? 但很幸運的,譚御丰當時有參加 Meetup #5,在活動結束之後的閒聊當中,我忽然想起,他所任職的公司即是一間跨國的軟體公司,而這不正是我思思慕慕想要尋找「跨國團隊工作經驗分享」、「跨國企業工作經驗分享」這一類講者的最佳人選嗎? 真的要感謝譚御丰的幫忙,當下隨口詢問他是否能夠分享與「跨國團隊經驗」相關的主題,內容不管是團隊文化、協同合作經驗、或任何相關的趣事皆可。而他便立即熱情地表示,只要時間上能夠配合,他自己也很願意嘗試挑戰這種非技術類型的主題。 於是,Meetup #6 的講者就這麼幸運的敲定了。而為了配合譚御丰可行的時間,原本兩個月一次的 Meetup,本該是六月才會舉辦 Meetup #6,也就順水推舟的改在五月舉辦。 另外與此同時,DevOps Taiwan 社群與 Agile Community TW 及 iThome 正默默地籌備要舉辦 DevOpsDays Taipei 2017,而其中一個令人擔憂的關鍵便是 DevOpsDays 的一項傳統與特色,即是 open space 開放空間會議。...

June 19, 2017 · Cheng Wei Chen

DevOps Taiwan Meetup #5 簡短紀錄

 最近沒新梗,只好使用相同的開場白,繼 Meetup #4 之後,很快的兩個月多的時間過去,DevOps Taiwan 在 2017/04/26 晚上舉辦了第五次的 Meetup。 感謝極客窩 (Geek Cave) 贊助場地,感謝 John Yu 擔任本次 Meetup 的講者與引導者,感謝志工群的幫忙。最後同樣也感謝社群朋友的熱情參與! 就以此文簡短紀錄一下本次活動的林林總總。 籌備 記得應該是在兩個多月前(其實我有點不確定時間先後),也就是 Meetup #4 還沒舉辦之時,在微軟舉辦的 Leadership camp for Community Leaders 遇到了幾位 AgileCommunity.tw 社群的朋友,其中一位就是 John Yu,每次遇到他都會開個小玩笑,聊上一兩句,於是聊著聊著心中便想說,不如請敏捷社群的朋友來幫 DevOps Taiwan 社群補充一些 Agile 與 Lean 相關的主題吧?於是在聊天的當下,當機立斷挖個洞,看看有沒有人會願意跳坑,沒想到還真的成功讓 John Yu 落坑,實在是好人一枚。(顯示為已哭) 經過糾正,發現自已完全記錯事件的先後順序,但唯一不變的事實是,在某次與 John Yu 聊天的時候,我當時當機立斷挖了坑,想要看看有沒有人會願意跳坑,沒想到 John Yu 就這麼落坑了,實在是好人一枚。(顯示為已哭) 在那之後與 John Yu 聊了幾次,本來我個人的目標是從 Agile 或 Lean 的精神切入談 DevOps,但經過討論之後,最後我們將主題調整為直接談談「DevOps 文化」,並且定案讓活動能更具有互動性。 其實我個人這幾年參加了數次敏捷社群的活動,除了知識與經驗分享上的收穫,另一項最大的收穫是「舉辦活動的多樣性」,這也是為何個人目前十分認同社群活動必須建立在人際互動之上。 最後,活動的規劃包含了開場的「破冰 + 分組」與中間的「分組討論」,同時希望能在搶票之時,就盡可能讓多一些主管或意見領袖類的朋友報名,期望讓討論能切入更多的面向。 活動過程  在這次的活動中 John Yu 除了擔任主講者與引導者,其實在活動開始之前他也提供了不少的建議,像是:...

May 7, 2017 · Cheng Wei Chen

DevOps Taiwan Meetup #4 簡短紀錄

 繼 Meetup #3 之後,很快的兩個月多的時間過去,DevOps Taiwan 在 2017/02/22 晚上舉辦了第四次的 Meetup。 感謝極客窩 (Geek Cave) 贊助場地,感謝安德魯前輩為本次 Meetup 準備的豐富內容,感謝志工群的幫忙。最後同樣也感謝社群朋友不畏風雨的熱情參與! 就以此文簡短紀錄一下本次活動的林林總總。 (封面背景圖片來源 https://unsplash.com/photos/-K6JMRMj4x4) 籌備 打從 Meetup #3 結束之後,時間約在 2016 年 12 月左右,志工們就默默在籌備 Meetup #4,首先苦惱的當然是「主題為何」。在與 DevOps 相關的眾多關鍵字中,這一次要選哪一個來當作主題呢? 很巧的就在此時,剛好注意到安德魯前輩已經撰寫了數篇關於「Microservies 微服務」的中文文章。於是抱持著一股既期待又怕受傷害的心情,直接的就向前輩發出邀約。結果意外的立即就獲得了前輩的正面回應,願意替社群分享主題。 有鑒於前幾次的 Meetup,志工們一直在思考與嘗試希望在活動舉辦上能有所變化,例如上次 Meetup #3 的 CM 大亂鬥,一次湊齊四種工具的講者,並且來了一場綜合座談,就是一個不錯的嘗試,那麼這一次我們又能試試什麼不一樣的做法呢? 不過很可惜的是,雖然有這樣的熱情,但在實務上這次籌備過程並沒激發出特別的想法,最後決定先維持一般做法,以講題分享為主。同時因為安德魯前輩表示可能無法準時到場,所以原訂希望能再湊一位講者,安排在主持人開場之後,先來一場約 15 ~ 20 分鐘與微服務有關的 Lightning Talk,但最終沒能找到合適的講者,故這個計畫也只能因此作罷。 最後活動前面的 20 分鐘到底該做什麼好呢?個人提議不如就設計一個簡單的暖場活動吧?有鑒於這一兩年參加社群活動的經驗,以及參與了不少次 Agile 社群的活動,深深覺得「社群」真正的價值是建立在「人與人的互動」之上,如果社群沒有了交流與互動,那實在是非常可惜的事情。於是前 20 分鐘就定調為「強迫互動的秘密暖場活動」,剩下就等活動日子來到了。 現在回想其實有許多需要檢討的地方,不過這些檢討與反省,就全部留在最後一個段落一起記錄了。 講題分享 這次很榮幸能邀請到 Andrew Wu 一宇數位技術長 & 技術發展顧問為我們分享「Microservies 微服務」 的經驗分享,從講者的個人經歷與部落格文章中可以很清楚地知道是一位在這個產業有著扎實經驗的前輩,同時也是一位對於社群與後輩抱有熱切的教育之心的前輩。 為什麼會特別提到「教育之心」這件事情呢?就以這次 Meetup 分享的內容來說,安德魯前輩特別將「一窩蜂驅動開發」的局部內容放在簡報之中,當然一方面是因為文章內有提到 Microservices,另一方面則是他深深認同文章的觀點,所以除了借用文章當梗呼應簡報內容,也更是為了推廣正確的「開發觀念」,不要成為「一窩蜂開發者」。...

February 27, 2017 · Cheng Wei Chen

DevOps Taiwan Meetup #3 簡短紀錄

 籌備多時的 DevOps Taiwan Meetup #3 順利在 2016/11/23 夜間舉辦。感謝極客窩 (Geek Cave) 贊助場地,感謝四位講者黃俊宏、蔡宗城、Mose、Wayne Lin 為本次活動的付出,感謝志工群的幫忙。最後也感謝社群朋友對本次活動的熱情參與! 就以此文簡短紀錄一下本次活動的林林總總。 (封面背景圖片來源 https://unsplash.com/search/fight?photo=1iHpSdiZyFA) 籌備 其實原本 Meetup #2 的活動主題就是「配置管理工具大亂鬥」(CM Tools 大亂鬥) ,但因為 Meetup #2 一直遲遲未能順利籌辦,而當時正逢 DevOps Summit 2016 剛結束,葉秉哲 (葉大) 也有意再分享一次 TOC 的講題,於是在天時地利人和的情況下,就先以「思維引導、持續改善,引發團隊改變新契機」為題舉辦了 Meetup #2。 那到底什麼原因讓「CM Tools 大亂鬥」難以籌辦呢? 主要有兩個原因: 講者邀請 想要一次湊齊四種工具、四位講者實在是一件辛苦的事情,尤其是 Puppet 與 SaltStack 這兩個工具的講者。如果你去 Google 搜尋 Ansible 或 Chef,大概都能找到幾位己經浮出水面的講者。但是 Puppet 與 SaltStack 能找到的則相當有限。 如果不能用 Google 搜尋來找講者,就只好透過人脈來間接尋找了,於是在志工群動員了各自的人脈暗地詢問之後,最終我們才湊齊了四位講者。 而且講者還不是找到即可,還要與對方確認意願、約定日期時間,其中 SaltStack 的講者一度流標,因為時間上無法配合,最後是又再透過 Chef 的講者蔡宗城的人脈才順利邀約到 Wayne 來擔任講者。 規劃活動內容 CM Tools 大亂鬥,到底要怎麼鬥?這也讓志工們苦惱許久。 最後志工們討論出了一個很棒的想法,即是分為上下半場的活動。...

December 4, 2016 · Cheng Wei Chen