1. 程式人生 > >2018第49週日

2018第49週日

Service Mesh 並非完美解決方案,這種不完美主要是體現在Service Mesh本質上是一種抽象,它把原來的服務呼叫中的一些高可用的能力全部抽象道理基礎實施層。不管是什麼東西,抽象就意味著細節的丟失,丟失了細節,就意味著在能力上會有所欠缺。所以在Service Mesh的方案下,雖然看起來我們可以將能力下沉的基礎實施層,但一旦沉下去,某些方面的能力就會受損。因此在實施Service Mesh化之後,要想辦法彌補它能力的缺失,比如螞蟻金服SOFAMesh實施時通過一些輕量化的客戶端去實現序列化、鏈路追蹤等。

Max Kanat-Alexander 在《簡約之美:軟體設計之道》(Code Simplicity)中提出的軟體設計的 6 條法則恰到好處的描述了這一矛盾的事實,具體內容如下:

  1. 軟體的目的是幫助他人;

  2. 相比降低開發成本,更重要的是降低維護成本;

  3. 變化定律:軟體存在的時間越久,它的某部分需要變化的可能性越大;

  4. 缺陷定律:軟體出現缺陷的可能性,正比於你對它所做修改的程度;

  5. 簡潔定律:軟體任一部分的維護難度,正比於該部分的複雜程度;

  6. 測試定律:你對軟體行為的瞭解程度,等於你真正測試它的程度。

微服務架構的系統要特別關注這幾個方面:

  • 服務間的依賴、連通性
  • 服務的容錯、可用性
  • 資料的最終一致性
  • 獨立部署
  • 不確定性

物聯網是一個由三個不同的子系統組成的系統:

·      雲

·      聚合器

·      智慧感測器

上述每一個子系統對於整個物聯網系統的功能優化都是必需的。雲是終極的計算單元和通用通訊網路。智慧感測器是通向現實世界的介面。最後,這些聚合者是中間人。對雲來說,聚合器看起來像智慧感測器,而對智慧感測器而言,它看起來像雲。