近期 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” target=”_blank” rel=”nofollow”>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” target=”_blank” rel=”nofollow”>Node Application Metrics 提供了一个基础设施,来为基于 Node.js 的应用收集资源和性能监控数据。Node Application Metrics 创建所基于的数据收集性能,是 Health Center 开发工具所使用的,同时也是基于 Eclipse 的 IBM 监控和诊断工具的一部分。
Node Application Metrics 公开了 JavaScript 和 C 的 API,这使得开发者工具、管理和扩展工具、性能监控工具,比如 statsd” target=”_blank” rel=”nofollow”>StatsD with graphite” target=”_blank” rel=”nofollow”>Graphite 或 elasticsearch” target=”_blank” rel=”nofollow”>Elasticsearch withkibana” target=”_blank” rel=”nofollow”> Kibana,都可以实现数据采集。
Clampify (Go/Docker)
“羡慕是发明的重要因素” clampify” target=”_blank” rel=”nofollow”>Clampify 如是说。在这点上,是羡慕 OpenStack 的 neutron” target=”_blank” rel=”nofollow”>Neutron 网络系统。 那能基于这个组件,使用TA的网络隔离和网络路由功能,在 Swarm 集群与 Docker 容器结合,从而替代 OpenStack?答案当然是:Yes!
Clampify 能让你在 swarm” target=”_blank” rel=”nofollow”>Swarm 集群中的节点间建立多个独立的网络。它可以将同一用户在不同网络上的不同工作负载放到容器中,或者对多租户集群解决方案建立模块,在模块中,容器中的不同 租户可以挂在独立的网络上。除了 Docker 和 Swarm,这个解决方案利用了 Openstack项目的两个组件,keystone-openstack” target=”_blank” rel=”nofollow”>Keystone 和neutron” target=”_blank” rel=”nofollow”>Neutron 。
所以 Clampify 可以在 “其他集群系统,比如 Apache Mesos “使用,或者使用 Clampify 在 Docker Swarm 设置多租户集群。
Node-red (Node.js/JavaScript)
可视化编程工具经常在设计工作流或者信息流的时候使用,比如数据库关系表。node-red” target=”_blank” rel=”nofollow”>Node-RED 是 IBM 新兴技术服务团队创建的物联网配线可视化工具。Node-red 设计的目的是为物联网编程快速预览所有代码。现在来说,比较少用来创建产品代码,主要是用来快速建立原型,然后快速优化。
i18n4go (Go)
这里有一个极其简单而又有用的 Go 项目,用来解决越来越常见的软件问题。Go 需要支持 i18n (国际化) 工具,但是现有的 Go 程序的国际化支持都比较冗长繁杂。i18n4go” target=”_blank” rel=”nofollow”>i18n4go提供一个应用工作流进程 —— 从 Go 应用中提取字符串,合并他们到单个包(消除冗余),准备翻译,使底层代码容易接收他们。