---
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 講者

[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://roadmap.sh/devops)
:::
:cherry_blossom: 中文版
:::warning
:::spoiler **== 點我展開 ==**
[](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 讀書會第四梯次籌備中

萌新友善的 TeamCity 教學指南

### 陳正瑋
DevOps Taiwan 社群(主要討論場域在 Facebook 社團)
https://devopstw.club/

DevOpsDays Taipei 2021
https://devopsdays.tw/

徵 Meetup 講師

## Andrew Wu


工商自己 blog 和 fb
https://columns.chicken-house.net/
https://www.facebook.com/andrew.blog.0928/
## Will 保哥

angluar 的課也在開喔歡迎大家來
## Phil Huang


10/27 有線上研討會,每個月都會辦一個線上討論會
### 邱宏瑋


---
End

---
- https://trunkbaseddevelopment.com/
- https://www.martinfowler.com/articles/originalContinuousIntegration.html
---
- https://www.levels.fyi/Salaries/Software-Engineer/Taiwan/