摘要:微軟亞洲研究院系統組開發的分布式系統開發框架——Robust Distributed System Nucleus(rDSN)正式在GitHub平台開源。據悉,rDSN是一個旨在為廣大分布式系統的開發者、學生和研究人員提供一個開放式的框架。
北京時間6月2日消息,微軟亞洲研究院系統組開發的分布式系統開發框架——Robust Distributed System Nucleus(rDSN)正式在GitHub平台開源。
據悉,rDSN是一個旨在為廣大分布式系統的開發者、學生和研究人員提供一個開放式的框架,能用於快速搭建和運維高性能和高魯棒的分布式系統,從而幫助消費者在雲計算,大數據、物聯網等當前熱點技術的部署。
rDSN的思想來源於系統組過去在分布式系統開發和運維各個階段進行的各種自動化項目。這些項目嘗試幫助開發者更快捷有效地測試,調試,優化,監控,擴展(Scale-out),復制(Replicate),組合(Compose),甚至推理(Reason)。而在這些項目開發中所遇到的很多困難,不少是由於開始的代碼工作沒有考慮這些需求,導致后期的開發事倍功半。因此,rDSN的目標是提供一個協調有序的開發平台使得分布式應用,工具和框架可以獨立開發,並且能夠無縫集成,來實現如上提到的需求。
rDSN的一個早期版本在Bing里面用於開發一個分布式數據服務系統,該系統已經上線並運行良好。根據產品組的反饋,rDSN進行了改進並希望通過開源的方式對社區有所貢獻,特別是對那些分布式系統的相關開發人員,學生和研究者有所幫助。
對於開發者而言,rDSN可以幫助改善開發和運維體驗,來提高系統的編程敏捷性,性能以及魯棒性。rDSN最簡單的用法可以看成是一個和主流RPC框架(比如Apache Thrift)等兼容的升級版RPC框架,或者是一個采用基於事件編程的高性能任務庫。開發者設置rDSN為測試模式,來系統性地模擬各種各樣的調度決策和系統錯誤,以提早暴露系統可能的缺陷。當錯誤發生時,rDSN能重放發生的錯誤,並把分布式系統所有節點的狀態放在一個進程里調試,而且不必擔心由於調試導致意外的timeout。當系統上線以后,rDSN可提供自動化的執行流跟蹤和性能檢測。如果你對rDSN自帶的底層庫不滿意(比如網絡庫或者日志系統等),作為一個開放的框架因此你可以非常方便地替換它們。而當你需要處理更大規模的輸入並且想要提高系統的可用性時,rDSN還可提供復制框架(replication framework)來把單機服務變成多機+自動復制的服務,而這其中只需要非常少的進一步的開發即可。總之,rDSN提供並且幫助開發工具和運行時框架能夠和上層應用無縫集成,極大地提高開發和運維的效率。
對於學生來說,rDSN提供了一個能夠方便地簡化,理解,和操縱分布式系統的平台。當學習一個分布式系統協議的時候,學生可以在rDSN的模擬器模式下編寫和調試。該模擬器能夠簡化實際系統中的很多復雜性,並在需要的時候慢慢把這些復雜性加回去。比如,從單線程到多線程,從同步且可靠的網絡到異步不可靠網絡等。為了理解協議是如何運作的,rDSN提供了自動的執行流跟蹤,並且會產生一個“事件矩陣”來記錄代碼之間的調用關系和頻率,以揭示系統內部的依賴關系及其相關權重。
很多分布式系統的研究人員常常期望提供通用的分布式系統的相關工具和運行時策略。rDSN提供了專門的工具API(Tool API)來幫助這方面的工作。工具API提供了底層模塊的虛擬化,並且可以把上層系統的所有不確定性都暴露出來。這使得構建高效和可靠的工具和運行時策略成為可能。目前該開源版本中就包含了很多相關案例。此外,rDSN的設計保證了這些工具和運行時策略能夠和基於rDSN的上層應用無縫集成,因此研究成果可以很快地進入實際部署。
微軟稱,它希望rDSN的開源可以匯集更多成果,將分布式系統的開發變得更加簡單、高效。