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

DevOps 推薦書單

(本文於 2018-06-14 21:56:01 更新。) 在某次機緣之下,與尊敬的 Ruddy 老師針對「 DevOps 推薦書籍」有一些簡單的交流。那時整理了手上的筆記,將收集到的 DevOps 書單整理在本文之中。如果你也有推薦的 DevOps 書單,歡迎與我交流!(本文將持續更新,歡迎推薦 DevOps 好書。) (本文同步發表於 Medium) DevOps 不只涉及觀念,也與許多的工具相關,但因為技術工具書,例如:Ansible、Docker、K8S 這一類著重於工具操作與使用的書籍,通常隨著工具更新的緣故,書籍的壽命都比較短。同時並非每一種工具都適用於所有的團隊,因此這類書籍就不收錄在此書單中。 這份書單會以保存期限較為長久的觀念型書籍為主。 Effective DevOps - Building a Culture of Collaboration, Affinity, and Tooling at Scale 這是一本由技術人撰寫的非技術書籍,本書主要在談 DevOps 文化,圍繞在書名副標的那四個項目 Collaboration、Affinity、Tool、Scale,以文化與組織發展為主軸貫穿全書。另外書籍的前面幾章也針對 DevOps 及 DevOps 相關的關鍵字提供了基本簡介,某種程度可以當成一本 DevOps 入門書,可由此再延伸閱讀更多的書籍。(繁中、簡中) Continuous Integration: Improving Software Quality and Reducing Risk 關於持續整合(CI,Continuous Integration)的經典必讀書籍,缺點是目前沒中譯本。 Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation 關於持續交付(CD,Continuous Delivery)的經典必讀書籍,比較要注意的是因為英文版是 2010 年出版的書籍,因此書中範例提到的軟體會比較老牌一點。另外,在社群中也有前輩表示現今 Microservices、Serverless 等新觀念抬頭,這本書的部分內容應該可以配合這些觀念而有所更新。(繁中) The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win 知名的 DevOps 小說,如果當工具書來讀會大失所望,按其他前輩的說法,此書就是要當成小說與實際案例來看,請細細品味書中的劇情及小說人物遇到的困境,並且對照自己的經歷而有所反思,同時嘗試換位思考如果你是小說內的主角你會怎麼面對問題,如此一來才能體會書中的醍醐味。本書也是讓玄妙的 DevOps「三步工作法」首次面世的書籍。(繁中、簡中) The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations 由目前世界知名的 DevOps 顧問 Gene Kim 與他的好朋友們延續《The Phoenix Project》而撰寫的另一本書。如果覺得看完《The Phoenix Project》之後,對於玄妙的三步工作法依然不得要領,那麼這本《DevOps Handbook》就是你的救星。這本書透過案例與說明幫助你一步步實踐「三步工作法」,這些案例不乏許多知名的公司,像是 Google、Netflix、Etsy⋯⋯。(簡中) The Nature of Software Development: Keep It Simple, Make It Valuable, Build It Piece by Piece 另一本值得列為 DevOps 必讀書籍的輕薄好書。本書簡短、輕快且直擊紅心的點出軟體開發的核心關鍵—交付價值,這也正是藏在 DevOps 背後的重要關鍵。若希望讓你的團隊順利踏上 DevOps 之旅,那麼最好讓組織、團隊及個人皆能共同意識到「交付價值」的重要性。(簡中) Site Reliability Engineering - How Google Runs Production Systems 有些人是這麼評論的 “SRE is Google’s version of DevOps”,在《SRE》書中也自己寫到「SRE 是 DevOps 模型在 Google 的具體實踐」。另外在 Gartner 所推出的 Gartner DevOps Model 中,也可以看見 SRE 有被列入其中。這是一本兼具觀念與技術實務的書籍,內容包含很硬的技術實踐與很軟的團隊文化,對於 SRE 有興趣者非讀不可,另外若對你而言 DevOps 與 Cloud Architect 的關係密不可分,那這也是非讀不可的好書。 The DevOps 2....

November 30, 2016 · Cheng Wei Chen

C.C. Agile #51 - 「翻硬幣遊戲」簡短紀錄

自從參加幾次 Agile 相關的活動之後,切身體會到「玩遊戲」真的是一種很棒的體驗與學習方式,特別是當你對於某些觀念與情境還沒有足夠的「實務經驗」時,遊戲其實是一個很好的情境模擬方式,讓人在短暫的遊戲中,可以稍稍體會到實務現場中的某些狀況。 因此這次看到 C.C. Agile #51 將透過「翻硬幣遊戲」來與大家聊聊 WIP Limits 及 Lead Time,二話不說,立刻向太座大人請示可否外出放風。 本文就簡單的紀錄這個有趣的遊戲及簡短的心得。  翻硬幣遊戲 本次活動將參加者分成兩組,每組 12 人,各別代表一間公司。 每間公司皆有五個部門(經理、員工各一人)、一位老闆及一位客戶。 遊戲的流程大致如下: 客戶將「硬幣」交給公司,「硬幣」會經過這五個部門,最後完工的「硬幣」再傳回給客戶。 每個角色要做的事情都很簡單: 員工 = 將每一枚硬幣翻面,然後傳遞給下一個部門。最後一個部門則是傳給客戶。 經理 = 幫員工計時,看看他完成工作需要花費多少時間。 客戶 = 從交付硬幣開始計時,當收到傳回來的第一枚硬幣時結束計時。 老闆 = 從交付硬幣開始計時,當客戶收到傳回來的最後枚硬幣時結束計時。 那麼在遊戲中間要怎麼體驗 WIP 與 Lead Time 呢? 這就看遊戲規劃者如何設計每一回合的詳細規則,例如: 第一回合:只能用單手翻,而且必須要翻完 15 個硬幣,才能將硬幣傳給下一個部門。 第二回合:只能用單手翻,只要翻完 5 個硬幣,就能將硬幣傳給下一個部門。 諸如此類 因此透過遊戲規則的設計,就可以讓參與者體驗到不同的 WIP 的限制下,對於 Lead Time 會產生什麼影響,以及不同的 WIP 對於整體 Flow 流動順暢度的影響。 簡短心得 這次遊戲玩得相當激烈,兩組人馬的競爭心非常強烈!我個人在遊戲中選擇擔任員工的角色,玩到最後,翻硬幣翻到手指流血,你就知道大家都是卯起來玩!這就彷彿現實生活,企業之間競爭激烈,如果不能「持續改善」的公司,終將在競爭中敗陣,所以非要拼得你死我活不可 XD。 如前面對遊戲的說明,在主辦者 Erica 精心設計的詳細規則之下,讓人能體驗到不同 WIP 限制對於整體 Flow 的影響,並且透過比較不同回合的計時數據,可以很明顯看出 WIP 限制對於 Lead Time 的影響,當 WIP 從較大數字縮小到一個合適的數字時,可以發現有非常明顯的改善效果。...

November 25, 2016 · Cheng Wei Chen