挑战
PingCAP 是开发流行的开源 NewSQL 数据库 TiDB 的领先公司,该数据库与 MySQL 兼容,可以处理混合事务和分析处理 (HTAP) 工作负载,并具有云原生架构设计。“拥有混合多云产品是我们全球上市战略的重要组成部分,”全球战略和运营总经理 Kevin Xu 说。为了实现这一目标,团队必须解决两个挑战:“如何在容器化世界中部署、运行和管理分布式有状态应用程序,例如像 TiDB 这样的分布式数据库,”徐说,“以及当我们的客户在云端(任何云,无论是单一云提供商还是不同云环境的组合)使用 TiDB 时,如何为他们提供易于使用、一致且可靠的体验。” 了解到使用分布式系统并不容易,他们开始寻找合适的编排层,以帮助最终用户减少一些复杂性。
解决方案
该团队很早就开始关注 Kubernetes 进行编排。“我们知道 Kubernetes 有望帮助我们解决问题,”徐说。“我们只是在等待它成熟。” 2018 年初,PingCAP 开始将 Kubernetes 集成到其内部开发以及 TiDB 产品中。当时,该团队已经有使用其他云原生技术的经验,早些时候已将 Prometheus 和 gRPC 集成到 TiDB 平台中。
影响
徐说,PingCAP 客户对使用 Kubernetes 作为部署和管理 TiDB 的工具的反应“非常积极”。Prometheus 与 Grafana 作为仪表板,在客户部署 TiDB 时默认安装,以便他们可以在生产环境中部署 TiDB 之前和期间监控性能并进行任何必要的调整以达到其目标。徐说,该监控层“使评估过程和沟通更加顺畅”。
通过该公司基于 Kubernetes 的 Operator 实现(已开源),客户现在能够在云端部署、运行、管理、升级和维护其 TiDB 集群,而不会出现停机,并减少了工作负载、负担和开销。在内部,徐说,“我们已完全切换到 Kubernetes 进行我们自己的开发和测试,包括我们的数据中心基础设施和 Schrodinger(一个用于 TiDB 的自动化测试平台)。借助 Kubernetes,我们的资源利用率大大提高。我们的开发人员可以自己分配和部署集群,部署过程已从数小时缩短到数分钟,因此我们可以投入更少的人力来管理 IDC 资源。生产力提高了约 15%,并且随着我们在调试和诊断方面获得更多 Kubernetes 知识,生产力应该会提高到 20% 以上。”
TiDB 背后的公司 PingCAP 从一开始就以云为中心设计了该平台,全球战略和运营总经理 Kevin Xu 表示,“拥有混合多云产品是我们全球上市战略的重要组成部分。”
为了实现这一目标,团队必须解决两个挑战:“如何在容器化世界中部署、运行和管理分布式有状态应用程序,例如像 TiDB 这样的分布式数据库,”徐说,“以及当我们的客户在云端(任何云,无论是单一云提供商还是不同云环境的组合)使用 TiDB 时,如何为他们提供易于使用、一致且可靠的体验。”
了解到使用分布式系统并不容易,PingCAP 团队开始寻找合适的编排层,以帮助最终用户减少一些复杂性。Kubernetes 已经在他们的关注列表中很长时间了。“我们知道 Kubernetes 有望帮助我们解决问题,”徐说。“我们只是在等待它成熟。”
那个时间在 2018 年初到来,当时 PingCAP 开始将 Kubernetes 集成到其内部开发以及 TiDB 产品中。“让 Kubernetes 成为 CNCF 的一部分,而不是仅由一家公司支持,对于我们对该技术的持久性充满信心很有价值,”徐说。此外,“由于治理过程如此开放,因此很容易了解该技术的最新发展和社区情况,或者在我们遇到问题时知道该联系谁。”
TiDB 的云原生架构由无状态 SQL 层(也称为 TiDB)和支持分布式事务的持久键值存储层(TiKV,现在位于 CNCF 沙箱中)组成,它们是松散耦合的。“你可以根据你的计算和存储需求横向扩展或缩减,并且这两个扩展过程可以独立发生,”徐说。PingCAP 团队还基于 Kubernetes 构建了 TiDB Operator,这有助于在任何云环境中引导 TiDB 集群,并简化和自动化部署、扩展、调度、升级和维护。该公司最近还预览了其完全托管的 TiDB Cloud 产品。
整个 TiDB 平台利用 Kubernetes 和其他云原生技术,包括用于监控的 Prometheus 和用于服务间通信的 gRPC。
到目前为止,客户对启用 Kubernetes 的平台的反应“非常积极”。Prometheus 与 Grafana 作为仪表板,在客户部署 TiDB 时默认安装,以便他们可以在生产环境中部署 TiDB 之前监控并进行任何必要的调整以达到其性能要求。徐说,该监控层“使评估过程和沟通更加顺畅”。借助该公司基于 Kubernetes 的 Operator 实现,客户现在能够在云端部署、运行、管理、升级和维护其 TiDB 集群,而不会出现停机,并减少了工作负载、负担和开销。
这些技术在内部也产生了影响。“我们已完全切换到 Kubernetes 进行我们自己的开发和测试,包括我们的数据中心基础设施和 Schrodinger(一个用于 TiDB 的自动化测试平台),”徐说。“借助 Kubernetes,我们的资源利用率大大提高。我们的开发人员可以自己分配和部署集群,部署过程也缩短了时间,因此我们可以投入更少的人力来管理 IDC 资源。”
生产力提高了约 15%,并且随着我们在调试和诊断方面获得更多 Kubernetes 知识,生产力应该会提高到 20% 以上。”
Kubernetes 现在是 PingCAP 产品路线图的关键部分。对于任何考虑采用云原生方法的人,徐提出了以下建议:“现在是开始的最佳时机,”他说。“整个云原生社区,无论是 Kubernetes、CNCF 还是像我们这样的云原生供应商,都获得了足够的经验,并且有战斗经验来证明这一点,并且随时准备帮助您取得成功。”
事实上,PingCAP 团队看到越来越多的客户转向云原生方法,这是有充分理由的。“IT 基础设施正在迅速从成本中心和事后考虑转变为任何公司的核心竞争力和竞争力,”徐说。“云原生基础设施不仅可以为您节省资金,让您可以更好地控制您消耗的基础设施资源,还可以为您的用户带来新的产品创新、新体验和新的业务可能性。它既可以降低成本,又可以创造利润。”