sharetwitterlinkedIn

StreamNative 正式发布 StreamNative Platform 1.0

June 16, 2021
head img

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 具有以下优势:

  • 使用基于 API 的自动化工具在私有环境中进行部署和管理 Pulsar 集群,降低运营成本。
  • 来自 StreamNative 团队的 Pulsar 专家为你保驾护航,确保消息和流平台安全、平稳运行,降低使用风险,节约使用成本。
  • 通过将 Pulsar 集群部署到私有云,实现消息和流工作负载的统一处理,并根据业务需求灵活扩缩容,提高资源利用率。

StreamNative Platform 是具有企业级配置的平台(包含所有需要的组件),开箱即用;助力用户轻松实现云上操作,简单、灵活、高效,无需担心复杂的基础架构操作。

StreamNative Platform 的特性

StreamNative Platform 基于 Apache Pulsar 进行构建,支持开发人员从传统的孤岛和单体应用程序过渡到现代微服务、消息和流应用程序,提高使用灵活性,缩短上市时间。

下图为 StreamNative Platform 的架构图。

本文主要介绍 StreamNative Platform 的企业级特性:

  • 事务(Pulsar 2.8.0)
  • Kafka-on-Pulsar
  • Function Mesh
  • 企业级安全(Vault & Audit Log)
  • 声明式 API
  • 与云原生生态系统的集成

接下来,我们将逐一介绍上述特性。

通过 Pulsar 事务释放开发人员的生产率上限

StreamNative Platform 基于 Apache Pulsar 2.8 构建,支持 Pulsar 的事务保证特性。事务保证极大地简化了实时关键任务消息和流应用程序的开发。Pulsar 事务保证特性确保不会出现消息丢失或重复的情况,因而可以高质量完成各类实时任务(从追踪广告浏览量到处理金融交易)。

李鹏辉是 StreamNative 工程师主管,也是 Pulsar PMC 成员,他在《基于 Pulsar 事务实现 Exactly-Once 语义》一文中详细介绍了相关内容。你也可以阅读此文章,了解更多关于 Pulsar 事务中 Exactly-once 语义的信息。

助力 Kafka-API 用户使用为 Kubernetes 构建的流平台开发应用程序

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 版本的主要功能如下:

  • 原生支持 Kafka 1.0 到 2.6 版本的协议。
  • 原生支持 Kafka Admin API。无需编写代码,即可无缝使用 Kafka 现有的全部工具。
  • 通过持续偏移集成更多 Kafka 应用,如 Kafka Spark connector。
  • 支持企业级安全,如 OAuth2 认证。
  • KoP 拥有同原生 Pulsar 一致的性能(使用 Kafka 客户端可以获得与使用 Pulsar 客户端一致的性能)。
  • 支持使用 Kafka 事务支持(Kafka Transaction Support)预览版的功能。

使用 Function Mesh 简化无服务器流应用程序的构建

开发实践表明,Pulsar Functions 和 Pulsar IO 可以助力用户开发消息和事件流应用,是强大的构建工具。当大规模使用 function 和 connector 时,由于 function 和 connector 数量增加,其运行和管理也更为复杂。

StreamNative Platform 使用 Function Mesh 来简化无服务器事件流应用程序的构建,Function Mesh 带来的主要优势包括:

  • 在同时运行多个 function 和 connector 实例时,简化 Pulsar Functions 和 connector 的管理。
  • 充分使用 Kubernetes Scheduler 的功能(如部署、扩缩、管理),来管理和扩缩 Pulsar Functions 和 connector。
  • 在云环境中原生支持 Pulsar Functions 和 connector,解锁在云中运行更多资源的可能。
  • 支持在不同的消息系统中使用 Pulsar Functions,或在云环境中与现有工具集成。

使用结构化审计日志监测和审计 Pulsar 集群

规模较大的团队在使用 Pulsar 时,需时刻关注数据的使用情况(谁在使用哪些数据以及如何使用数据)。StreamNative Platform 支持结构化审计日志,可以轻易追踪用户/应用程序的访问行为,有助于识别潜在的异常情况和恶意访问。

结构化审计日志支持用户在集群(本地或远程)上特定的 Pulsar topic 中捕获审计日志,这种捕获行为可以实现:

  • 捕获与管理相关的少量操作(默认启用),如创建/删除账户、命名空间、topic 等。
  • 捕获大量操作(可按需启用),如生产、消费、ack 事件等。

审计事件存储在 Pulsar topic 中。用户可以使用 Pulsar 集成工具(如 Pulsar Functions、Pulsar SQL、Flink SQL 等)处理和分析这些事件;也可以将审计事件卸载到外部数据湖或数据仓库(如 Snowflake 或 Databricks),再使用 Pulsar IO connector 进行分析。

声明式 API 将 Pulsar 的自管理升级为完全托管

StreamNative Platform 通过定制资源定义(Custom Resource Definitions,CRD)扩展 Kubernetes API,支持声明式 API 并将其用于 Pulsar 服务的管理。定制资源指定资源的目标状态,用户可以通过定义这些定制资源与 CRD 交互。除此之外的工作则完全由 StreamNative Platform 负责。

管理 Pulsar 组件

StreamNative Platform 通过一组 CRD 来部署和管理 Pulsar 组件:ZooKeeper、BookKeeper、Pulsar broker、Pulsar Proxy、StreamNative Console 等。

使用声明式 API,用户可以专注于业务应用程序,无需考虑系统架构。

  • 更改一次声明性规范即可扩缩 Pulsar。StreamNative Platform 将启动所需的计算、网络、存储,并启动新组件(bookie、broker 或 proxy)。

  • 使用单个声明性规范即可部署安全可靠的 Pulsar 集群。StreamNative Platform 自动为 Pulsar 配置强认证、鉴权和网络加密,并为 Pulsar 组件创建 TLS 证书。
  • 在声明性规范中指定新版本即可将 StreamNative Platform 升级到最新版。StreamNative Platform 支持滚动升级,无需中断正在进行的工作负载即可部署新版本。

  • 支持在任何环境中部署高可用架构。StreamNative Platform 可以感知节点、机架和区域的基础架构拓扑信息,能够自动检测和配置 Pulsar 服务,应对架构故障。

使用云原生生态系统运行 Apache Pulsar

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 资源都提供了可扩展的配置接口:

  • 为 Pulsar 组件进行服务配置、JVM 配置和 Log4j2 配置。
  • 单独管理敏感凭证和配置的生命周期,且只在 Pulsar 资源配置规范中引用。
  • 使用行业标准(如 Kubernetes Secrets)来管理凭证的生命周期。
  • 通过 Kubernetes 节点和 Pod 关联指定工作负载调度规则。
  • 与 Prometheus 和 Grafana 完全集成。Kubernetes 上的 Prometheus 自动从 Pulsar 组件中识别并删除 metrics。

开始试用

StreamNative 团队经验丰富,参与过一些大规模的 Pulsar 部署和运行,开发并运营 StreamNative Cloud。使用 StreamNative Platform,在本地环境中运行 Apache Pulsar 工作负载时,你也可以充分利用 Pulsar 的云原生优势,如企业级即时部署,提高 Pulsar 的弹性、易操作性和可扩展性。

StreamNative Platform 尤其适用于以下场景:

  • 需要流式传输本地数据。
  • 需要在特定环境中使用数据、系统和应用程序。
  • 想在所有场景中使用配置相同的 StreamNative Cloud 环境。

你可以阅读 StreamNative Platform 产品文档浏览演示视频.

如果你想使用 StreamNative Platform 所提供的功能与特性,但却不想管理 Pulsar 集群。可以查看 StreamNative Cloud 了解更多信息,或者直接联系我们。我们期待你的参与!

© 北京原流科技有限公司Apache、Apache Pulsar、Apache BookKeeper、Apache Flink 及相关开源项目名称均为 Apache 软件基金会商标。条款隐私