2016 年,雅虎开源并向 Apache 软件基金会捐赠了开源项目 Apache Pulsar,谁也没想到,这个雅虎内部自用的消息系统,两年后便成为 Apache 软件基金会又一个顶级项目。更没想到的是,如今的 Apache Pulsar,对外提供了统一的消费模型,可以同时支持消息队列和流两种场景,既能为队列场景提供企业级读写服务质量和严格一致性保障,又能为流场景提供极高带宽,大有一统消息系统江湖之势。
Pulsar 的名称来自著名的脉冲星 Pulsar。根据 NSR 科学期刊的介绍“由于脉冲星的自转非常稳定,我们可以通过精确地测量脉冲的到达时间来研究脉冲星自身的性质、银河系中等离的星际介质的性质、检验不同的引力理论等”。Pulsar = Pulse + Star,正如其名,Pulsar 项目希望成为稳定且精确的云原生大潮下新一代消息系统。
- 3.0x
- 2.5x
- 2.0x
- 1.5x
- 1.25x
- 1.0x
- 0.75x
- 0.5x
为了更好地完成 Apache Pulsar 的愿景,前雅虎员工、两个 Apache 顶级项目创始团队成员郭斯杰于 2019 年创建了 StreamNative,致力于 Apache Pulsar 项目的推广和社区的构建。“如果把云原生时代的基础设施比作高速公路,那么 Pulsar 好比一辆跑车,而 Kafka 好比一辆马车。高速公路必须搭配跑车,才能发挥高速公路的最大价值”,郭斯杰说到。
郭斯杰,Apache Member, Apache Pulsar PMC 成员,StreamNative 联合创始人兼 CEO,一名开源老兵
自 Apache Pulsar 从 Apache 软件基金会孵化器毕业成为顶级项目已 3 年多,Apache Pulsar 项目和社区已经得到快速成长,越来越多的企业也落地 Apache Pulsar 并将它应用到核心关键业务中。其背后的开源商业化公司 StreamNative 在推出其基于 Pulsar 打造的商业化产品和服务不到半年时间,就快速积累了数十家全球顶尖企业客户。更为有趣的是,StreamNative 分布在全球的团队自 2020 年以来一直以 SOHO 的形式办公,效率不降反升,探索出了一条“分布式”办公的新道路。
2021 年 10 月 12 日,StreamNative 正式宣布获得 2300 万美元 A 轮融资,本轮融资由沙特阿美旗下多元化风投基金 Prosperity7 Ventures 与华泰证券旗下另类投资子公司华泰创新联合领投,老股东红杉中国、源码资本继续加码。StreamNative 于 2020 年 8 月完成数百万美元 Pre-A 轮融资,源码资本领投、红杉中国种子基金跟投;2019 年团队创立初期获得红杉中国种子基金天使轮投资。
近期,InfoQ 专栏视频 《C 位面对面》 约访了 StreamNative 联合创始人郭斯杰,与掌舵者聊了聊这家怀抱伟大愿景的开源商业化明星公司,一窥其技术人创业的成长故事以及有趣的公司文化,以及对开源项目、开源社区及开源商业化等方面的洞察与思考。
Q:Apache Pulsar 作为 Apache 软件基金会的顶级项目由来已久。能介绍一下你和 Apache Pulsar 的渊源吗?
我的整个经历都是跟 Apache 软件基金会、开源以及消息中间件数据系统相关的。大概在 08、09 年的时候,Hadoop 进入中国,国内开源社区开始兴起,我当时参与了 Apache 软件基金会的一些项目,成为 Hadoop 早期的代码贡献者,也为 HBase、Hive、HDFS 贡献过代码。
这个过程中我了解了 Apache 软件基金会的运作、开源的意义,也因为 Hadoop 是从雅虎出来的,所以,作为一个技术人,我选择加入了雅虎。
借助雅虎这个平台,我主导孵化了两个开源项目,分别是 Pulsar 和 BookKeeper。它们后来都成为 Apache 软件基金会的顶级项目。其中 BookKeeper 是一个分布式日志存储系统,孵化 BookKeeper 后,基于此我又做了 Cloud Message Service(也就是后来的 Apache Pulsar 项目原型),这是用于雅虎内部的消息云,支撑雅虎邮箱、雅虎金融等核心业务大概 4~5 年。
另一边,Apache Pulsar 在雅虎内部使用了 3 年多之后,于 2016 年贡献给了 Apache 软件基金会,最后变成了顶级项目。
Q:StreamNative 作为 Apache Pulsar 背后的商业化组织,是一家怎样的公司?
StreamNative 是一家开源商业化公司,由 Apache Pulsar 创始团队创立。创建这家公司的初衷是为了推动 Apache Pulsar 项目的发展,将其以商业化产品的形态普及给更多企业。因此,我们利用公司的方式为用户提供更好的服务。公司最主要的职责也就是将 Apache Pulsar 商业化,利用 Apache Pulsar 为更多企业解决他们在消息系统、流数据系统中遇到的扩展性、性能、可用性方面的问题,帮助企业从消息数据、流数据中挖掘更多价值。
Q:很多社区的伙伴还不是很了解 Apache Pulsar,趁此机会给我们介绍一下这个项目吧。
简单来说,Apache Pulsar 是一个分布式消息队列,我们有时候也叫它分布式流数据系统。那么消息队列最常见的场景在电商行业中。当网站处理交易、支付时,需要一个消息队列做流量缓冲,以解决削峰填谷的需求。
举个例子,双 11 十二点会有大量的人抢单,流量随即暴涨。而如果这些流量直接怼到数据库的话,整个数据库可能就挂了。这就需要在数据库之前放一个消息队列做缓冲,所有请求先进入消息队列,后端再有相应的服务处理这些请求。这就能避免瞬间暴涨的流量冲击数据库系统。
Apache Pulsar 是基于云原生基础架构设计的一个项目,能够很好地在容器化环境里运行。上一代消息队列产品,如 RabbitMQ、ActiveMQ 都是单机系统,随着业务增长,难以便捷地扩容,除非安装多台的单机系统,但这又将增加运维的复杂度,降低容错率。Apache Pulsar 正好相反,它诞生在分布式、可自动扩容缩容的云环境中。实际使用时,运维团队可以不用考虑硬件的增减。就好比使用单机的 MySQL 数据库,在业务量暴涨时,需要引入 TiDB 做支撑。RabbitMQ 和 Apache Pulsar 也是类似的关系。
再简单点说,原先你用马车在跑业务,现在更换 Apache Pulsar 后,相当于换了一辆跑车。这是云计算时代消息处理的先进性。
Q:最近 StreamNative 拿了新一轮融资,能给我们讲讲这轮融资的背景和用途吗?
打造这种云原生时代的消息系统需要很多顶尖人才。虽然我们有核心创始团队,但随着社区规模的增长,我们面对的业务场景愈来愈丰富,需要招募更多人才。
比如在金融行业、电商行业、IoT、自动驾驶行业我们都有大量的可落地场景,那么如何把一个云原生时代诞生的新产品变成一个流行的,进而广泛应用在企业内部的系统?这需要大量的研发人员参与,开发相应特性,改善其稳定性。
因此这笔融资其实是想通过资本的力量吸引更多优秀人才,共同推动产品研发和落地,让其更快地应用到更多企业中。
云原生基础上的存算分离与分布式架构, 形成 Apache Pulsar 最大优势
Q:接下来我们来聊聊 Apache Pulsar 的竞争对手,Apache Pulsar 与 Kafka 相比有哪些差异?
Kafka 诞生于 Hadoop 时代,大概是 2010 年左右。Kafka 基于 Hadoop 时代的物理机 / 虚拟机设计,诞生的初衷是解决大量日志采集处理的需求。Apache Pulsar 诞生于云原生兴起的年代,时间上比 Kafka 晚 2~3 年。Apache Pulsar 基于云原生环境下容器化的基础设施进行设计,是新基础设施时代的产物。如果把云原生时代的基础设施比作高速公路,那么 Apache Pulsar 好比一辆跑车,而 Kafka 好比一辆马车。高速公路必须搭配跑车,才能发挥高速公路的最大价值。
具体到两个项目的社区层面,Apache Pulsar 社区规模与 Kafka 还有差距,但我认为这是可以理解的 ,毕竟 Kafka 在 2011 年开源,Apache Pulsar 在 2016 年开源,相差 5 年时间。但我们看到的是 Kafka 已经是一个接近成长天花板的成熟项目,而 Apache Pulsar 还很年轻,社区增长欣欣向荣,整个增长速度,相应的 Adoption 都很可观。比如我们花 4 年时间构建的社区规模,已经赶上 Kafka 花 7~8 年时间的成果。
在性能方面,从 OpenMessaging BenchMark 等第三方评测工具的结果来看,普通业务场景下,Kafka 和 Apache Pulsar 性能持平,但在支付交易类关键业务场景中,Apache Pulsar 的性能是 Kafka 的 4~5 倍,而且时延比 Kafka 低,稳定性更高。(我们也发表过 Apache Pulsar 与 Kafka 相关性能测试报告,大家可以在 公众号 上查看)
Q:我们刚刚聊了 Apache Pulsar 的性能和生态,除此之外,Apache Pulsar 还有哪些创新点?
Apache Pulsar 的创新点主要有两部分,分别是架构设计和新增特性。
架构设计方面,Apache Pulsar 采用存算分离,利用两组容器分别负责存储和计算,存储和计算可以独立扩容,结合 Kubernetes 的话,可以很快地自动地弹性扩容。而 Kafka 是单体架构,存储和计算在单一物理节点上,扩容很不方便。
另外,Apache Pulsar 新增了很多上一代消息系统没有的特性,比如 多租户管理、跨机房复制和层级存储,这都是云原生时代很重要的特性。以跨机房(又叫跨地域)复制为例,在云原生时代,企业上云往往会选择多家云服务提供商,做混合云架构的企业很多,他们会需要在多云之间传输和复制数据,Apache Pulsar 内置的跨地域复制就能很好地解决这一需求。
0 销售,半年积累 25 家客户,社区才是开源公司的护城河
Q:对于 Apache Pulsar 社区的一个发展,有什么规划吗?
社区对一家开源商业化公司来说很重要。很多人会说技术壁垒是一家开源公司的护城河,但我认为社区更重要。技术一直在迭代,可能 5 年后现在的技术就被淘汰了,但社区有众多的贡献者,他们一方面可以给你带来丰富的应用场景,另一方面可以带来很好地口碑,吸引更多人使用你的产品,进而不断迭代你的产品。因此我认为我们最核心的护城河是社区。
在开源社区建设上,我们会产生很多内容和活动,内容包括客户案例、博客等等,活动分线上线下的,形式有沙龙、Pulsar Summit 等等。去年我们在北美和亚洲举办了两场 Pulsar Summit,反响很好,今年会在北美、欧洲和亚洲都举办,共三场 Summit;同时在 5 月初我们举办了全球性的 Pulsar 黑客马拉松,希望全世界的开发者参与到 Pulsar 中,将好的 idea 做成产品 Feature。
最终目的是希望通过社区活动将整个社区的开发者聚集在一起,鼓励大家做贡献,然后给予相应的回馈,最后形成病毒式传播,将整个社区做大。
Q:在开源商业化的过程中,有遇到过哪些挑战?
现在开源商业化的挑战主要在于收费与免费之间,也就是说你设置怎样的付费模式。整个开源商业化经历了三个阶段,1.0 是卖发行版本,附带相应的技术服务,最著名的有 Linux 商业化,比如 Red Hat。2.0 是开放核心(OpenCore),在开源版本基础上添加一些付费特性,打造成商业化版本进行售卖,并不断迭代,典型的有 Elastic。云计算时代,1.0 和 2.0 模式依旧存在,但很多新兴的开源商业化公司抛弃 OpenCore 模型,直接做 SaaS,我们叫做开源商业化 3.0 时代,典型的有 Databricks。
对我们来说,最大的挑战是商业模式的选择。Apache Pulsar 最开始整个社区比较小,特性不多,直接做 OpenCore 模式会影响社区用户体验,另外项目不是很成熟,不应该过早收费。但是开源商业化最终目的还是要商业化,于是我们选择了云原生时代最能凸显 Apache Pulsar 特性的 SaaS 模式。
这条路最大的挑战是如何找到优秀的云计算人才,同时推动已有的开源项目团队去学习 K8s 等云计算相关技术。过去 6~8 个月,我们把整个云服务跑起来,付费客户从 0 增长到了 25 个。开源和商业化两个部分慢慢形成了一个飞轮,并且运转起来了。
Q:StreamNative 的商业化进展如何了,有哪些典型用户在用我们的产品?付费情况如何?
首先,我们的产品覆盖了谷歌云、AWS 和微软云三大云厂商,去年年底在国内推出了基于阿里云的免费版本,接下来几个月时间还会推出阿里云付费版,同时也在规划腾讯云。
相应的我们目前客群基本都在海外,欧美比较多,其中 40% 左右来自欧洲,50% 左右来自北美,还有一部分在印度。客户集中在金融、电商和 IoT 三大行业。典型的有波士顿和芝加哥的 Hedge Fund(对冲基金)和 Stock Broker(股票交易商),印度的 Flipkart,自动驾驶行业的 Toyota 欧洲,芯片领域的 Applied Materials。今年在国内做了一些早期的商业化尝试,案例集中在金融行业、银行、证券类客户比较多。而很多中国优秀的互联网公司也是我们社区的用户,比如腾讯、华为、知乎、伴鱼、BIGO、VipKid,包括苏宁等。
目前很多国内的开源项目比如 Kyligence、涛思、PingCAP 都是先做中国的开源社区,将迭代好的产品出海,我们正好相反,先做以美国为主的海外市场,再做中国市场。我们看到欧美企业的付费习惯比较好,有相对标准和流程化的付费意识。开源社区能帮你囤积大量用户群体,有很好的品牌和信任基础。当他们需要商业化服务时,就会主动找到开源项目背后的商业化公司付费。这就使得我们能在半年内、在没有一个销售的情况下从 0 做到 25 家全球客户。
Q:这些互联网用户的付费意愿如何?
中国互联网用户付费的可能性还是比较小,因为他们自己有很多优秀的程序员,可以自己开发基础工具或者应用。但对于我们而言,大型互联网公司更多的是为 Apache Pulsar 社区贡献了新鲜的血液,帮助 Apache Pulsar 迭代产品。这个过程中大型互联网公司投入了相应的工程师资源。因此,他们付费与否并不是很重要。相应地,我们的付费客户群体更多的是传统行业的公司,他们没有很强的开发能力,但需要定制化的 Apache Pulsar 产品。
那么对于腾讯这样的互联网公司而言,我们能做的更多是指导其特性研发的 RoadMap。我们作为核心开发者,扮演引路人的角色,以社区互助的方式为这类公司创造价值,而大公司有很厉害的研发团队,有丰富的场景背书,能为产品迭代提供很高的价值。
我们提供基础产品,大型互联网公司在自用的同时迭代产品反馈社区,然后将迭代好的产品降维到研发能力较弱的公司,供其使用,形成双赢。最终大家共同把市场做大。
StreamNative 全员分布式办公,一套成体系的人才筛选机制
Q:接下来咱们聊聊研发。StreamNative 的研发历程中都有哪些有趣的里程碑?
Apache Pulsar 项目是以开源协作的方式去开发。从我们公司提供的 SaaS 服务角度来说,我认为第一个里程碑是从零到一做出 SaaS 产品的时候。原先我们团队只是做消息系统,没有做过 SaaS 类的服务,在做的过程中就需要从头去钻研和理解每个公有云的 API。
第二个是推出商业化版本的时候。2019 年我们开始琢磨怎么做商业化,当时我们自己设定了一个 Milestone,在 2020 年 4 月发布第一款商业化产品,正好那时候是第一届 Pulsar Summit。但因为我们之前都没有类似经验,整个过程的进度把控的不是很好,导致产品发布延迟了 4 个月,到 2020 年 8 月才成功发布。
当时这个产品还是一个雏形,但整个 Foundation 是已经完成了,也就意味着扩展到其他云会比较容易。但最开始从 0 到 1 是比较痛苦的,并且我们第一版设计做了两三个月的研发,发现整个 Foundation 不是很牢靠,于是在二三月份的时候从微软云招了一个技术大牛,把原先的架构推倒重建,才确定了一个比较好的 Foundation。
Q:StreamNative 下一步的产品规划是什么?
Apache Pulsar 目前已经完成了从 0 到 1 的积累。接下来几个月时间会发布几个比较大的产品特性,首先是云服务的覆盖度,包括腾讯云等;第二是发布 GA 版本的 Kafka on Pulsar,方便用户 / 客户的应用进行迁移,这个特性的研发和部署联合了腾讯、BIGO 等互联网公司一起做,他们会将相应的应用进行迁移,以打磨产品。最后是利用 Apache Pulsar 内部的 Serverless 框架 Pulsar Functions,结合 Flink,打造批流融合计算的产品。
Q:接下来我们聊聊团队吧,StreamNative 目前有多少人了?
StreamNative 目前 40 多人,均为 SOHO 办公。其中工程师占比接近 80%,分布在全球各地。(备注:截至发稿时,StreamNative 团队规模已接近 70 人。)
Q:这种完全 SOHO 的办公方式会存在哪些挑战呢?
我觉得这是个很好的问题。最开始我们的初衷并没有想打造这样一家全远程办公的公司。相反由于很多员工来自国内,2019 年时我们在海淀租了一个办公室,在 2019 年到 2020 年初期我们都是集体办公。但 20 年初的疫情打乱了整个节奏,很多人被迫在家办公。
一段时间后,我们发现整个团队在家办公的工作效率并没有下降,反而提升了。于是我们觉得可能也不需要再重新开一个办公室,就把办公室退租了。所以从整个 2020 年到现在,我们都是 SOHO 办公。那这个过程中最大的问题就是如何顺畅地沟通,我们用了 Zoom、腾讯会议、Slack 等确保这一点。另外我们所有工作都通过 GitHub、Google Docs 开源协作。
我认为互联网时代远程办公不用担心如何协作,更多的是需要灌输异步办公的重要性,需要一些机制激励每个同学自我驱动,比如通过 OKR 培养自驱力。当然这一切的前提是如何招人,这是一个很大的挑战。SOHO 办公需要招到有很强的自驱力的同事,否则新同事会拖慢整个团队的进度。
第二个很重要的问题是凝聚力。远程办公虽然有视频,但和面对面办公还是有区别。我们会定期举行集体办公,一般用 2~3 天的时间让大家聚在一起,一起讨论问题,一起吃饭,增进整个团队的协作能力。2020 下半年,新来的 HR 同学还探索出云团建的方式,一般是设定一个主题共同探讨。比如过年的时候每个人聊聊自己的家乡,通过这种方式让大家能互相了解工作之外的彼此,增加整个团队的认同度。这是中国团队的情况,美国团队由于疫情暂时没法聚集。
我们今年有一个目标,把全球的团队在某一个时间点聚集到某一个地方,大家集体办公,拉近团队凝聚力。
Q:从开始全员 SOHO 办公到现在,有没有遇到过不顺畅的时候?
最开始整个中国团队变成远程办公时,大部分员工不太适应。一些员工适应了固定工作环境,当做事没有人监督、而是需要按某一个时间节点进行时,他们很难自主地完成相应工作,跟不上整个团队的节奏。
这种情况下,我认为作为一个创业公司还是要有一定的容忍度,容忍每个员工有相应的调整期,同时给予员工一定的帮助,比如共同改善工作环境。但如果还是无法适应,在办公习惯上难以协调的话,有的人就会离开。客观来看,这也是一个筛选机制,会筛掉那些自驱力不是很强的员工,留下能适应团队文化、自驱力强的员工。
Q:作为一个 CEO,有没有什么理论或者实操方法能够让团队成为一个自制力很强,自驱力也很强的集体?
我认为公司里所有人都是学习效仿的状态,也就是说 Leader 怎么做、CEO 怎么做,相应的下属就会怎么做。那对于我个人来说,我认为远程办公很重要的一点是不要设置任何条条框框,只要最终的结果能在 Deadline 之前 Deliver 好就可以了。因为在家办公的前提下,每个人的环境不太一样,“我要让你必须 8 点或者 9 点开始干活,直到 5 点下班”,这是不现实的,因为每个人在家会遇到各种突发情况:断网断电、小孩打扰等等。
所以,团队能够容忍环境变化,CEO 需要起到表率作用,核心关注 Deadline 和交付结果,这是很重要的,要记住员工都在看着你。换句话说,如果你看的是每天的打卡情况,甚至员工在家办公时间需要开摄像头确认一下,那么整件事就变成变相集体办公,也就难以达到你想要的效果了。
说到底,这种方式也可以筛选出真正有自驱力的人。在这种结果驱动的环境里,那些磨洋工的人会暴露出自己的缺点,他可能就觉得自己并不适合这个工作环境,转而选择更适合他的工作环境了。
Q:听说 StreamNative 接下来会大规模招人,你们怎么去招到你们想要的这些人?
这个问题很有趣。首先我觉得不同的办公室形式有其适用性。远程办公的形式适合不超过 100 人的小团队,当然,这个数据我只是举个例子。假设远程办公的形式不适合超过 100 人的团队,那么在 100 人以内的阶段的招人标准就是有自驱力以及结果导向。实际落地时,我们会先远程面试,然后布置给他的岗位给他一个任务。这期间他需要跟人交流,反馈进度等等,那么在很短时间内就能检验出这个人是否匹配。(感兴趣的小伙伴欢迎戳招聘链接来聊)
另外我们也会从社区招人,他可能是我们的用户、客户,长期在社区活跃。经过长期沟通其实我们都很熟悉,已经知根知底了,那基本上不需要长流程的面试就能一起工作。对于他来说,也只是把五险一金放到另一家公司,工作方式没变。
我们也会进行大规模招聘,这时候进来的人可能不都是想象中那么自驱,那基本上就用 OKR 的方式去驱动对方。
当然我觉得核心还是要保证团队里的 leader 都是自驱型的,对集体办公和远程办公都能应付自如。那对于工作经验比较少,比如新的应届生群体,我们会通过混合模型,在不同城市开比较小的办公地点 – Hub,让他们集中办公,提升凝聚力,改善工作效率。
如今,StreamNative 团队已经发展到 接近 70 多人,分布在全球办公;公司在短短半年时间里就积累了 25 家客户。在生态方面,在 StreamNative 的积极推动下,Apache Pulsar 项目和社区正处于快速发展之中,全球社区规模已达到近万人,主仓库全球贡献者突破 450 人,同比增长超过 45%,项目周边和社区生态也得到了极大的丰富和增强。作为云原生时代大潮下最亮眼的消息流系统,Apache Pulsar 展现出的惊人活力也让人对其未来发展充满着期待。
评论