在過去十年的開發經驗,大部分是新創團隊,全部工程師加起來不超過 20 人的團隊。最近才加入一個大團隊,光是 DevOps 就破百人了,還有破百個 AWS Accounts + Regions。
進來後就發現有各種 solution + architecture,其中有幾個團隊,試圖做一個大的自動化框架,標準化全公司的 CICD + EKS + AWS。
我個人也是希望大家都使用統一的標準、流程和工具,這樣資訊和技術的落差比較小,訓練和開發的成本也能降低許多。但是,搞到最後,我為了配合大標準,犧牲了一堆習慣的功能,一堆 tradeoff,變成我開發也困難、部署也困難
我開始反思,一間公司只需要一套標準嗎?把所有人的需求都加到裡面,就能變成一套完美的工具嗎?
我覺得事實剛好相反,這邊我提出一個高速公路策略(Highway Strategy)
:
- 不可能所有車,去到任何地方都要上高速公路,有些人只是想開到兩個巷口外的餐廳而已。
- 鄉間小路還是必要的。
- 可以從鄉間小路統計,哪邊有夠多的流量和用戶,才有必要開發高速公路。
- 在開發一條高速公路,應該是一段一段接上的。
- 在高速公路檢查胎壓、水箱?聽起來怪怪的吧,有些事情是出發前就應該自己檢查了。
下次如果你們的 DevOps 或是其他團隊,想要統一架構,合併你們的代碼或是 CICD 時,不仿想想高速公路策略,這條公路真的有加速你們到達目的地嗎?
最終還是要回到用戶導向(User-Oriented),你蓋個高速公路真的有使用者嗎?還是你蓋完後要過兩年才有用戶?這聽起來很不敏捷也很不 DevOps 吧?