Vacasa,一家领先的北美度假租赁管理平台,通过采用AmazonAurora实现了物业管理系统的现代化,取得了显著的性能提升和成本节约。通过分阶段的迁移策略,Vacasa从传统的数据库环境迁移到Aurora架构,借此实现更高的可用性和操作效率。
Vacasa是北美顶尖的度假租赁管理平台,积极利用先进技术和专业本地团队来革新度假租赁体验。房主通过Vacasa的专业收益管理团队获得更高的收入,客人则可以在美国、伯利兹、加拿大、哥斯达黎加和墨西哥享受数千个房屋的选择,并享受24/7的中央和地方支持。Vacasa的物业可通过网站、Vacasa客户应用程序以及Airbnb、和Vrbo等合作伙伴进行预订。
在竞争激烈的短租物业管理行业中,系统效率至关重要。为了保持市场优势并持续提供卓越服务,Vacasa需要对其主要事务数据库进行现代化改造,以提升性能、确保高可用性并降低成本。本文将分享Vacasa从在MariaDB到,再到的迁移过程,重点介绍所采取的技术步骤及取得的成果。
为了应对不断增长的需求,Vacasa开始对其自家开发的物业管理系统(PMS)进行现代化改造。该系统基于单一的单体架构,在所有功能中使用一个庞大的数据库。目标是过渡到更现代的微服务架构,采用解耦的组件和专用的数据存储。在这一过程中,单体数据库在现代化过程中遭遇了挑战,并采用了——以逐步增加新功能的方式来现代化遗留系统,最终逐步淘汰旧组件。遗留系统与新微服务组件均与中央数据库进行交互,使得可扩展性、可靠性和成本效益成为关键。以下是Vacasa物业管理系统及微服务的高层次遗留架构示意图:

这个物业管理系统数据库存储了关键的物业数据,包括单位元数据、地址、设施、限制和物业描述。它还管理物业可用性信息,像一个大型日历一样处理所有物业的预订,覆盖18个月的周期。
通过Amazon RDS forMariaDB,Vacasa轻松达到了目前的规模。然而,以目前的增长速度,Vacasa将在几个月内超过经典托管数据库的能力。这意味着Vacasa需要从头开始重新考虑架构,设计出更高性能和可扩展性的系统,同时简化架构管理以支持不断扩大的物业组合。此外,Vacasa还期望实现实时数据可用性和更高效的成本管理。以下是Vacasa现代化之前物业管理系统的中央数据库状态:

高效作业和成本优化至关重要,因为转向微服务意味着每个服务都将有其自己的数据库。可扩展性是一个主要目标,尤其是在房主人数不断增加和其他物业带来的负载上升的情况下。为了支持业务增长,目标是在新的微服务架构中提供平稳运行、提高性能,并改善成本效率,同时维持客户所期待的高水平服务。
为实现上述目标,Vacasa选择了使用Aurora进行平台现代化。Aurora提供了可扩展性、高可用性与成本效益,非常适合其现代化架构。其分布式副本设计使Vacasa能够在不影响性能的情况下处理不断增加的工作负载,而在多个可用区之间的自动复制则提供了数据持久性,最小化了停机时间,这对管理实时物业可用性和预订至关重要。为实现平滑过渡,Vacasa采用了两步迁移过程,首先从AmazonRDS for MariaDB迁移到Amazon RDS for MySQL,然后最终迁移到。
逐步迁移的选择基于多个原因。直接从MariaDB迁移到Aurora可能会带来兼容性问题,尤其是在像等特性上。首先过渡到Amazon RDS forMySQL,Vacasa保持了功能兼容性,并在受控环境中解决了可能的问题。此外,这种渐进式迁移允许进行数据验证和应用测试,降低数据丢失的风险,实现更平滑的过渡和更少的停机时间,最终支持Vacasa不断发展的需求。
从Amazon RDS for MariaDB迁移到Amazon RDS forMySQL的过程使用了进行架构和初步数据传输,结合(AWSDMS)进行持续复制或变更数据捕获(CDC)。选择AWS DMS而非原生MySQL复制是基于对精细监控和错误处理的需求。AWS DMS通过提供了详细的监控,使得复制性能、延迟和潜在问题可实时可见。以下是这一迁移方法的示意图:

迁移前阶段包括以下步骤:
迁移和切换阶段包括以下步骤:
在这次迁移中,将Aurora实例作为RDS for MySQL数据库的外部副本添加,提供可靠的高性能解决方案,同时通过消除对额外AWSDMS复制实例的需求来优化成本。这种直接复制设置促进了两个数据库之间高效的数据传输和同步,确保在迁移过程中最小化干扰并保持数据完整性。如下图所示,这一方法的示意图为:

迁移前阶段包括以下步骤:
迁移和切换阶段包括以下步骤:
如果在迁移过程中需要回滚,例如在验证测试失败或发生意外问题时,策略是将目标数据库设置为只读,停止连接,并将应用服务重定向回源数据库。随后进行验证,例如确认数据一致性和验证应用连接性。
在迁移之前,Vacasa的数据库配置包括四个专门用于不同团队和功能(如ETL(抽取、转换和加载)、管理任务和遗留系统)的RDS forMariaDB副本。这种配置导致读取流量的负载平衡效率低下,因为每个系统与其自己的副本交互,结果是资源利用不足并增加了复杂性。
迁移后,Vacasa转向Aurora,采用一个单一的只读端点及两个副本,显著提升了负载分配和效率。这一转变使Vacasa减少了副本数量,同时启用了以应对必要时的流量增加,从而实现显著的成本节约。按需付费的IOPS模型进一步提高了成本效率,避免了资源的过度配置。以下图显示现代化后当前数据库状态:

迁移到Aurora的一个显著优势是数据库引擎升级的便捷性。Aurora通过允许在几分钟内完成升级,简化了这一过程,最大限度减少了停机时间,并使用户在升级期间能够访问数据库。虽然RDSforMySQL享有更频繁的数据库引擎更新和更广泛的数据类型支持,例如JSON类型,但最终迁移到Aurora降低了副本延迟,实现了实时数据可用性和更快的读取性能。这些变化导致应用响应时间平均提高了35%,数据库成本降低了48%,同时保持99.99%的正常运行时间,确保数据持续可靠访问。
迁移后还集成了几个技术增强功能。使用进行实时系统洞察和主动问题管理是一个重要的补充。Aurora架构允许为特定服务使用专用副本,优化关键操作。
数据库现代化对Vacasa的运营产生了深远的影响。尽管传统的Amazon RDS forMariaDB配置曾经有效,但迁移到Aurora架构提供了更高的效率,使得模式变化更快、减少副本延迟,从而提高数据准确性并简化操作。Vacasa在之前的AmazonRDS配置中未能充分利用预留实例;采用Aurora和预留实例则实现了48%的成本降低,给予Vacasa财务弹性,以便重新投资于其他战略计划。
35%的性能提升使得系统能够更有效地处理更高负载,从而提升用户体验和系统可靠性。逐步的迁移策略——从Amazon RDS forMariaDB到Amazon RDS forMySQL,最终再到Aurora——证明是成功的策略,降低了风险和干扰。这使Vacasa能够以更可扩展和具有成本效益的方式满足日益增长的需求。迁移过程中获得的技术增强和架构改进使Vacasa为持续增长和卓越运营奠定了基础。
现在是探索类似的改进如何提升您业务的最佳时机。前往或查看,迈出优化您基础设施的下一步。有什么问题或看法?欢迎在评论中分享!
Leave a Reply