进击云原生

V1

2022/01/23阅读:98主题:默认主题

盘点 2021 年 Apache 十大项目

盘点 2021 年 Apache 十大项目,从 Superset 到 NuttX 和 Pulsar

如果您已作为数字领导者在食物链中向上移动,那么可能很难跟上其他技术人员的热情,直到有人开始对无服务器或 NFT 嗤之以鼻。一些最活跃的开源项目的高峰是了解世界上一些开发人员正在经历什么的好方法。许多最活跃的项目也催生了具有创新记录的数字原生公司。

去年,价值 220 亿美元的开源软件的托管人 Apache 软件基金会 (ASF) 见证了 2,493 名提交者和 9,604 名作者更改了 5.15 亿行代码。虽然这种充满活力的活动广泛分布在 351 个项目中,但一小部分吸引了最多的提交活动(代码贡献)。

以下是 2021 年按提交活动排列的 10 个顶级 Apache 项目,从 Superset 到 NuttX 等等。

2021 年顶级 Apache 项目

2021 年提交的顶级 apache 项目
2021 年提交的顶级 apache 项目

1. Apache Superset

Apache Superset 是唯一一个提交超过 10000 次的单个项目,并且在 GitHub 上吸引了近 43000 颗 star(以及 8400 个 fork)。开源数据可视化和数据探索平台是企业级的,它的倡导者声称,它可以“取代或增强专有的商业智能工具”。

Superset 诞生于 Airbnb(它本身就是一个出色的孵化器和开源项目的支持者)。

它提供了用于构建图表的无代码界面;用于程序化定制的 API;用于高级查询的基于 Web 的 SQL 编辑器;用于定义自定义指标的轻量级语义层;对 MySQL、PostgreSQL 和 SQLite 的开箱即用支持(“几乎任何具有SQLAlchemy集成的数据库都可以完美地作为数据源工作”);从条形图到地理空间可视化的一系列可视化模板;云原生架构和高度可扩展的安全性和管理员身份验证选项。

Apache Superset 被广泛的公司使用。根据其早期提交者之一 Bogdan Kyryliuk 的说法,其中包括 Airbnb、美国运通、Lyft、尼尔森、Rakuten Viki、Twitter 和 Udemy。

它还被用作Dropbox 的主要数据探索工具,将 10 个工具整合到 Superset。

2:Apache Camel

Apache Camel 在 2021 年有超过 9500 个提交,并在 GitHub 上吸引了 4100 多个 star 和 4400 多个 fork。

数据工具目前占据主导地位,Camel 也不例外。Apache Camel 是一个面向分布式系统用户的开源“微集成”框架。作为中间件,它允许用户集成不同的消息系统来消费或生产数据,从而改善微服务的管理和连接性。

对于管理大多数现代应用程序的任何人来说,这都是一个日益严峻的挑战,开发人员经常不得不处理异步、部分故障和不想轻易共存的数据模型。

3:Apache Flink

Apache Flink 在 2021 年提交了超过 5,800 次提交,并在 GitHub 上吸引了 17,000 多颗星和 10000 次 fork。

Apache Flink 是一个开源流处理框架,支持批处理和数据流。简而言之,它可以可靠地实时、有节奏地处理大量数据;随着企业希望尽快对数据馈送做出反应(无论是物联网数据、复杂零售应用程序的用户旅程数据/点击流,还是任何其他用例……),这变得越来越重要

用例多种多样,从事件驱动的微服务到 ETL 的数据管道:阿里巴巴使用 Flink 的一个分支实时优化搜索排名,Capital one 用于实时活动监控;与此同时,爱立信使用 Flink 为大型基础设施构建了一个实时异常检测器。

Flink 可以对数据进行有状态或无状态的计算,并且拥有一个活跃的社区。据阿里巴巴用户称,它每秒可以处理多达 17 亿条消息,这里有一个很好的用例示例

4:Apache Airflow

Apache Airflow 在 2021 年提交了超过 5,600 次提交,并在 GitHub 上吸引了 24,000 多颗星和 9,800 多次 fork。

另一个诞生于 Airbnb 的项目,Airflow 是一个以编程方式编写、安排和监控数据工作流的平台,通常用于将不同的工具编排到一个地方——这可能(对于 AWS 用户)可能意味着通过 AWS Datapipelines 手动管理计划, Lambda 和 ECS 任务。

被数据工程师广泛使用(他们中的大多数人,为了它的价值,将 PostgreSQL 作为他们的“元数据库”运行,越来越多的人使用某种 Kubernetes 部署),它允许用户在 Python 和 SQL 中自动化流程,并且丰富的 Web UI,用于可视化、监控和修复问题;它还拥有与 Azure Container Instances、AWS Glue、GCP Text-to-Speech 等流行云服务的全面集成。数据科学家 Rebecca Vickery为新用户提供了最佳指南之一,可以在此处阅读。

5:Apache Pulsar

Apache Pulsar 在 2021 年提交了超过 4,600 次提交,并在 GitHub 上吸引了 10,200 多颗星和 2,600 多次 fork。

Apache Pulsar 非常火爆。我们在这里这里之前已经写过它。发布订阅(“pub-sub”)工具包,它支持事件驱动系统和/或流分析的消息传递;它还可用于解耦应用程序以提高性能、可靠性和可扩展性。尽管这听起来与Apache Kafka相似,但存在明显的差异,包括 Pulsar 如何分离计算和存储。

例如,Pulsar 将持久性委托给另一个名为Apache BookKeeper(为实时工作负载设计的专用独立低延迟存储服务)的系统,另一方面,它的“代理”是无状态的 ——它们不负责将消息存储在他们的本地磁盘。(Pulsar 代理运行一个带有 REST 接口的 HTTP 服务器,用于管理和主题查找,以及一个调度程序来处理所有消息传输。)

正如 SoftwareMill 的开发人员 Jaroslaw Kijanowski整齐地指出的那样, “[无状态] 使启动或拆除代理变得更加轻松......代理和存储之间的分离允许独立扩展这两个层。如果您需要更多磁盘空间来存储更多或更大的消息,则只能扩展 BookKeeper。如果您必须为更多客户提供服务,只需添加更多 Pulsar 代理即可。对于 Kafka,添加代理意味着扩展存储容量和服务能力”。

Pulsar 是 Yahoo! 的核心。拥有 Verizon Media 自己的架构,每天处理数千亿个数据事件。(雅虎!开发人员在 2018 年将其描述为“我们混合云战略的一个组成部分,使我们能够在公共云和私有云之间传输数据,并允许数据管道跨云连接。”)它也已部署在 COMCAST、华为、Splunk 等。

6:Apache Spark

很少有 Apache 项目像 Apache Spark 一样成熟且被广泛采用。用于在单节点机器或集群上执行数据工程、数据科学和机器学习的多语言引擎,Spark 是在加州大学伯克利分校创建的——正如 Databricks 首席执行官 Ali Ghodsi在 2018 年和 2009 年对*The Stack*的创始人所说的那样它的创造者甚至都在努力放弃它。(“他们说‘这是学术胡说八道。我们需要企业软件。’我们真的想把它送出去,没有人会拿走它。”)

现在,它为 eBay(日志交易聚合和分析)、NASA(深空网络数据)等数千家公司提供数 PB 的用户数据。根据 Databricks,通过利用内存计算和其他优化,Spark 在大规模数据处理方面的速度可以比 Hadoop 快 100 倍。当数据存储在磁盘上时,Spark 速度也很快,目前保持着大规模磁盘排序的世界纪录。

但是,它可以通过 YARN 或 Spark 的独立模式在 Hadoop 集群中运行,并且可以处理 HDFS、HBase、Cassandra、Hive 和任何 Hadoop InputFormat 中的数据——正如 ASF 的最新更新所示,十多年来它仍然是一个开源世界中最活跃的社区之一。

7:Apache IOTDB

Apache 物联网数据库(IOTDB),是诞生于软件学院(清华大学)的物联网原生数据库。它在 GitHub 上吸引了 1,700 多颗星和 525 个 fork——但在 2021 年看到了一些高水平的提交活动。

用户包括中国气象局和联想。

与上面的许多项目一样,可以部署以解决时间序列数据问题:物联网需要在云端和边缘有效管理时间序列数据,需要处理吞吐量摄取、低延迟查询和时间序列分析。

它与 Apache Hadoop、Spark 和 Flink 深度集成。(IoTDB 提供连接器,例如 hive-tsfilespark-tsfilespark-iotdb,因此 Hive 和 Spark 可以直接访问 IoTDB 数据和文件。)

它具有边缘节点上的轻量级 TsFile(一种为在物联网设备上存储时间序列数据而定制的文件格式)管理。边缘节点的数据可以写入本地的 TsFile,并提供基本的查询能力。然后可以将 TsFile 数据同步到云端。

正如其中一位架构师所说:“IoTDB 的设计选择以开放的本机时间序列文件格式存储数据,以便使用 Query/Storage Engine 访问数据库和针对单个数据副本进行 Hadoop/Spark 访问。它还用作分布式时间序列数据库,其中数据通过集群引擎中的时间序列分组在不同节点之间进行分区,同时在每个节点上实现基于时间的数据切片以提高性能。IoTDB 提供了一种类似 SQL 的语言、原生 API 和 restful API 来访问数据。”

8:Apache Isis

Apache Isis 是一个用于在 Java 中快速开发领域驱动应用程序的框架。

一位提交者甚至将其称为“领域平台”,而 Isis 完全是关于领域驱动设计的。正如微软最近的一篇论文所指出的那样:“[DDD 是关于] 组织代码,使其与业务问题保持一致,并使用相同的业务术语(普遍存在的语言)。此外,只有在实施具有重要业务规则的复杂微服务时,才应应用 DDD 方法……”

Isis 可用于微服务和单体架构——并支持极快的原型设计和较短的反馈周期;方便敏捷开发。虽然不像上面的一些项目那么大或广泛 fork,但它的 45 位贡献者在社区中非常活跃,并在现有用户中建立了来之不易的良好客户支持声誉。

在早期的博客中描述 Apache Isis 时,领先且高度活跃的贡献者 Dan Heywood 最接近清醒:“所有软件项目遇到的一个问题是确保代码反映所需的架构原则/约束。许多方法已经过测试,但架构和代码的实际统一仍然让我们望而却步。Apache Isis 采用了不同的方法,强制将架构构造与域模型分离,在运行时将两者结合起来。它承诺将开发人员从编写“样板”中解放出来,转而专注于域模型”,他在 2016 年指出

9: Apache NuttX

Apache NuttX 是 2019 年加入 Apache 孵化器的实时嵌入式操作系统 ( RTOS )。(RTOS 可以并且已经明确定义为“一种旨在有效管理 CPU 时间的软件”)。它在 GitHub 上吸引了超过 800 颗星和 400 次 fork。

有很多 RTOS 潜伏在 interwebz 上。许多人基本上已经死了,所以很高兴看到 2021 年十大最致力于 ASF 项目中的一个。

NuttX 的人说,“一个小型的 Linux 类似工作,功能集大大减少。”

那是轻描淡写。NuttX 是一种不寻常且功能丰富的 RTOS,旨在在微型嵌入式环境中运行。它非常灵活——您可以8 位、16 位、32 位或 64 位微控制器上运行它;而且,不同寻常的是,您可以选择 RISC-V、Arm、ESP32、AVR、x86,并且“努力实现高度的标准合规性”。

它既可以构建为开放的平面嵌入式 RTOS,也可以构建为具有系统调用接口的单独构建的安全单片内核。正如一位粉丝所说:“NuttX 是一个 POSIX RTOS。您无需学习新的 API 即可对其进行编程。您可以在 Linux 或 MacOS 等 POSIX 操作系统中编写应用程序,对其进行验证,然后编译它以在 NuttX 上运行。如果您不想从头开始创建应用程序,您可以获取一些小型 Linux 库并进行一些小的修改,以使它们在 NuttX 上运行。”

它被描述为“需要复杂通信功能的复杂物联网系统的自然选择”,据报道已被摩托罗拉/联想、三星、索尼、3DRobotics 等使用)。

10. Apache Shardingsphere

Apache Shardingsphere 在 GitHub 上吸引了超过 15,000 颗星和 5,000 多个 fork。

“Database Plus”旨在在异构数据库之上构建标准层和生态系统,以便用户可以在分布式系统中“重用”现有碎片数据库的存储容量。

正如项目组所说:“作为企业的基石,关系数据库仍然占据着巨大的市场份额。因此,我们更倾向于关注它的增量而不是彻底的颠覆。Apache ShardingSphere 从 5.x 版本开始专注于可插拔架构,特性可以嵌入到项目灵活性中。

目前,数据分片、副本查询、数据加密、影子数据库等特性,支持的 SQL 方言/数据库协议如 MySQL、PostgreSQL、SQLServer、Oracle 等,都是由插件编织而成。开发者可以像搭建乐高积木一样定制自己的 ShardingSphere。Apache ShardingSphere 现在有很多 SPI 扩展,而且还在不断增加。

翻译自

Top 10 Apache projects in 2021, from Superset, to NuttX and Pulsar

原文

本文首发于微信公众号【我的小碗汤】,扫码关注,了解更多咨询,更有免费资源供您学习

扫码关注,加群学习
扫码关注,加群学习

分类:

后端

标签:

后端

作者介绍

进击云原生
V1

公众号:进击云原生