我们是 FreeWheel,一家 Comcast 公司,为媒体广告行业提供解决方案,使媒体买家和发布商能够高效、深入地了解广告系列工作流程的各个方面。
我们的系统基于 微服务架构。支持该工作流程的产品生态系统在过去 15 到 20 年中,在技术栈和基础设施方面不得不发生重大演变。这种演变的一部分是确保一个强大且快速的缓存机制,以支持我们生态系统内和跨环境的共享数据存储。
几年前,我们系统的缓存机制还是一个简单的每个服务器每个应用程序的存储,使用 Microsoft IIS 上提供的内置技术并运行 .NET Web 应用程序。这对于隔离的域数据来说已经足够,在单个请求之外没有共享的问题。但是,随着生态系统的增长,与在不同应用程序或不同服务器池中运行的进程共享数据的需求也随之增长。出现了缓存过时的问题。推出我们自己的编排,试图确保最新的存储,导致了无法维护且难以扩展的代码。我们研究了许多解决方案,包括 memcache 和 Couchbase 等各种衍生产品,但最终我们选择了 Redis。
Redis 作为轻量级数据存储、性能和可靠性的标准,声誉日益增长。简而言之,它只需要工作,我们不需要浪费时间来排除底层技术的故障。相反,我们的时间花在了微调一个干净的实现上,这确保了故障转移支持和灵活的 缓存失效 策略(取决于用例)。我们还可以确保存储在 Redis 中的数据能够快速持久化到服务器集群,并可供许多不同的已部署应用程序使用,以便用户始终获得正确的数据。
此外,Redis 开发方面有良好的社区支持和文档,并提供诸如 StackExchange 之类的支持库。Redis 为我们提供了适当的抽象级别,以实现我们所需的目标。我们还能够轻松集成 Redis,以解决针对我们现有 堆栈的健康监控等问题。这是一个根本的优势,因为我们有一个成熟但快速增长的产品,每两周发布一次新版本。我们现在将 Redis Enterprise 部署到我们的生产服务器,包括裸机和基于云的服务器,为欧洲、美国和亚太地区的用户提供支持。
过渡到 Redis Enterprise 是一次积极的体验。使用 Redis Enterprise 使系统更加稳定,最重要的是,我们发现了更多可以使用 Redis 的用例,这将进一步改善用户体验。它将使我们能够实现原本可能更具挑战性的事情。目前,我们正在设计一些内部流程自动化所需的基础设施,这将有助于持续集成场景,这对于我们的成功至关重要,并使我们能够快速行动。围绕 Redis 构建这些解决方案将使我们在方法上更加成熟,并为我们带来更具可扩展性的结果。
这是 FreeWheel 的技术架构师 Daniel Jones 的客座文章。您可以通过他的 LinkedIn 页面 https://www.linkedin.com/in/daniel-jones-5b93774/ 与他联系