1

聊聊即将到来的 MySQL5.7 停服事件

 11 months ago
source link: https://blog.p2hp.com/archives/11678
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

聊聊即将到来的 MySQL5.7 停服事件上个月,信通院下属的云计算开源产业联盟发布了一个关于 MySQL 数据库开源生态的研究报告《开源数据库生态发展研究报告 - MySQL 开源数据库》,其中提到了在 10 月份 MySQL 社区将会发生一件大事 --MySQL 5.7 将会于 2023 年 10 月 21 日结束服务期(EOL)。

MySQL 目前已经成为中国用户使用最广泛的开源数据库,其中 5.7 版本的用户的比重又是最高的,因此 MySQL 5.7 EOL 事件会影响到很多 MySQL 用户。          

ecee703d-8851-4893-a7c1-60eae96cb271.png

根据报告中的统计数字,MySQL 5.7 用户占比在国内高达 47%。届时这些用户将会面临选择,如何应对 EOL 事件。实际上 2020 年的时候就有一些机构提醒用户,MySQL 5.7 按照生命周期将于 2023 年到达服务期限,当时这件事还在 MySQL 社区和 DBA 圈子里引发过一些关于开源项目安全性的讨论。3 年后,这个狼来了的问题,终于正式要面对我们了。实际上数据库 EOL 的问题并不是在 MySQL 5.7 上第一次出现,Oracle 用户都很清楚每个版本 EOL 的时间表。只不过 Oracle 官方依然会对付费用户提供延长期服务,还会在数年时间里继续为这些用户发布安全补丁包,因此 EOL 的 Oracle 版本依然可以通过各种渠道找到安全补丁包。而作为开源数据库的 MySQL,EOL 就意味着开源社区不再提供安全与功能方面的补丁升级了。

c1b72808-de87-47b0-b738-b03c6d40c686.png

面对 MySQL 5.7 EOL 这个事件,percona 官方宣布了付费支持的计划,在 EOL 之后的三年内,percona 会为需要服务的客户提供收费服务支持。不过支持的力度如何,是否承诺对安全问题发布补丁不得而知。

3738e609-030d-4b34-a0e1-9bdc2442145c.png

MariaDB 一贯的对 MySQL 持有敌意,他们希望 MySQL 5.7 用户不要升级 MySQL 8 了,而是通过 11 条简单的命令迁移到 MariaDB 上去。除此之外,一些云厂商也纷纷提出了解决方案。

9dd07939-f45b-4519-a63f-cbe88b15c07f.png

云厂商则纷纷发布了延长服务的声明,微软 Azure 将会在 MySQL 5.7 EOL 之后,为其公有云用户提供延长的服务,由 Azure 官方提供支持,最晚到 2025 年。

941c65f3-dbae-4603-a79a-f6e716d7ec23.png

类似情况,亚马逊也将为其公有云用户提供一年期的支持。不论是亚马逊还是微软,当延长服务期结束后,MySQL 5.7 用户将必须强制升级到 MySQL 8 或者迁移到其他数据库上。面对这个问题,国内的 MySQL 生态的数据库厂商也纷纷给出了自己的迁移方案,希望吸引这部分用户到自己的产品上来。面对 MySQL 5.7 EOL 这个事件,我们会如何面对呢?最近我也和一些 MySQL 5.7 用户做了一些交流,根据他们反馈的情况,以及业内对此问题的应对措施,再结合报告中反馈的四种情况,我总结了一下,大致有六种应对措施。第一条路径:直接升级到 8.0  做出此选择的 MySQL5.7 用户占比较高,此类用户对此问题早已了解,并且在半年前就已经开始应对工作。MySQL 5.7 升级到 8.0 不仅仅是更换一个数据库版本而已,因为 8.0 与 5.7 在技术上有较大的差异,CBO 优化器与 SQL 引擎都有一定的不同,因此数据库升级后应用需要做全面的测试,对于不够兼容的部分代码做一定的修改才能确保顺利迁移。因此采用第一种路径的用户,需要做一定的提前准备。第二条路径:直接迁 移到 MySQL 兼容的国产数据库。 有一部分客户考虑到信创的问题,原本就已经计划对数据库进行国产化替代,准备一次性到位。如果用国产数据库替代,那么可以选择的路径也很多,很多国产数据库产品就是 MySQL 生态产品,比如腾讯 TDSQL、万里 GreatSQL、中兴通讯 GoldenDB、Oceanbase、阿里 PolarDB-x 等。如果不需要使用存储过程,还可以考虑 TiDB。很多国产数据库也有 MySQL 兼容模式,虽然不能完全兼容 MySQL,应用做少量的修改也可以迁移过去。达梦、人大金仓、GaussDB 等数据库都有 MySQL 兼容模式。直接迁移到国产数据库的优点是从根本上完成数据库国产化替代,不过缺点也很明显,一方面是迁移需要一定的资金,也需要一定的时间,另外一方面是国产数据库许可证采购的总体成本不低。第三条路径:迁移到其他 MySQL 生态的开源产品,比如 MariaDB 和国内的 GreatSQL。 向 MariaDB 迁移的用户主要考虑的是摆脱 Oracle 生态,选择一个相对更加安全的开源项目,不过 MariaDB 社区是否足够安全,也是仁者见仁智者见智。GreatSQL 是 Percona Server 的一个开源分支,也基于 GPLV2 协议,代码托管在国内的 gitee 上。在保持与 Percona Server 兼容的基础上,会更快速地修复漏洞,保障用户的数据安全。随后 GreatSQL 开源社区将会在官网上开设一个 MySQL5.7 停服专区,帮助 MySQL 5.7 的用户解决一些停服带来的问题,为某些暂时无法升级的用户提供支撑。随着软件供应链安全方面的需求的不断加强,国内开源项目分支的发展将会迎来高速发展。这条路径的迁移成本较低,缺点是用户目前对国内的开源分支的认可度还存在一定问题。第四条路径:对于公有云用户,依托云平台再多撑一两年,在一两年中再选择方向。 公有云厂商还会对 MySQL 5.7 提供一定时间的延长支持。公有云用户先观望一年再选择稳妥的技术路线的比例是比较高的。这条路线获得了一定时间的缓冲区,以便于做出更为科学的决策,不过仅仅是过渡期的临时做法。第五条路径:换门,从 MySQL 直接更换数据库种类,转投另外一个开源数据库 PG 阵营。 和摄影界换门一样,采取这条路径是要下大决心的。因为以往的应用都要修改,数据都要迁移,以往积累的应用开发与运维经验也都要放弃。第六条路径:不变,继续使用 MySQL 5.7。 数据库都是在内部使用的,因此把网络的安全边界扎牢,哪怕有安全漏洞,也不升级,不改变,等到应用系统升级的时候再考虑升级或者更换数据库。选择这条路线的用户比例不低,这条路径成本最低,不过要承担一定的安全风险。采用这条路线的用户把安全依托在网络安全和边界安全上,通过扎紧篱笆来防止安全事故。最后要表达的观点是,EOL 是很多产品都会面临的事件,无需过度担心。不过数据库产品的 EOL 影响面更广一些,处理起来也更麻烦一些,特别是 MySQL 5.7,对于一些复杂一些的系统,直接升级到 8.0 还是需要做一些验证工作的。作为一个核心的数据资产承载体,没有安全补丁处于裸奔状态的数据库也是一个比较大的隐患。从软件供应链安全上看,商用数据库 Oracle 在代码上的安全性要高于 MySQL 这样的开源数据库,再加上 Oracle 延长期服务依然在出安全补丁,用户也可以通过一些特殊渠道获得安全补丁。因此相对于 Oracle 数据库的版本 EOL,MySQL 的 EOL 问题更受企业级用户的重视。面对即将到来的 MySQL 5.7 EOL,IT 部门的领导和 DBA 哪怕没有做什么动作,多思考一下也是好的。对《开源数据库生态发展研究报告 - MySQL 开源数据库》有兴趣的朋友可以点击文后的阅读原文去下载。  


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK