近期 ibm 推出开源项目门户,计划开源 50个项目。在 ibm 开源门户 developerworks中有大量的开源项目都是为了提升 spark 性能来优化 docker 的网络管理。
ibm 当前推出的 developerworks 开源门户主要是 ibm 已经开源的软件集合,这些开源项目最主要的有 5 个主要的类别,分为 node.js 开发,spark 数据处理框架,go 语言 和 docker 容器。
spark kernel (spark/scala/ipython)
ibm 对 spark 数据处理框架,hadoop 相关的其他技术都非常感兴趣,也酝酿一段时间了。除了对 spark 进行贡献之外,还开发了 spark 周边的工具链,使得 spark 更容易学习和使用。例如:spark kernel,让远程应用使用 spark 进行实时操作,可以替换现有的 spark shell。
shell 通常用于 spark 的交互处理,但是不容易做成其他应用也可以访问的服务。同时,ibm 宣称大部分的解决方案都过于缓慢,繁琐并且有一定限制。spark kernel 使用 ipython 消息协议,最初是用来创建交互式数据可视化"notebooks" 给科学计算应用,但是这也是一种发送代码回 spark 集群和检索结果的方式。此外,ipython notebooks 可以连接 spark kernel,让现有用户对集成 spark 和 spark 后端更有兴趣。
node application metrics (c++/node.js)
node.js 应用不透明是一个长期的吐槽点 —— node 应用调试会是一种非常痛苦的体验,除非你使用高端的工具或者特定的平台。node application metrics 提供了一个基础设施,来为基于 node.js 的应用收集资源和性能监控数据。node application metrics 创建所基于的数据收集性能,是 health center 开发工具所使用的,同时也是基于 eclipse 的 ibm 监控和诊断工具的一部分。
node application metrics 公开了 javascript 和 c 的 api,这使得开发者工具、管理和扩展工具、性能监控工具,比如 statsd with graphite 或 elasticsearch with kibana,都可以实现数据采集。
clampify (go/docker)
"羡慕是发明的重要因素" clampify 如是说。在这点上,是羡慕 openstack 的 neutron 网络系统。 那能基于这个组件,使用ta的网络隔离和网络路由功能,在 swarm 集群与 docker 容器结合,从而替代 openstack?答案当然是:yes!
clampify 能让你在 swarm 集群中的节点间建立多个独立的网络。它可以将同一用户在不同网络上的不同工作负载放到容器中,或者对多租户集群解决方案建立模块,在模块中,容器中的不同 租户可以挂在独立的网络上。除了 docker 和 swarm,这个解决方案利用了 openstack项目的两个组件,keystone 和 neutron 。
所以 clampify 可以在 "其他集群系统,比如 apache mesos "使用,或者使用 clampify 在 docker swarm 设置多租户集群。
node-red (node.js/javascript)
可视化编程工具经常在设计工作流或者信息流的时候使用,比如数据库关系表。node-red 是 ibm 新兴技术服务团队创建的物联网配线可视化工具。node-red 设计的目的是为物联网编程快速预览所有代码。现在来说,比较少用来创建产品代码,主要是用来快速建立原型,然后快速优化。
i18n4go (go)
这里有一个极其简单而又有用的 go 项目,用来解决越来越常见的软件问题。go 需要支持 i18n (国际化) 工具,但是现有的 go 程序的国际化支持都比较冗长繁杂。i18n4go提供一个应用工作流进程 —— 从 go 应用中提取字符串,合并他们到单个包(消除冗余),准备翻译,使底层代码容易接收他们。