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