(文作者/黄杰珂)近日,阿里云数据库技术专家李晓宇研发的一款基于Python语言开发的自动化数据库运维工具“SDBStack”在中国计算机学会(CCF)首批200多家会员单位得到了应用。SDBStack提供一系列模块和插件,使管理和配置大规模服务器集群变得更加容易和高效。使用SDBStack的服务器将被C++后端多次ping,如果C++后端能够成功ping通服务器IP地址,则会将后端输出的消息按照协议缓冲区格式进行编码并发送至SDBStack端,从而实现自动化部署云数据库系统,李晓宇提出的这种做法在行业尚属首次。
我们知道,云计算是一种基于互联网的计算模式,云计算技术的出现使企业和个人用户都能够更加方便地获取计算资源和应用程序,降低了企业和个人用户的成本,提高了资源的利用率和管理效率。云数据库是一种基于云计算技术的数据库服务,它将数据库资源提供给用户,用户可以通过云计算技术进行访问和管理。云数据库的服务可以按需使用,无需购买和部署数据库软件和硬件,可以提高企业的数据处理效率并降低成本。
云计算和云数据库技术的发展已经成为当前计算机行业的主流趋势。随着云计算技术的不断发展和普及,云数据库服务也越来越成为企业和个人用户的首选。目前,国内外云数据库市场规模均呈现出快速增长的态势。预计到2025年,全球云数据库市场规模将达到更大规模。
基于云计算构建的云数据库,可以根据业务需求弹性扩展或缩减计算和存储资源,从而适应不同的业务需求。云数据库的高可用性,可以保证当服务器硬件发生故障或大规模断电时,数据仍然可用。云数据库灾备和备份恢复机制,也能进一步保证当发生灾难或用户误操作更改数据后,数据仍然能够恢复到用户期望的状态。
尽管大多数云数据库管理和维护工作由云服务商提供,例如,软硬件的日常更新和优化补丁, 让租户可以更关注与业务开发,而不是过多关注底层基础设置管理。由于云数据库规模庞大, 在运维云数据库过程中,尤其是针对部署在私有云上的数据库,过多的人工干预和手工操作会造成效率低下,严重的可能导致服务不可用,因此如何提高运维效率可靠性、及时发现和解决潜在的问题、降低系统不可用的风险,制定完善的自动化运维方案是必不可少的。
利用shell运维云数据库是一种比较流行的方案,通过编写shell脚本可以进行云数据库部署、 数据库实例的创建和配置,并且在shell中可以结合数据库相应的dump操作把数据导出, 从而实现数据库备份。尽管shell可以实现如上所述诸多功能,但是同时也存在一些不足之处。第一,维护困难和可扩展性差。使用shell来进行云数据运维, 所需要的脚本可能涉及数据库部署、数据库实例创建及数据定时备份和删除等,这些功能会导致shell脚本变得十分冗长且复杂,导致后期脚本可读性变差,难以持续维护。第二,灵活性较差。shell脚本是基于命令行执行,对于一些比较复杂的运维需求,例如资源自动伸缩等,无法做到足够的灵活。 而且运维不同的数据库,存在不同的指令,因此需要针对不同数据编写和维护多个脚本,这增大了运维工作量。
为了使自动化部署更方便且灵活可靠,阿里云数据库技术专家李晓宇于2023年7月首次成功研发了一种基于Python语言开发的自动化数据库运维工具“SDBStack”,用于配置管理、远程执行命令、应用程序部署、任务编排等操作。“SDBStack”使用一种基于消息传递的架构,称为“SDB”,该架构由一个或多个称为“SDB-Minion”的代理节点和一个被称为“SDB-Master”的中央控制节点组成,这种分布式架构使其在大型生产环境中管理和自动部署系统功能变得更加可靠,并且可以不断按需扩展以适应各大规模的基础设施和服务管理;SDBStack提供一系列模块和插件,使管理和配置大规模服务器集群变得更加容易和高效;SDBStack是一种基于声明式配置的自动化工具,不用编写繁杂且难以维护的脚本,采用YAML等格式的配置文件来描述系统期望的状态,SDBStack将系统最终配置成所需要的状态。SDBStack是一个可靠、灵活、可扩展且易于使用的自动化运维工具,可以极大简化互联网管理和配置管理的工作。
资料图:李晓宇
李晓宇在基于SDBStack的自动化部署云数据库系统的设计时主要分为物理资源池、实例创建与删除、实例的操作、实例备份与恢复4部分。物理资源池包括各种物理服务器,为云数据库系统正常运行提供计算和存储资源;在物理资源池基础上,通过自动化部署系统实现数据库实例的生命周期管理,包括创建实例、启动实例和删除实例;一旦数据库实例成功创建,可以对数据库实例进行操作与管理。除此之外,为了保证数据安全性和可恢复性,李晓宇还制定合理的备份策略对数据进行备份,在必要时及时进行数据恢复。
据介绍,物理资源池的相关实现原理如下:在添加物理资源池时,平台会通过IP格式、字符串长度、组播地址等信息进行前端审核。如果审核通过,则在前端编码上述信息,并且以 ASN.1格式将它们发送到C++后端;如果验证失败,则系统会提示用户验证失败。C++后端对 ASN.1消息进行解码,并将网站输入的相关信息写入ServerPoolList数据库表,此时服务器池
处于不可用状态。在此之后,服务器池中的服务器将被C++后端多次ping。如果C++后端能够成功ping通服务器IP地址,则会将后端输出的消息按照协议缓冲区格式进行编码并发送至SDBStack端,从而实现自动化部署云数据库系统,这种做法在行业尚属首次。
李晓宇通过分析云数据库的发展现状和构建云数据库所需的关键技术,在数据库行业首次提出的基于SDBStack的自动化部署云数据库系统,可以高效地执行复杂的运维任务,减少人为操作失误的风险,保证操作的准确性和可重复性,从而减少系统发生故障的可能性,提高整个系统的可用性和可靠性,他的做法填补了行业研究的空白。随着运维规模和复杂性的增加,自动化运维系统将进一步提升执行性能和其资源利用率,成为未来云数据库研究的热点方向之一。(文作者/黄杰珂)
免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。
责任编辑:kj005
文章投诉热线:157 3889 8464 投诉邮箱:7983347 16@qq.com