StreamNative 郑重宣布发布 StreamNative Platform 1.0!StreamNative Platform 是基于 Apache Pulsar 的云原生平台,提供统一的消息和流服务。StreamNative Platform 支持用户使用声明式 API 在私有环境中部署和管理 Pulsar 集群。StreamNative Platform 汇集企业智慧,联通 StreamNative Cloud,旨在帮助更多 Pulsar 用户实现私有云服务。
StreamNative Platform 适合处理多类任务。无论你是需要快速启动和运行 Apache Pulsar 的敏捷开发团队,还是需要构建消息和流应用程序的基础架构团队等,StreamNative 都是你的最佳选择。StreamNative Platform 具有以下优势:
StreamNative Platform 是具有企业级配置的平台(包含所有需要的组件),开箱即用;助力用户轻松实现云上操作,简单、灵活、高效,无需担心复杂的基础架构操作。
StreamNative Platform 基于 Apache Pulsar 进行构建,支持开发人员从传统的孤岛和单体应用程序过渡到现代微服务、消息和流应用程序,提高使用灵活性,缩短上市时间。
下图为 StreamNative Platform 的架构图。
本文主要介绍 StreamNative Platform 的企业级特性:
接下来,我们将逐一介绍上述特性。
StreamNative Platform 基于 Apache Pulsar 2.8 构建,支持 Pulsar 的事务保证特性。事务保证极大地简化了实时关键任务消息和流应用程序的开发。Pulsar 事务保证特性确保不会出现消息丢失或重复的情况,因而可以高质量完成各类实时任务(从追踪广告浏览量到处理金融交易)。
李鹏辉是 StreamNative 工程师主管,也是 Pulsar PMC 成员,他在《基于 Pulsar 事务实现 Exactly-Once 语义》一文中详细介绍了相关内容。你也可以阅读此文章,了解更多关于 Pulsar 事务中 Exactly-once 语义的信息。
2020 年,OVHCloud 和 StreamNative 联合开发了 Kafka-on-Pulsar(KoP)。KoP 已经成为 Apache Pulsar 社区中最受欢迎的协议处理程序之一。腾讯、Bigo、Dada Nexus 等企业已经在互联网规模上部署 KoP,用于将 Kafka 应用程序迁移到 Pulsar。
StreamNative Platform 包含 Kafka-on-Pulsar 的 GA 版本。Kafka-API 用户可以使用为 Kubernetes 构建的流平台开发事件流应用程序。Kafka-on-Pulsar GA 版本的主要功能如下:
开发实践表明,Pulsar Functions 和 Pulsar IO 可以助力用户开发消息和事件流应用,是强大的构建工具。当大规模使用 function 和 connector 时,由于 function 和 connector 数量增加,其运行和管理也更为复杂。
StreamNative Platform 使用 Function Mesh 来简化无服务器事件流应用程序的构建,Function Mesh 带来的主要优势包括:
规模较大的团队在使用 Pulsar 时,需时刻关注数据的使用情况(谁在使用哪些数据以及如何使用数据)。StreamNative Platform 支持结构化审计日志,可以轻易追踪用户/应用程序的访问行为,有助于识别潜在的异常情况和恶意访问。
结构化审计日志支持用户在集群(本地或远程)上特定的 Pulsar topic 中捕获审计日志,这种捕获行为可以实现:
审计事件存储在 Pulsar topic 中。用户可以使用 Pulsar 集成工具(如 Pulsar Functions、Pulsar SQL、Flink SQL 等)处理和分析这些事件;也可以将审计事件卸载到外部数据湖或数据仓库(如 Snowflake 或 Databricks),再使用 Pulsar IO connector 进行分析。
StreamNative Platform 通过定制资源定义(Custom Resource Definitions,CRD)扩展 Kubernetes API,支持声明式 API 并将其用于 Pulsar 服务的管理。定制资源指定资源的目标状态,用户可以通过定义这些定制资源与 CRD 交互。除此之外的工作则完全由 StreamNative Platform 负责。
StreamNative Platform 通过一组 CRD 来部署和管理 Pulsar 组件:ZooKeeper、BookKeeper、Pulsar broker、Pulsar Proxy、StreamNative Console 等。
使用声明式 API,用户可以专注于业务应用程序,无需考虑系统架构。
StreamNative Platform 支持用户同时使用 Kubernetes 原生接口、集成和调度控制等应用程序和数据系统,降低使用成本,提高效率。
最初,我们使用 Helm 在 Kubernetes 上实现 Pulsar 集群部署的简易配置,允许用户将自定义的声明性规范定义为 Helm values YAML文件。(大约 60% 到 70% 的 Pulsar 用户使用 Pulsar Helm Charts 或 StreamNative Helm charts 在 Kubernetes 上部署 Pulsar 集群)。
然而,在完全托管 Pulsar 服务(StreamNative Cloud)、提供自动化和打包最佳实践的探索中,我们发现 Helm 模板并非最佳架构。Helm 不支持运行有状态存储服务,如控制部署顺序、在部署步骤之间添加操作等。
因此我们决定与行业标准对齐,提供支持原生 Kubernetes 接口的 CRD 和控制器,从而通过使用定制资源保证 API 驱动的可靠性,并充分利用 Kubernetes 生态系统的工具和特性。这种设计不要求用户掌握部署应用程序(如为有状态服务配置存储和网络)的专业知识。
每个 Pulsar 资源配置规范都定义为 Kubernetes 原生 CRD,Pulsar 资源都提供了可扩展的配置接口:
StreamNative 团队经验丰富,参与过一些大规模的 Pulsar 部署和运行,开发并运营 StreamNative Cloud。使用 StreamNative Platform,在本地环境中运行 Apache Pulsar 工作负载时,你也可以充分利用 Pulsar 的云原生优势,如企业级即时部署,提高 Pulsar 的弹性、易操作性和可扩展性。
StreamNative Platform 尤其适用于以下场景:
你可以阅读 StreamNative Platform 产品文档 或 浏览演示视频.
如果你想使用 StreamNative Platform 所提供的功能与特性,但却不想管理 Pulsar 集群。可以查看 StreamNative Cloud 了解更多信息,或者直接联系我们。我们期待你的参与!