微软亚洲研究院系统组开发的分布式系统开发框架——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是一个开放的框架因此你可以非常方便地替换它们。再比如,当你需要处理更大规模的输入并且想要提高系统的可用性,rDSN提供了复制框架(replication framework)来把单机服务变成多机+自动复制的服务,而这其中只需要非常少的进一步的开发。总之,rDSN提供并且帮助开发工具和运行时框架能够和上层应用无缝集成,能够极大地提高开发和运维的效率。

对于学生来说,rDSN提供了一个能够方便地简化,理解,和操纵分布式系统的平台。当学习一个分布式系统协议的时候,你可以在rDSN的模拟器模式下编写和调试。该模拟器能够简化实际系统中的很多复杂性,并在需要的时候慢慢把这些复杂性加回去。比如,从单线程到多线程,从同步且可靠的网络到异步不可靠网络。为了理解协议是如何运作的,rDSN提供了自动的执行流跟踪,并且会产生一个“事件矩阵”来记录代码之间的调用关系和频率,以揭示系统内部的依赖关系及其相关权重。

很多分布式系统的研究人员常常期望提供通用的分布式系统的相关工具和运行时策略。rDSN提供了专门的工具API(Tool API)来帮助这方面的工作。工具API提供了底层模块的虚拟化,并且把上层系统的所有不确定性都暴露了出来。这使得构建高效和可靠的工具和运行时策略成为可能。目前开源的这个版本里面就包含了很多这方面的例子。此外,rDSN的设计保证了这些工具和运行时策略能够和基于rDSN的上策应用无缝集成,因此这些研究成果都能很快地进入实际部署。

rDSN的开源一方面能够帮助到社区,另一方面也期待着社区反馈相关成果来大家一起把分布式系统的开发变得更加简单高效。
文章转载自 开源中国社区 [http://www.oschina.net]

微软开源 rDSN 分布式系统开发框架相关推荐

  1. Facebook、微信团队、Twitter、微软开源软件列表一览

    Facebook开源软件列表 从Facebook的GitHub账户中可以看到,Facebook已经开源的开源项目有近300个,领域涉及移动.前端.Web.后端.大数据.数据库.工具和硬件等.Faceb ...

  2. 微软开源数据处理引擎 Trill,每天可分析万亿次事件

    微软近日开源了数据处理引擎 Trill,它每天能够分析万亿次事件. 项目地址:https://github.com/Microsoft/trill 当下每毫秒处理大量数据正成为一种常见的业务需求,此次 ...

  3. 基于微软开源深度学习算法,用 Python 实现图像和视频修复

    ‍‍ 作者 | 李秋键 编辑 | 夕颜 出品 | AI科技大本营(ID:rgznai100) 图像修复是计算机视觉领域的一个重要任务,在数字艺术品修复.公安刑侦面部修复等种种实际场景中被广泛应用.图像 ...

  4. PyTorch实现,GitHub 4000星:这是微软开源的计算机视觉库

    视学算法报道 编辑:魔王.陈萍 转载自公众号:机器之心 本文介绍了微软开源的计算机视觉库,它囊括了计算机视觉领域的最佳实践.代码示例和丰富文档. 近年来,计算机视觉领域突飞猛进,在人脸识别.图像理解. ...

  5. PyTorch实现,GitHub star 4k+:这是微软开源的计算机视觉库

    点击上方,选择星标或置顶,不定期资源大放送!阅读大概需要15分钟 Follow小博主,每天更新前沿干货[导读]本文介绍了微软开源的计算机视觉库,它囊括了计算机视觉领域的最佳实践.代码示例和丰富文档. ...

  6. 解读微软开源MMLSpark:统一的大规模机器学习生态系统

    AI前线导读:目前,有很多深度学习框架支持与Spark集成,如Tensorflow on Spark等.然而,微软开源的MMLSpark不仅集成了机器学习框架(CNTK深度学习计算框架.LightGB ...

  7. 【效率】微软开源最强Python自动化神器!不用写一行代码!

    相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具.写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑. 虽然selenium有完备的文档,但也 ...

  8. 4计算准确率_PyTorch实现,GitHub 4000星:这是微软开源的计算机视觉库

    本文介绍了微软开源的计算机视觉库,它囊括了计算机视觉领域的最佳实践.代码示例和丰富文档. 机器之心报道,编辑:魔王.陈萍. 近年来,计算机视觉领域突飞猛进,在人脸识别.图像理解.搜索.无人机.地图.半 ...

  9. 微软开源的Web测试和自动化神器 Playwright

    Playwright 是微软开源的一个用于 Web 测试和自动化的框架, 提供了可靠的端到端测试, 功能非常强大, 可以在测试, 爬虫,自动化场景中使用. 跨浏览器 Playwright 支持所有现代 ...

最新文章

  1. 重磅,武汉大学获捐10亿元!
  2. 谈谈让你纠结的年终奖
  3. 《CCNP TSHOOT 300-135认证考试指南》——6.4节SVI故障检测与排除
  4. 您的手机上未安装应用程序 android 点击快捷方式提示未安装程序的解决
  5. windows mysql.tar安装_MySQL的安装
  6. 一些Java面试技巧分享,你不能错过!
  7. 在同一基准下对前端框架进行比较(2019年更新)
  8. mysql 选择插入语句_带有last_insert_id()的Mysql多行插入 – 选择语句
  9. 示波器1m和50欧姆示阻抗匹配_阻抗匹配,示波器,50欧姆电阻,他们之间是什么关系?(第一回)...
  10. .npy文件_Numpy库使用入门(六)文件的存取
  11. 2017,人工智能技术如何让中国开发者“倾心”又“上火”!
  12. PHP array_pop()函数与示例
  13. 厉害了!顶级学术期刊封面的“中国元素”
  14. labVIEW学习笔记(一)程序结构
  15. 思科bfd静态路由切换_配置静态路由与BFD联动
  16. 移动警务通GIS应用系统建设方案
  17. sorted()函数
  18. python有几级等级考试成绩查询_python查询46级成绩
  19. FreeRTOS学习笔记(10)——中断管理
  20. yudian温控表a1温度怎么补偿_厦门宇电yudian温控表AI-516/516P型人工智能温度调节器控制器-恩莱自动化官网...

热门文章

  1. 加载(WebView)页面,调JS刷新数据
  2. Kafka性能强于RabbitMQ的原因
  3. Flutter漫说:组件生命周期、State状态管理及局部重绘的实现(Inherit)
  4. TZOJ 1321 Girls and Boys(匈牙利最大独立集)
  5. 全开源深度学习平台PaddlePaddle入手之路(二)----利用Docker在Windows10专业版环境下配置PaddlePaddle...
  6. 16位汇编第第四讲常用的7种寻址方式
  7. 给Ubuntu 16.04更换更新源
  8. QHBoxLayout
  9. Swift 添加自定义响应事件
  10. 使用IntelliJ IDEA11创建Java Web程序