Couchbase 和 NoSQL 数据库的未来

在本次采访中,Couchbase 开发者倡导副总裁 Arun Gupta 分享了他对开源如何影响数据库行业的看法。
3 位读者喜欢这篇文章。
Open innovation

Opensource.com

Couchbase 是一个面向文档的 NoSQL 数据库,用于构建交互式应用程序。开源数据库行业的趋势显示出积极的增长,因为 NoSQL 被用于 Web、移动和物联网 (IoT)。

在本次采访中,Arun Gupta,Couchbase 开发者倡导副总裁,分享了他对开源如何影响数据库行业以及 NoSQL 行业未来面临的挑战的看法。此外,还可以了解 Couchbase 采用了哪些开源工具和方法。

Arun 撰写了 2,000 多篇关于技术的博客文章以及多本书籍。他连续三年被评为 JavaOne 摇滚明星,并且在美国创立了 Devoxx4Kids 分会,在那里他继续在儿童中推广技术教育。他获得的公认头衔包括:Java 冠军、JUG 领导者、NetBeans 梦想团队成员和 Docker 队长。

在 Couchbase 工作是什么感觉?

嗯,我在 Sun、Oracle 和 Red Hat 构建和领导开发者社区超过 10 年,因此我在领导跨职能团队制定和执行内容战略、规划以及营销活动和计划方面拥有丰富的经验。我还曾在 Sun 领导过工程团队,并且是 Java EE 团队的创始成员。

在 Couchbase,开发者倡导者帮助开发者成为技术、产品、API 或平台的有效用户。这可以通过在使用开发者通常出没的媒介上分享有关产品的知识来完成。一些更常见的渠道包括博客、文章、网络研讨会以及会议和聚会上的演讲。在论坛和 Stack Overflow 上回答问题、在社交媒体上进行对话以及为开源项目寻找贡献者是开发者倡导者定期执行的其他一些典型活动。

开源如何影响数据库行业,尤其是 NoSQL 数据库?

简而言之,开源彻底改变了数据库行业。

几十年来,数据库都是闭源的,并采用专有许可证。用户受制于少数几家大型供应商,如 IBM、Oracle、Microsoft、Teradata 和 SAP。企业受制于发布时间表和许可方案,这些方案通常与提供技术价值无关,而更多的是关于最大化供应商的利润率。有一些开源数据库,如 MySQL、PostgreSQL 和 SQLite,它们为大型供应商提供了替代方案,但在很大程度上,这些产品缺乏大多数企业正在寻找的成熟度、功能深度和稳定性。直到最近,似乎已建立的供应商垄断了数据库行业,并且进入门槛如此之高,以至于其他数据库提供商将永远沦为小众参与者。

但发生了两件事:开源数据库产品成熟了,分布式计算也出现了。

尽管企业继续运行许多“五巨头” RDBMS 产品,但 Gartner、Forrester 和 451 Research 等行业分析师以及 dbengines.com 等软件排名网站已明确表示,成熟的开源数据库不再是小众产品。分布式计算的新创新利用现代、高性能、通用硬件来提供分布式、可扩展的数据处理(例如,Hadoop 和 Spark)以及分布式、可扩展的数据存储(例如,HDFS 和 NoSQL)。

在过去 10 年中开发的大多数软件产品都提供了分布式计算,它们都是开源的。这些新产品利用先进的技术功能、敏捷开发方法和开源协作许可模式,为用户提供快速的技术创新以及更低的运营成本。

关于 NoSQL 数据库,几乎所有这些产品都以开源许可证提供(少数值得注意的例外,如 Amazon DynamoDB、MarkLogic 和其他一些)。并且开源 NoSQL 数据库的数量持续增长。然而,NoSQL 领域与众不同之处不仅在于可用产品的数量,还在于开源社区的活力和活跃程度。令人惊叹的是,财富 1000 强公司的采用率持续呈指数级增长,并且这些公司正在回馈社区。同样令人惊叹的是 NOSQL 用例的任务关键型、非小众性质,以及由此产生的产品质量和成熟度。

随着我们继续推进信息社会并以机器学习等形式扩展技术,您认为 NoSQL 数据库行业在未来几年内会面临哪些挑战?

可能最大的两个挑战是技术集成以及保持产品专注、质量和可扩展性。

从集成的角度来看,您有多种技术(例如,Hadoop 技术栈、Spark、IoT 和 NoSQL)正在快速发展,而在该领域几乎没有实际标准。一方面,您需要选择在哪里集中资源,并尝试确定哪些趋势、产品和 API 将被广泛采用,同时适应这些相同趋势、产品和 API 的快速变化。此外,我们从企业用户那里了解到,低效或执行不力的集成会导致由于性能和可扩展性问题而浪费时间和精力。您可以认为开源 NoSQL 数据库应该提供每一种可能的集成,但客户实际上并不是在寻找每一种集成——他们正在寻找有效的集成。

从产品质量和可扩展性的角度来看,NoSQL 数据库通过提供专门设计用于快速访问操作数据的专注功能,为 RDBMS 一刀切数据库方法提供了一种高性能、高吞吐量的替代方案。例如,将 NoSQL 与机器学习等新技术集成,需要一种更具交互性、实时性、操作性的方法,而不是 RDBMS 和文件系统集成中更常见的批量、批处理方法。

此外,随着 NoSQL 数据库变得功能和集成更加丰富,存在失去 NoSQL 带来的某些性能和可扩展性优势的真正风险。避免这种风险并非偶然或侥幸——它必须被计划并架构到产品中。

例如,Couchbase 的核心数据库架构基于我们的多维扩展 (MDS) 和数据库变更协议 (DCP)。MDS 和 DCP 使 Couchbase 能够为数据管理提供面向服务的架构 (SOA)。借助 MDS,Couchbase 可以持续添加数据管理服务,这些服务可以单独配置和分配资源,而不会影响其他服务的吞吐量或行为。这允许客户独立扩展每个服务(向上扩展、向外扩展或两者兼而有之),同时还提供工作负载隔离。这种基于 SOA 的数据管理方法使 Couchbase 能够引入用于 JSON 的完整 SQL (N1QL)、全局二级索引、跨数据中心复制 (XDCR)、内置全文搜索以及与 Spark、Kafka 和 Hadoop 的高性能流式集成。

Couchbase 采用了哪些开源工具和方法?

Couchbase 的核心价值观之一是我们是一家开源软件公司。我们认为,开源不仅仅是使源代码可用——它还关乎我们如何开发软件,以及我们如何与更广泛的 Couchbase 社区互动。

这以下列方式影响我们的开发过程

  • 我们开源开发。我们当前的代码行和提交是公开的。Couchbase 贡献者可以(并且确实)看到我们正在做什么并影响其方向。
  • 我们执行内部和外部(公开)代码审查。非 Couchbase 主题专家的反馈显着提高了产品质量和实用性。这在我们的 .NET SDK 和 Node.js/Ottoman 框架等的开发中尤其有用。
  • 我们实践透明度。我们的问题跟踪器是开放的,并尽可能包括产品路线图和未来功能方向。

我们这样做是因为我们知道这会带来更高质量的产品,具有更好的功能和更短的开发周期。

这也影响了我们如何与 Couchbase 社区以及更大的开源社区互动

  • 作为我们的开发者社区网站的一部分,我们在 Couchbase.com 上托管交互式 Couchbase 开发者论坛,以确保社区是“公司的一部分”,并且公司专注于我们与社区的互动。
  • 我们为我们的社区贡献者感到自豪,并在 Git 历史记录中保留署名,作为产品沿袭的一部分。
  • Couchbase 开发者向上游贡献了其他开源项目,包括 Memcached、Erlang、CouchDB、TCMalloc 等项目。

我们这样做是因为成为开源产品的好处与围绕该产品的社区的质量和活力成正比增加。培养一个伟大的开源社区需要为我们的社区成员提供真正的技术价值,以及双向沟通和贡献的机会。

您认为当前开源数据库行业正在发展哪些趋势?

开源行业与产品本身一样,每天都在发展和变化。也就是说,我们在各个供应商、产品和客户中看到了一些共同的趋势。例如

  • 开源是创新技术开发的中心,而云是它在生产环境中部署的地方。
  • 开源商业模式持续发展,Freemium 模式是目前最受欢迎的模式。
  • 历史上专有许可公司,如 IBM、Microsoft 和 Oracle,越来越多地提供他们自己的开源数据库产品。
  • 公共政府组织和私营企业越来越要求尽可能使用开源解决方案。还有一个推论趋势是,专注于并巩固对知名、经过验证的项目的使用,而不是试图实施每一个新出现的东西。
  • 企业越来越多地采用开源数据库,积极回馈开源社区,甚至将内部产品和工具作为开源发布。一些示例包括 Google、LinkedIn、Facebook、eBay、Walmart 和 Netflix。
  • 企业转向开源技术的动机正在发生一个非常有趣的转变。许可成本不再是首要原因——它已变为产品质量、创新/竞争性功能以及解决问题的能力。您可以清楚地看到这种趋势反映在最近的 2016 年开源未来 调查中。

开源数据库行业反映了上面提到的许多趋势。此外,我们还看到

  • 功能交叉和重叠。传统关系数据库供应商正在实施成功的开源功能,而开源数据库项目正在实施更多传统关系数据库功能。这使两种技术的用户受益。
  • 开源数据库正在通过添加数据类型和查询功能(扩展了它们可以使用的用例,如图形、全文搜索和数据库内分析)、提高其安全性和可管理性以及增加它们与新旧技术(如应用程序容器、Hadoop/Spark 和 JDBC/ODBC)的集成来扩大其企业吸引力。

作为一名开发者倡导者,您如何鼓励开发者参与和贡献开源 NoSQL 数据库项目?

开源 NoSQL 数据库项目以及社区总体上从开发者的参与和贡献中获益匪浅。无论是利用自己的时间,还是作为日常工作的一部分,开发者都是使这些产品成为现实的人。当我与想要成为这场伟大冒险一部分的热情开发者交谈时,我通常建议:

  1. GitHub 是宇宙的中心。如果你还不熟悉它,你需要熟悉它。
  2. 选择一个你喜欢的项目,或者更好的是一个你正在使用的项目,并成为该项目的专家。获得公司支持,要求你的公司投入你的一些或全部时间来回馈他们使用的开源项目。
  3. 找到你热衷的项目领域,并从那里开始你的贡献。你知道,这并不总是关于编写新功能——有 API 要开发,存储选项要考虑,与其他工具和项目的集成,以及需要持续审查和改进的示例、文档和测试套件。例如,专注于文档可以为你和社区中的许多其他人带来巨大的价值。
  4. 解决现实世界的问题。对社区产生最大影响的贡献是那些解决许多人遇到的问题的贡献。它可以是上述任何领域的问题。很可能,如果这对你来说是一个问题,那么对其他用户来说也是一个问题。
  5. 大多数开源项目都有鼓励参与和贡献的流程——找到它们并使用它们。例如,Couchbase 在我们的开发者门户网站上专门用一个完整的版块来与社区合作。它包括可用开源项目的列表、开发者论坛的访问权限、如何参与专家和冠军计划,以及每月开发者新闻通讯。

简而言之,找到你的社区,看看需要什么,然后参与进来。不知不觉中,你将成为摇滚明星,并成为你最喜欢的开源项目的贡献者。

Avatar
前 Opensource.com 和开放组织版主/大使。

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.