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

    全站熱搜

    kojenchieh 發表在 痞客邦 留言(0) 人氣()