InfoWorld 公布 2019 年最佳开源软件榜单,有你熟悉的吗?

近日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/article/3444198/the-best-open-source-software-of-2019.html

文章来源:

Author:IT之家
link:https://www.ithome.com/0/449/583.htm