亚马逊AWS官方博客

代码及其他:我们如何为 Apache Cassandra 社区做贡献

Amazon Managed Apache Cassandra Service。

AWS 专为运行开源而构建。自 2006 年 AWS 推出以来,我们已经为从 Redis 到 Linux 到 Apache Lucene 再到 Kubernetes 的各种开源软件项目做出了贡献,并将在寻求帮助客户的过程中继续做贡献。但是,代码并不总是我们唯一的贡献,有时甚至不是我们的最佳贡献。通过使更多的开发人员可以访问项目,云可以增加开源的效力,简化生产中的构建和运行,从而腾出工程时间做其他贡献。

启动 Amazon Managed Apache Cassandra Service(一种可扩展、高度可用且与 Cassandra 兼容的托管数据库服务)时,我们响应客户请求,减轻自行管理的 Cassandra 的相关负担,以便您可以专注于编写CQL(Cassandra Query 语言)应用程序代码。但是,我们也希望该服务通过直接符合 Apache 软件基金会的操作原理来帮助社区发展,同时启用、支持 Cassandra 代码库并为其做出积极贡献,从而为 Cassandra 做出贡献。

在开源中,代码很重要。但是该代码的运行也是如此。我们将为 Cassandra 做出贡献。

Dynamo 源站

多年前,Amazon 帮助引发了“一刀切”关系数据库时代的终结。正如 Amazon CTO Werner Vogels 所描述的那样,在2004年,Amazon 的零售业务依赖于 Oracle Enterprise Edition,但是“我们在不断突破 [Oracle 的] 极限…无法满足我们不断增长的 Amazon 业务所需的可用性、可扩展性和性能。” 公司聚集了“一个分布式系统专家小团队…并设计了一个用于读写操作的可横向扩展分布式数据库,满足了我们业务的长期需求。” 这就是 Amazon Dynamo 的起源,它运行良好,以至于 2007 年公司发布了 Dynamo:Amazon 的高可用键值存储。五年后,我们推出了 DynamoDB,这是一个完全托管的多区域、多主机、持久数据库,具有内置的安全性、备份和还原功能以及用于 Internet 规模应用程序的内存缓存。

受 Dynamo 论文的启发,Facebook 的工程师开发了Cassandra。2009 年,Facebook 将 Cassandra 贡献给了 Apache 软件基金会,Apache Cassandra 由此诞生。 尽管拥有这种共同的 DNA,并在大规模存储键值数据方面拥有共同的目标,但是这两个数据库采用了不同的 API 方法和存储架构。

壮大 Cassandra 满意用户的队伍

今天,我们的许多客户使用 Amazon EC2 运行 Cassandra,其中一些通过 AWS Marketplace 发现了 Cassandra。大量用户要求我们开发与 DynamoDB 一样易于扩展的 Cassandra 兼容数据库服务,同时允许他们继续使用 CQL 进行编程,方便精通 SQL 的开发人员可以更快速轻松地跳转到非关系数据库。借助 Amazon Managed Apache Cassandra Service,您可以使用与当前所用的相同 Cassandra 应用程序代码、Apache 2.0 许可的驱动程序和工具在 AWS上运行 Cassandra 工作负载。

这是我们为 Cassandra 做出贡献的第一个领域。

通过为构建 Cassandra 应用程序的开发人员免去运营负担,我们希望扩大 Cassandra 的知名度。通过启动与 Cassandra 兼容的服务,我们可以带来与 AWS 相关的部署速度、可扩展性和可用性优势,以及诸如加密和访问管理 (IAM) 之类的企业功能。此外,Amazon Managed Apache Cassandra Service 展现了 AWS 对 Cassandra API 和相关开发人员社区的长期承诺。最终,AWS 提供的与 Cassandra 兼容的服务,以及对开发人员宣教工作的投资,将有助于提高 Cassandra 的知名度。

借助这项新服务,我们还希望 Cassandra 代码贡献者能够投入更多时间进行高价值的创新,例如添加新的 CQL 特性和功能,而不必将精力放在向管理、压缩、垃圾回收等功能领域添加无差别的增强功能上。

Apache Software Foundation 在构建出色的开源软件方面独树一帜,专注于代码之上的社区

“成为提交者并不一定意味着您要提交代码,而是意味着您致力于该项目并为该项目的成功做出贡献。”

对于 Cassandra,我们会牢记这一理念。通过启动托管的 Cassandra 兼容服务,我们坚定地致力于该项目。如果 Cassandra 拥有一个充满活力的用户和开发者社区,那么使用 Amazon Managed Apache Cassandra Service 的客户将是最成功的。有了对项目的承诺,代码贡献自然会随之而来。

就代码进行协作

尽管存在一些前景良好的领域,比如 Instagram 的工程师提出的用来降低 JVM 开销的可插拔存储引擎,但我们今天还可以进行更多基础类投资,从而极大地帮助 Cassandra 开发人员。

例如,除了使用 CQL 编程外,开发人员还喜欢 Cassandra API。在使用 Cassandra API 库时,我们将提供一些错误修复。我们还将改善在 Cassandra 上构建应用程序的开发人员体验。示例之一,是对 AWS 身份验证 (SigV4) 的内置支持,它将为在 Amazon EC2 上运行 Cassandra 的客户简化凭证管理,因为 Amazon EC2 和 AWS IAM 可以使用实例角色自动处理凭证的分发和管理。在开展此项工作以帮助 AWS 客户的同时,我们希望将类似的优势惠及所有用户。

今天,我们还推出了 100000 USD 的 AWS 促销服务抵扣金额初始资金,用于测试与 Cassandra 相关的应用程序,希望您可以申请该资金。 借助今年早些时候推出的开源抵扣金额计划,我们已经能够帮助支持许多开源基金和项目。通常,这些服务抵扣金额用于在 AWS 上执行上游和性能测试、CI/CD 或存储构件。我们希望该计划为 Cassandra 开发人员腾出用于进一步扩展和创新的更多资源。

每个人都将从更强大的 Cassandra 社区中受益。即使我们也贡献代码,但我们还是很高兴通过使用户更方便地利用此强大数据库的功能,为 Cassandra 项目做出贡献。我们期待与 Cassandra 社区紧密合作,使 Cassandra 变得更好。

您是否有兴趣与我们的团队合作以帮助构建 Amazon Managed Apache Cassandra Service 并以有意义的方式为 Cassandra 做出贡献? 我们正在招贤纳士,非常期待听到您的声音