本文作者:Steve|笛卡尔数据创始人,5 年亚马逊大数据分析与产品开发经验,深度研究品牌分析、商机探测、类目分析,深度研究 COSMO 算法底层思维与数据构建逻辑
对于多数初创企业而言,选择百度、腾讯或阿里等云服务商提供的虚拟服务器进行 TiDB 的云上部署无疑是最为便捷的选择。然而,同时部署一套生产环境与一套测试环境的成本高昂,这对于依靠自有资金运作的创业者来说是一个必须仔细权衡的问题。如何在保持高效运行的同时,最大限度地降低成本,实现“既要马儿跑,又要马儿少吃草”的目标,成为了一个亟待解决的课题。除降低成本外,还应具备灵活、有效、低成本及低代码的特点,以满足不同阶段创业者的实际需求,尤其是当一些专业技术问题连专业后端工程师也难以应对时。
以我个人在百度云上部署 TiDB 的经验为例,尽管过程中遭遇诸多曲折与事故,但作为产品经理,我并未具备纯技术人员那样深厚的编码功底。然而,我们成功运用了一系列非技术手段,巧妙地解决了许多技术难题。下面,我将分享四点关键心得,它们分别是灵活、有效、低成本和低代码实践,这些经验均源自我在实际运维中的亲身经历。
我们深入挖掘云服务器厂商提供的各项功能,并充分利用其资源,甚至在无需额外付费的情况下实现了诸多功能。例如,当我们需要进行TiDB版本回溯时,传统技术方法基本无解,而我们则采取了一种简单且安全的方式:先暂停 TiDB 运行,利用云服务商后台的实例备份功能进行全面备份,为确保数据安全,建议先关闭实例再制作实例备份以确保数据完整性,避免在操作备份时的时间不一致导致备份的结果不同步引发的问题。
备份完成后,我们进行升级操作。如遇问题,只需将所有实例还原即可快速退回至原版本,新产生的数据可以通过备份后重新导入集群或其他方式处理,从而实现版本的灵活逆转。(PS:实例备份的好处可以同时包含系统盘与数据盘的数据)
此外,我们利用云服务商提供的快照新建实例的功能,能迅速将 A 集群的每一台实例配置及数据复制一份,然后对集群的内网IP地址做一些配置修改,重新启动后就建立了 B 集群,相比传统的 BR(Backup & Restore)工具,复制速度提升了多个数量级,而且不用重新再去部署和创建集群,测试效率高了多个数量级。这种高效的复制机制使得我们能够在没有专门测试环境的情况下,快速搭建临时测试环境,进行数据复制、测试,完成后直接释放,无需额外大量花费也无需额外购置硬件设备,极大地提高了灵活性和成本效益。
具体操作主要是先对服务器实例建立镜像,如果数据盘与系统盘一起,那么这种操作方法非常简单,只需要对实例制作镜像,然后再通过镜像建立新的实例,最后对新集群的内网IP的配置做一些修改即可重新启动一台新集群。
如果数据盘是挂载的方式会比较麻烦,需要对系统盘建立了镜像后,还需要把数据盘也拷贝一份,然后启动不同的实例,把新建立的CDS磁盘挂载到相应的机器上,并且把集群的内网IP地址做一些变更,重新拉起集群后就可以了。
其次,在重建集群时,我发现了一个关键的小技巧——使用弹性网卡。传统的服务器部署若将 IP 固定绑定,一旦需要调整或迁移服务,操作难度显著增大。而借助弹性网卡,我们只需在构建第二套集群时,将原集群中网卡分离并移至新集群,即可瞬间完成业务切换,全程无需编写任何代码,大大简化了操作流程。这一方法颠覆了传统复杂解决方案的认知,仅需一个简单的弹性网络配置,问题便迎刃而解。
最后,在备份策略上,我们避开了高昂的专业备份服务,选择了使用 CFS(Cloud File System)文件存储进行备份,并通过 BR 工具将其备份至 CFS 上。备份完成后,利用 CFS 自带的备份系统进一步保障数据安全,同时删除本地冗余文件,确保资源的有效利用。这一系列操作充分榨取了云服务商提供的免费功能,大幅节省了开支,使整个项目在运维过程中展现出极高的灵活性、低成本和低代码特性。
以上都是我基于长期使用百度云后台进行的充分实践经验,不同的云厂商的相应服务资源的名称和限制可能有所不同,不过整体都比较接近,需要多进行尝试和研究,只有充分了解云厂商不同产品的功能与操作后,才能灵活运用找到更省钱省时间的操作技巧和方法。
综上所述,虽然身为产品经理而非专业 DBA,但我们通过巧妙运用云服务商提供的功能、灵活调整网络配置、高效复制数据以及创新备份策略,成功运维 TiDB 并解决了诸多技术难题,不仅降低了成本,更实现了系统的高度灵活性和低代码化,为创业公司在有限资源下高效利用 TiDB 提供了切实可行的经验参考。这些非技术手段的应用犹如一个个隐藏的“彩蛋”,让企业在享受 TiDB 强大性能的同时,也能轻松驾驭并节省大量成本,堪称创业路上的意外惊喜。