近日 InfoWorld 公布了 2019 年最佳开源软件榜单。InfoWorld 是致力于引领 IT 决策者走在科技前沿的国际科技媒体品牌,每年 InfoWorld 都会根据软件对开源界的贡献,以及在业界的影响力评选出当年的“最佳开源软件”(2019 InfoWorld Bossie Awards,Best of Open Source Software awards),该奖项评选已经延续了十多年。
今年 InfoWorld 还是将目光集中在用于软件开发、云计算、数据分析和机器学习的优秀开源项目。下边一起看看哪些项目入选了。
BPF Compiler Collection(BCC)
BPF Compiler Collection 是一个 Linux 动态跟踪工具。无第三方模块依赖,该工具继承 BPF 这个强大的内核中虚拟机的功能,可对程序进行高效而且安全的跟踪。
Language Server Protocol
LSP(Language Server Protocol)是语言服务器协议,由红帽、微软和 Codenvy 联合推出,可以让不同的程序编辑器与集成开发环境(IDE)方便地嵌入各种编程语言,允许开发人员在最喜爱的工具中使用各种语言来编写程序。它通过用于开发工具和语言服务器间通信的 JSON-RPC 标准,能够让编程工具提供实时反馈的详细信息并以此实现多种强大功能,比如符号搜寻、语法分析、代码自动补全、移至定义、描绘轮廓与重构等。
Serverless Framework
Serverless 架构开发框架 Serverless Framework 使用 AWS Lambda、Azure Functions 与 Google CloudFunctions 等技术,可以构建 Serverless 架构的 Web、移动和 IoT 应用。它不仅允许用户自由选择不同的部署目标,而且能帮助更快更轻松地对事件驱动型函数即服务(FaaS)应用进行测试、部署与管理。在创建函数、定义端点并指定目标云环境之后,Serverless Framework 即可对代码、安全性要求、资源要素以及云部署 YAML 进行打包,从而顺利完成项目部署。
Istio
Istio 是一款强大的工具,旨在提供一种统一化的微服务连接、安全保障、管理与监控方式。Istio 项目能够为微服务架构提供流量管理机制,同时亦为其它增值功能(包括安全性、监控、路由、连接管理与策略等)创造了基础。该项目利用久经考验的 Lyft Envoy 代理进行构建,可在无需对应用程序代码作出任何发动的前提下实现可视性与控制能力。
Envoy
Envoy 是开源的边缘和服务代理,用于云原生应用,其最初是在 Lyft 构建的,它是为单一服务和应用程序设计的高性能 C++ 分布式代理,以及为大型微服务 Service Mesh 架构设计的通信总线和通用数据平面。
作为 Kubernetes 的标准服务代理,Envoy 一直在快速发展。在成为首个 CNCF 项目之后(Envoy 也是第三个 CNCF 毕业项目),Envoy 快速进入 Istio 与 AWS App Mesh 等 Service Mesh 的核心,并成为大部分 Kubernetes 设置中不可或缺的组成部分。
Kong
Kong 是一个可扩展、快速的微服务 API 网关,用于管理、保护与连接混合及云原生架构。Kong 运行于全部服务之前,默认提供断路器、运行状态检查、OAuth、转换、缓存与地理位置复制等功能,并可以通过插件实现各种扩展,例如身份验证、流量控制与可观察性等。Kong 在 1.0 GA 的时候带来了 Service Mesh 能力,用户不仅可以将 Kong 部署为 API 网关,还可以将其部署为独立的 Service Mesh 代理。Kong 插件能为 Service Mesh 提供开箱即用的关键功能,并能与其它云原生技术集成,包括 Prometheus、Zipkin、健康检查、canary 测试与蓝绿测试等。
Pulumi
Pulumi 是一个架构即代码项目,可在任何云上使用开发者喜欢的语言创建、部署和管理基础架构。不使用 YAML 而是通过使用常规编程语言功能(如循环、函数、类和包管理。)就可以自动配置和管理 AWS、Azure、Google Cloud Platform 与 Kubernetes 资源。
Sysdig
Sysdig 是一个超级系统工具,比 strace、tcpdump、lsof 加起来还强大。它可用来捕获系统状态信息,保存数据并进行过滤和分析。使用 Lua 开发,提供命令行接口以及强大的交互界面。Sysdig 提供了一组工具,不仅可以用于了解基于容器的应用的实际性能,而且可以及时发现各类异常状况与安全威胁。
Kraken
Kraken 是一个点对点(P2P)Docker 容器仓库,其旨在为大规模系统提供 Docker 镜像服务,解决跨区域支持、性能瓶颈和混合云环境所面临的挑战。Kraken 大致基于 BitTorrent 协议,与 Docker registry API 兼容,并提供可配置的存储后端,诸如 S3 和 HDFS 等。
Anaconda
Anaconda 是一个 Python/R 发行版,用于科学计算和信号处理等领域,支持 Linux、Mac 与 Windows,包含了众多流行科学计算与数据分析等 Python/R 包。Anaconda 与其它发行版之间最大的区别在于 Anaconda Navigator(用于启动应用程序与管理软件包的图形化桌面环境)与 Anaconda 的本地软件包管理器 Conda。
Kotlin
Kotlin 是基于 JVM 的新一代 Android 开发语言,它与 Java 100% 互通,并具备诸多 Java 不支持的特性,相比 Java 更安全与简洁。
Julia
Julia 是一个新的高性能动态高级编程语言,语法与其它编程语言类似,易于其他语言用户学习。Julia 拥有丰富的函数库,提供了数字精度、精致的增幅器(sophisticated amplifier)和分布式并行运行方式。核心函数库等大多数库是由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。Julia 语言可定义函数并且根据用户自定义的参数类型组合再进行重载。
Hazelcast Jet
Hazelcast Jet 是一个分布式计算平台,专为高性能流处理和快速批处理而构建。它在内存数据网格(IMDG)中嵌入Hazelcast,以提供轻量级的处理器包和可扩展的内存存储。
Apache Airflow
Apache Airflow 是一个数据管道监控工具,任何工作流都可以在这个使用 Python 编写的平台上运行。Airflow 允许工作流开发人员轻松创建、维护和周期性地调度运行工作流(即有向无环图或成为 DAGs)的工具,包括数据存储、增长分析、Email 发送与 A/B 测试等跨越多部门用例。Airflow 可以与 Hive、Presto、MySQL、HDFS、Postgres 和 S3 交互,并且提供了钩子使得系统拥有很好地扩展性。此外它还提供了一个基于 Web 的用户界面,可以可视化地查看管道的依赖关系、监控进度与触发任务等。
GridGain
GridGain 是一个网格计算框架,专注于提供平行计算能力,能够与 JBoss 和 Spring 相集成,它提供可伸缩集群、本机复制与良好的备份和恢复选项,非常适合立足分布式数据中心为数据密集型应用提供服务。此外,GridGain 还支持本地、云与混合部署方式。
Apache Druid
Apache Druid 是一个专为事件数据的 OLAP 查询设计的数据存储系统,是一个用于大数据实时查询和分析的高容错、高性能分布式系统,旨在快速处理大规模的数据,并能够实现快速查询和分析。Druid 具有出色的可伸缩性与快速的即时查询响应速度,它将流式摄取与 OLAP 风格的批量摄取以及搜索技术结合在一起,能够轻松对实时及历史数据进行切片、切块与转换。
TensorFlow
TensorFlow 是当前最强的机器学习与深度学习框架,它内建深度学习的扩展支持,任何能够用计算流图形来表达的计算,都可以使用 TensorFlow,任何基于梯度的机器学习算法都能够受益于 TensorFlow 的自动分化(auto-differentiation)。TensorFlow 2.0 中还带来了 Eager Execution 模式,这是一种命令式接口,类比 PyTorch,开发者在调用其进行计算时可以直接直观地得到结果,这使得基于 TensorFlow 的开发更加简单明了。
TensorWatch
TensorWatch 是一个调试和可视化工具,专为 Microsoft Research 的数据科学、深度学习和强化学习而设计。它适用于Jupyter Notebook,可显示机器学习培训的实时可视化,并为模型和数据执行其它关键分析任务,此外,它还提供强大的训练前与训练后功能,包括模型图可视化、降维数据探索、模型统计以及用于卷积网络的多种预测解释器。TensorWatch 旨在灵活且可扩展,因此还可以构建自己的自定义可视化 UI 和仪表板。除了传统的“所见即所得”方法外,它还具有针对实时 ML 训练流程执行任意查询的独特功能。
PyTorch
PyTorch 是一个 Python 深度学习框架,提供强大的 GPU 加速 Tensor 计算(类似 numpy)和构建基于 tape 的自动升级系统上的深度神经网络。开发者可以重用喜欢的 Python 包,如 numpy、scipy 和 Cython,在需要时扩展 PyTorch。
Transformers
Transformers(以往称为 pytorch-transformers 和 pytorch-pretrained-bert)是用于 TensorFlow 2.0 和 PyTorch 的自然语言处理框架。它提供了用于自然语言理解(NLU,Natural Language Understanding)和自然语言生成(NLG,Natural Language Generation)的最先进的通用架构,包括 BERT、GPT-2、RoBERTa、XLM、DistilBert 与 XLNet 等,具有超过 100 种语言的 32 种以上经过预训练的模型,以及 TensorFlow 2.0 和 PyTorch 之间的深度互操作性。
Ludwig
Ludwig 是基于 TensorFlow 的深度学习工具箱,它允许用户在无需编写代码的情况下即可训练并测试深度学习模型。Ludwig 的独特之处在于它能够帮助非专家更容易地理解深度学习,并为经验丰富的机器学习开发者和研究人员提供更快的模型改进迭代周期。通过使用 Ludwig,专家和研究人员可以简化原型设计过程及数据处理,可以专注于开发深度学习架构。
RAPIDS
RAPIDS 是一套数据科学框架,能够在不放弃已有经验与技能的前提下实现机器学习加速。RAPIDS 能够利用内存内处理方式在 GPU 上直接训练机器学习模型,并且相比其它 GPU 训练方法,它的速度高几个数量级。RAPIDS 所使用的数据分析工具与 Python 相关实现方案如 Pandas DataFrames 完全等效,同时又有所不同,在某些情况下只需要变更脚本中的 import 语句即可完成兼容。
MLflow
MLflow 是一个机器学习平台,它为机器学习项目中的各个主要组成部分及阶段都准备了对应的工具。MLflow Tracking(跟踪组件)提供了一组 API 和用户界面,用于在运行机器学习代码时记录和查询参数、代码版本、指标和输出文件,以便以后可视化它们。MLflow Projects(项目组件)提供了打包可重用数据科学代码的标准格式。MLflow Models(模型组件)提供了一种用多种格式打包机器学习模型的规范。
Kubeflow
Kubeflow 是一个机器学习工具库,Kubeflow 项目旨在使 Kubernetes 上的机器学习变的轻松、便捷与可扩展,其目标不是重建其它服务,而是提供一种简便的方式找到最好的 OSS 解决方案。Kubeflow 解决了长期以来困扰各类组织的两个现实问题:如何将机器学习研究从开发环境转移到生产环境;如何将遥测技术从生产环境转移回开发环境,以实现深度研究。
Delta Lake
Delta Lake 是一个存储层,为 Apache Spark 和大数据 workloads 提供 ACID 事务能力,其通过写和快照隔离之间的乐观并发控制(optimistic concurrency control),在写入数据期间提供一致性的读取,从而为构建在 HDFS 和云存储上的数据湖(data lakes)带来可靠性。
Wasmer
Wasmer 是一个 Go 库,用来执行 WebAssembly 二进制程序,它在 WebAssembly 服务器运行时领域居于领先地位,其主要优势体现在接近原生水平的执行速度。
以上就是本次 InfoWorld Bossie Awards 项目,关于每个项目具体的入选评语等详细信息,可以查看网站原文:
https://www.infoworld.com/art...