--- title: HiExpert 2021 DevOps 領航者論壇 tags: DevOps, HiExpert --- # DevOps 領航者論壇 2021/10/20 # 講師 - 范聖佑 - JetBrains 傳教士 - 陳正瑋 - DevOps Taiwan Community 志工 - 邱宏瑋 - 台灣雲端原生使用者社群(CNTUG)共同創辦人之一 - Andrew Wu - 91APP 首席架構師 - Will 保哥 - 多奇數位創意有限公司技術總監 1. [Facebook](https://www.facebook.com/will.fans/) 2. [Blog](https://blog.miniasp.com/) - Phil Huang - 台灣雲端原生使用者社群(CNTUG)活躍社員 # DevOps 的未來趨勢/走向預測 :::info - `Security` - `Automation` - `CI/CD` - `Source Code Version Control` ::: # 企業如何注入 DevOps 文化 ## DevOps 文化對企業文化有哪些影響 ### 陳正瑋 講者 1. 開發、維護,品質的持續改善 2. 不究責文化,對事不對人 3. 補償效應,提升個人能力 4. 部署內容透明 ### Phil Huang 講者 1. 技術越來越多樣化,CI/CD 不給 Developer 也不給 Operation,要有專門職務負責 ### Andrew Wu 講者 1. DevOps 不成熟時,Developer 兼職太多事情不合理,導入 DevOps 讓團隊合作更有效率 ## 如何判斷 DevOps 運作的成功與否? ### 邱宏瑋 講者 1. 導入後是否成功?營運者看營收是否提高,開發人員看如何更有效率 debug、寫code,QA 看除錯上是否更有效率。總之,每個職位都有自己成功目標的定義 2. 先從小專案開始導入, 剛起步不可能一步登天, 很難同時讓開發, 維運, 老闆都滿意 ### 陳正瑋 講者 DevOps 是否成功? 每一年都有組織 顧問會去做 DevOps 報告,其實每年的指標重點都不太一樣,可以看到某一年佈署效率提升,下一年品質提升、獲利提升等等,每一年走向都不太一樣 所以如何評價是否成功? 很難用單一標準來判斷 CI/CD 都有對應成熟度模型可以參考,但不是說5顆星佈署100次,所以我就真的要一天佈署100次衝星星 有專門 DevOps 顧問公司,定義出 DevOps 成功與否 搜尋 DevOps 標準、認證 ref: 中国信通院主导的DevOps国际标准在ITU-T成功立项 ## DevOps 對於企業的商業和管理價值是什麼? ### Will保哥 講者 商業價值,一定要談錢! 省錢 or 賺錢 DevOps 可以創造哪一種價值? IT 單位在傳產賺不了錢啦,基本上就是花錢、燒錢的單位,老闆只會覺得你要的越多燒越多 換個角度思考,純軟公司 DevOps 有什麼價值? 接案公司大小案子多、人也多,如何讓50人一起工作才能更有效率,透過 CI/CD 能自動化就自動化就能省錢 透過敏捷的方式去幫助所有人看清楚自己手邊的專案發生什麼問題 短短3~5分鐘的晨會就能發現問題,可以省下時間不要去做無意義的工作 不然 code 沒寫完去做雜事,做多了不但會心煩,無形的時間浪費就會越佔越多 **如何讓公司知道隱形成本流失? 透過 devops 可以做到** 純軟體公司,導入DevOps,讓50多人工作起來更有效率,每日daily standup 10分鐘,明白大家在做什麼,資訊更透明等 ### Andrew Wu 講者 從技術角度談 devops 議題 **監控** 傳統監控:一堆機器、monitor、網路、流量 導入DevOps後,從監控角度,就可以很快找出問題點。很多工程師的效率,都可以數據化 可以看到成本是否有改善,了解 devops 對公司的影響,也可以讓工程師了解幫公司提供的價值 ref: [架構師的修練] #2, SLO - 如何確保服務水準? https://columns.chicken-house.net/2021/06/04/slo/ #### DevOps 指標舉例 在網站上key驗證碼手機會收到訊息,手機多快會收到,有辦法監控嗎? 監控sms簡訊送出到對方收到時間,導入DevOps後,可以加入更多這類的指標 開發團隊自己寫 code 放到維運系統,循環就開始轉起來,就知道反應時間平均值,如果不滿意可以做一些改變上版再修正,知道這些使用者在意的結果(收到簡訊的反應速度)是好是壞 **開始讓商業上的價值反映到 devops 循環中,讓企業主知道導入 devops 的價值。** --- 中場休息 5 分鐘 --- ## 面對 DevOps 文化的企業我該做哪些準備? 如何與自動化良好共處? 如何成為 DevOps 工程師?工作內容?薪水差異? 個人要如何對新的協作模式做出貢獻? --- 共筆區 ## 如何與自動化良好共處 ### 陳正瑋 講者 參考之前的投影片: [以自動化先行的 DevOps 實踐經驗分享](https://www.slideshare.net/warfan/devops-147735338) DevOps 不等於 自動化 但自動化很重要,是一種加速器 對QA來說,規模大了之後,測試、維護成本越來越大 寫自動化或測試程式,吃掉了一些開發成本,導致生產力無法上升 (管理觀念不足) 或是拿到自動化工具 什麼都想自動化,導致做了一堆沒什麼價值的腳本,因為那些腳本隔年就不能用了 理論上自動化工具跑第1次和跑第100次應該都一樣,但跑到第3次就出問題,會害怕是不是有問題,於是把腳本變數全部看一遍...這還叫自動化嗎? 這是選擇性自動化吧,導致自動化綁手綁腳 克服方式:看經典好書 持續交付 工商時間:hiskio電子書 書名: 1. [持續交付](https://www.tenlong.com.tw/products/9787115500014) 2. [Infrastructure as Code](https://www.oreilly.com/library/view/infrastructure-as-code/9781098114664/ ) ### Phil Huang 講者 有沒有寫過shell script? 就是不想一行行打,所以才想全部寫在一起一次性通通結束 從 source code 、 complier 、 publish 一次完成 也就是自己的工作環境處處都是自動化,差異只是在於效率 現在 infra 也在討論自動化 (infra:啊不是點一點就好還要自動化?) infra code 的影響,所有變更都要可以被記錄,要能追蹤他誕生出來的結果 network devops自動化確保ssl不過期、domain不失效等 **自動化可以確保新手或老鳥去做變更,品質都是一致的** 也可以透過 git 歷程抓戰犯,別想說 infra 就不用做,還是可以來做看看 ### 邱宏瑋 講者 Facebook 發生什麼事? [參考1](https://www.techbang.com/posts/90476-facebook-explained-the-shutdown-of-the-backbone-of-mondays) [參考2](https://blog.cloudflare.com/october-2021-facebook-outage/) 不再是單純的service provider,network規模之大,不可能去手動執行。 佈署之外也要維護,手動更新所有網路設定是不太可能的: >switch不是一兩台,是幾千幾萬,寫腳本是必備的 若這些東西跟網路有關係,出錯會造成很大的影響,這次就是BGP發生錯誤,透過內部更新,只寫錯一行程式碼會因為自動化被放大,數千數萬台都會受影響。 針對自動化工具,有"自動化工具"的檢測工具, 所以他們寫了自動化檢測工具,可是出了bug,沒辦法檢測設定檔導致出現一連串問題 ok,派人去修,但美國都是 WorkFromHome 不在辦公室,網路也不通,內部門禁也都自動化跟網路連接在一起,連進去都花很多時間,終於進到資料中心router前面 之前因為security,也很難在router前面拿到主控權操作機器,花很多時間才正確操作到router把設定一個個給校正回來 能不能不做自動化? 不能 規模太大,但一定要有相關備援 結果剛好因為疫情人都不在,平常沒時間去演練,經驗不夠多, 自動化工具 > 自動化檢測工具 > 檢測自動化檢測工具...(不可能弄這麼多嘛) 存取相關的,例如網路存取ssh,如果失敗了用key、public ip、private ip、密碼都失敗,該怎麼處理,讓大家自己想一想 ## 對於CICD經驗還很少,該如何開始操作? ### Phil Huang 講者 先從shell script或jenkins,把 CI/CD 拆解成一塊塊,再導入常見的tool 這是比較推薦從0到1的過程 infra的人呢? 反過來做,從測試先開始 先確定系統都是穩定的,再做一些變更管理 ap常常變動,infra不太會,要改之前一定要跑過所有unit test,所以一定有一個baseline,兩邊有點反過來做 multi cloud(笑翻) 一定要提到 container,所有東西一定在地端嘛,在雲端做的拉到地端很難,但地端做得出來的拿上雲端幾乎都可以 如果架構是要多雲,目的是什麼? 佈署在兩端 ex: production丟地端,(什麼丟雲端沒聽到) 經驗談: 只要開發與佈署兩邊版本(ex: k8s)一致, 有"八成"機率可以順利佈署 法規問題,production必須落地,但其他程式在雲端,該怎麼整合,CI/CD就很重要 > 統一平台、佈署流程,不可能一個人全部都會做,有這個人的話找我,我們缺人 :muscle: 程式佈署要在哪一端,如何同時佈署? CI/CD 就很重要了,要保證兩端測試都要過,infra team則是要確保兩端的平台是一致的(盡可能) 多雲還是要處理security ## 個人要如何對這樣的協作模式做出貢獻 ### Andrew Wu 講者 從團隊成員角度出發 devops就是開發和維運的循環 不是一天就要佈署100次,但要有這個能力 (自動化的必要性) 自動化是對的事,但自動化只是加速器,不是AI不是很聰明的幫手,要把你想的事寫成script,所以寫的code就很重要 我很少看過超過千行的powershell script (就是有看到覺得很扯) 這麼長怎麼佈署? 運作轉圈圈沒完沒了 自動化不急著做,手動知道怎麼做10個步驟,就把10個步驟濃縮,再寫成自動化 10個步驟 濃縮成5個步驟,先用 sop 方式,人工在不同主機上運作,確定不同主機都ok,再寫 script,前面太多負面例子了 自動化是雙面刃,做不對會產生更多問題,不要盲目去做 **不要盲目自動化,先逐步讓過程收斂,等到有十足把握再自動化** ## 老闆與架構師如何看待DevOps ### Will保哥 講者 問10個老闆可能會有10個不同的答案,這問題太籠統了 **老闆在意省錢或賺錢**(很重要 保哥今天講了兩次) 我公司大小專案很多,一個案子來要先做架構,怎麼自動化 CI/CD? 不用問就會自動想到這件事,但不是每個同仁都有這個能力,他不會 Pipeline,powershell也不懂,怎麼看待他的潛力? 找人要找他有一定的學習能力 每個人都有學習能力,導入DevOps就大家都可以學習 你不會沒關係,我們很多人可以教你,安排一個專案給新進同仁讓他做,第一時間就會想到 上azure devops,如果他跑來問我,我可能會給你分享會的影片,作為內部分享,如果沒有影片,我可能會手把手帶著教他做一次 pipeline怎麼做,一步一步教你,我粉絲團有很多影片可以看和學習 powershell 、windwos bash等都有,從小地方基本去累積 :man_in_tuxedo::**你今天專案有用到,你就去試試看,學你用的到的東西** 老闆就是看這個人能否接受新觀念,會的話印象分數大大加分 ### Andrew Wu 講者 ![](https://i.imgur.com/HNOd8Gh.jpg) [Provisioning, Deployment and Application Config Cycles](https://paulhammant.com/2014/08/27/provisioning-deployment-and-app-config-cycles/) 大型網站的經營不僅僅只單純是開發或是維運兩種人,一定還有怎麼經營這個網站的人 很常改的東西習慣抽configuration: 擴充新的機器,調整網路設備,廣告、新功能要調 configuration 怎麼用devops CI/CD上上去? 已經超過開發人員的範疇了 分三類 1. ap改版 (code as code) 2. config改版 (config as code) 3. 執行環境(k8s vm)改版 (infra as code) 既然東西都變成code,就能讓東西都記錄並且上上線,但團隊還沒有到這個能力,持續提升中 ap一定要有文件,code文件如何吻合 doc as code推行中 (第四類) **同樣體系用同樣機制佈署,就是比較理想的樣子** --- ## 各領域如何結合 DevOps 如何結合自身技術轉職成為 DevOps 工程師? DevOps工程師的優勢是什麼? 各領域工程師如何看待 DevOps 文化? --- 共筆區 ## 面試準備什麼樣的內容 提問: 我是XX語言工程師怎麼轉devops? 前端怎麼處理e2e testing 職缺有sre和devops,我該申請哪個? ### 陳正瑋 講者 devops是一種文化,沒有這個職位,不過全世界都在徵 它包含的範疇這麼大,要全包嗎?不可能嘛 DevOps 的定義是什麼 敢開職缺 DevOps 的就去看,看他要求的職能和技能 1. 雲端架構師:好像 devops 就要去幫你雲端架構 2. 雲端架構操作員:上面有個架構師,架構師說要做什麼,操作員去三大雲端平台案,這個操作員就是 devops 工程師 3. 掛devops 但實際是操作 pipeline:有如把代表各種服務的水管接起來的人 4. level 高一點的就能變出平台,產出自動化流程,各式各樣指標 5. 名字叫devops 其實包山包海連廚房電器都要弄,就是傳統 MIS,開缺的公司想看換個名字能不能撈到人進來 6. devops leader:需要 build 一個 devops team,公司需要一個教練 #### devops roadmap 2021 :cherry_blossom: 英文版 :::warning :::spoiler **== 點我展開 ==** [![英文版](https://i.imgur.com/RxXcc3K.png)](https://roadmap.sh/devops) ::: :cherry_blossom: 中文版 :::warning :::spoiler **== 點我展開 ==** [![中文版](https://i.imgur.com/QLuEjNC.jpg)](https://github.com/goodjack/developer-roadmap-chinese) ::: ## DevOps薪水行情 ### 邱宏瑋 講者 devops 薪水多少? range很廣很難回答,每間公司devops做的事都不一樣,有些是傳統IT包上devops皮,有些是需要新的突破 很難一概而論薪水高或低 年薪 40萬~200萬 都有 前端、後端、QA轉職 每個人轉職都要有自己的特色 近年來冒出一些 yaml工程師 ,什麼都不用懂,只要把yaml code丟到k8s就好 公司不知道你的價值在哪,出事你又不會處理,談薪水也談不上去 去暸解技術核心原理 kernel,不要只是copy paste表面技術 我如果有把我的ap包成 container,是不是我就變很厲害可以應徵 container相關的工作? 不一定,你要知道 container、vm 差別,你是否真的了解 container 才有談薪水的本錢 離開台灣前薪資有到200以上,因為你有能力,對團隊有很好效力就很容易談 #### 美國如何看待devpos? 美國沒有devpos這個詞,因為觀念很早就有,不需要多一個名詞去解釋他 大部分比較多是SI, SRE這些 h1b 海外工作簽證,只考慮底薪不考慮股票 dropbox: 150k ~ 200k airbnb 20萬美金 google 不同等級薪水不同 sre 16萬 apple twitter sre:16~21萬 Microsoft sre 12 13 到15~19萬 software sre中位數18 devops 15萬 full stack 15萬5千左右 >gslin: 幹壞事是進步最大的原動力 當個薪水小偷:讓工作更有效率,更少時間做更多事情 看到工具要理解他的底層設計,就會發現只是換皮大同小異 ## 怎麼讓自己跟上趨勢以及持續學習 ### Phil Huang 講者 RPG 玩過嗎? 買裝備買技能書增加自己實力 技術這條道路上也差不多,既然都要花錢買裝備,為什麼不多買一些書和課程強化自己? k8s怎麼學? 邱牛有線上課程 手把手看操作步驟啊 will保哥也有 angular 課程啊 --- 三個不同等級 #### 入門級 變化太快不知是對是錯,先專注在某個領域(前 or 後端) 深入紮根,I型人 看著隔壁的發現我也懂 #### 觸類旁通 觸類旁通,後端能顧,前端大概也懂 I 變小 T 看書只看過去沒用,一定!務必!要去實踐 #### 技術分享者 最後到達一個等級,就能開始分享 **分享的人是學最多的** 對這個領域深入的程度看你的分享程度就看的出來 --- > 我自己也有買k8s的課啊,找10個老師出來一定有10個不同的課,這東西變化無窮 --- # Q&A 環節 ## 版控,用git很多種workflow(git flow、githubflow、gitlabflow),trunk base主幹開發,跟之前的有什麼差異呢? 業界實戰是否會改用? ### 邱宏瑋 講者 trunk base流行很久了,只是以前沒有這個名詞 google內部其實就有用這個架構 10個人有不同講法(沒有標準答案) 想法:過往採用gitflow 希望新功能不要衝突所以會開branch 開發時間很久合併回去,時間越久修衝突很痛苦 codereview,10行code/500行code/ 5000行code review時間不一樣,後者很累 這麼大的差異是否會造成其他未知的改變? (產生風險) 快速迭代 所有東西都在master上面開發,所有commit都需要做完整測試確保不會破壞現有架構才可以合併到master trunk,如果沒有良好的cicd是不能這樣用的,測試要夠完善 code review:不希望review拖太久,拖1~2 week太久,這種就不適合,需要去調整 https://trunkbaseddevelopment.com/ 如何釋出新版? 有策略去進行release 這版本夠穩了,在這一版開一個新的branch (1.1) ,用這個1.1去釋出 hotfix怎麼做? trunk base讓所有問題都回到trunk 去驗證、去修復 在回到 release合併,不要在 release去修復,因為如果在release修復,忘記合併到 master 以後的版本就都沒有修復到 patch盡量的小,每天開發,功能非常多,有非常多的測試,功能不會損毀 trunk based 小 branch ## 團隊怎麼選擇開發模式 ### Will保哥 講者 > trunk base? 我超討厭這些buzzword GitHub Flow 最簡單,這不就是 Trunk-based development 嗎? 1人,5人,50人 怎麼導入,有真正幫助的是你怎麼用它 > https://trunkbaseddevelopment.com/ <--- Will保哥:還開這種domain name,這看起來就很高級啊,你去看看你用不用的上🤣 不是這個東西不好,你要去擷取它的核心精神,融會貫通到你自己的開發流程才是真的有幫助 ## DevOps怎麼跟QA合作 ### Andrew Wu 講者 改一下題目:CICD做得好不好,對QA是否有幫助 CICD做的極致: 任何人可以把任何版本的code部署到任何環境 prodcution有個bug,但testing 測不出來,這時 QA最期待的是什麼? 能不能在我測試環境倒入 production CICD把這些課題做到多深入,才是對QA有沒有幫助 能把QA想要測試的環境,還原出來,讓QA去抓出錯誤 --- # 抽獎環節 恭喜得獎者 恭喜分母 # 工商時間 - 10/27延伸活動 - 快速面試 - 快來免費預約領取面試全攻略👉 https://bit.ly/3n9TtU1 - 歡慶 HiSKIO x 碁峰資訊合作,零元電子書派對開始啦!全站電子書 69 折!程式熱門新書、經典好書、各種領域電子書通通有,消費滿千再送千,100%回饋讓你荷包不失血! 👉 https://bit.ly/3plq9wI ## 講師工商 ### 范聖佑 kotlin 讀書會第四梯次籌備中 ![](https://i.imgur.com/SdWPllW.png) 萌新友善的 TeamCity 教學指南 ![](https://i.imgur.com/VLzpuqW.png) ### 陳正瑋 DevOps Taiwan 社群(主要討論場域在 Facebook 社團) https://devopstw.club/ ![](https://i.imgur.com/j4TIJIF.jpg) DevOpsDays Taipei 2021 https://devopsdays.tw/ ![](https://i.imgur.com/BR3Oxrm.jpg) 徵 Meetup 講師 ![](https://i.imgur.com/5YyYUts.jpg) ## Andrew Wu ![](https://i.imgur.com/RvepyoZ.jpg) ![](https://i.imgur.com/SAIslKT.jpg) 工商自己 blog 和 fb https://columns.chicken-house.net/ https://www.facebook.com/andrew.blog.0928/ ## Will 保哥 ![](https://i.imgur.com/zvSD4fD.jpg) angluar 的課也在開喔歡迎大家來 ## Phil Huang ![](https://i.imgur.com/DIZsrbM.jpg) ![](https://i.imgur.com/lRPNsOY.png) 10/27 有線上研討會,每個月都會辦一個線上討論會 ### 邱宏瑋 ![](https://i.imgur.com/RHyoga1.png) ![](https://i.imgur.com/CJ1bRg4.png) --- End ![](https://i.imgur.com/PGBRbRa.jpg) --- - https://trunkbaseddevelopment.com/ - https://www.martinfowler.com/articles/originalContinuousIntegration.html --- - https://www.levels.fyi/Salaries/Software-Engineer/Taiwan/