工程是通常會對以下方面進行最佳化: 性能, 可用性, 和容錯能力
(1) 性能: 指使延遲或資源成本最小化
(2) 可用性: 系統正常反應能力和避免當機的能力
(3) 容錯能力: 從非正常狀態中恢復的能力
在 Netflix 中, 他們的工程師還會考慮第四個:
(4) 新功能開發的速度: 新功能提供給客戶的速度
個人覺得或許還需要加一條: (5) 確認功能有用的能力. 前面三項是關注系統設計和工程實踐. (4) 開始想到客戶, 要盡快滿足客戶需求. 但是, 要做出客戶想要的功能才有用, 因此要能快速確認這是不是客戶要的, 這也非常重要.
為了達到前面 4 點, Netflix 採用了 microservice 的架構. 就如康威定律所說的, 組織團隊結構會影響系統架構. 因此 Netflix 希望每個小團隊是鬆散耦合, 並且高度協作.
(1) 鬆散耦合
每個團隊自行決定何時發佈, 不會相互影響
(2) 高度協作
要看得更廣, 了解他們的工作是如何有助於其他團隊一起實現更大的目標
老實說, 對我來說這兩件事有點矛盾, 既然不會影響他人, 天性就會不關心他人在做什麼.
不過, 或許就是因為要做到鬆散耦合, 不會影響到他. 因此, 團隊之間更是需要了解他人, 更密切的協調溝通, 這樣才有機會做到鬆散耦合. 就如何有人說過: 你有多自律, 就有多自由. 你很規律的運動, 把事情準時完成, 這樣你才能有自己時間, 並且健健康康地去做自己想做的事情.
怎麼我寫到這裡, 感覺只是越來越忙呢? (誤...)
資料來源
全站熱搜
留言列表