(随着组织寻求现代化改造其应用,许多组织正在转向微服务架构,将其传统应用分解为松散耦合的服务集合。这一深刻变革激励我们联系了在微服务架构转型过程中处于不同阶段的 Redis 用户。我们正在一系列博客文章中讲述他们的微服务故事,这些故事始于 2019 年底。)
如果您认为微服务架构只能用于有限的项目集,那么与Z3 Works 的工作人员快速交流一下,可能会让您相信这种方法的通用性。在这家巴西软件公司,联合创始人 Marcelo Nozari 的 20 人团队为各行各业的项目设计和构建软件,然后将代码移交给客户部署。
例如,Marcelo 的团队帮助一家家庭安防公司收集其摄像机、门铃活动等数据,并向其客户提供实时通知。Z3 Works 最新的项目是帮助一家零售商将其单体应用过渡到微服务架构。虽然每个项目处于不同的生产阶段,但微服务在确保应用有效运行和实时运行方面起着关键作用。
对于 Marcelo 来说,微服务架构意味着创建清晰、独立的服务,以更好地管理项目。Marcelo 说:“每当您有更小的项目和更小的服务时,微服务都会让您更容易部署并避免导致其他一切崩溃。”微服务架构使 Marcelo 的团队能够处理小型组件,并根据需要尽快且频繁地更新和修复代码。
为了展示 Z3 从其微服务方法中获得的价值,让我们仔细看看几个截然不同的项目
如果您的家人正在进行为期一个月的假期,您很可能会时不时地检查一下您的家。这可能会给家庭安防公司带来挑战。家庭安防系统包含如此多不同的部分——从门铃到安防摄像头,再到运动探测器和警报器——这些公司需要在单个最新的应用中编译所有交互信息。
同时,对于安防公司来说,向客户提供实时通知越来越重要。这让客户能够在度假期间了解包裹送达等微不足道的事件——以便他们可以请邻居帮忙把包裹拿进屋以防被盗——同时也提醒他们注意潜在的盗窃等严重威胁。
Z3 Works 与一家需要管理所有这些数据的家庭安防公司合作。Marcelo 团队构建的应用将来自 3-5 种不同数据源(包括 7,000 多个不同的摄像头!)的数据拉取到运行在云端的 Redis 数据库中。该系统使用 Redis 作为缓存层,因为速度至关重要——客户期望在家里发生任何活动时都能立即收到通知。Marcelo 说:“例如,对于门铃按下事件,Redis 可以非常快速地从缓存中获取此图像,并将其作为通知发送到应用供用户查看。”Redis Pub/Sub 还充当图像请求的消息代理,负责获取图像的软件功能与部署图像的软件功能之间进行通信。
Marcelo 说,该家庭安防项目已投入生产约一年,每天处理高达 1 TB 的视频数据,每小时向 50 GB 数据库中摄取多达 300 万条数据。Redis 是该家庭安防供应商微服务架构应用的关键组件——Marcelo 表示,它使用 Redis Pub/Sub 在应用的不同服务之间进行通信,并保存供应商 API 的令牌和计数器,这对于数据集成至关重要。如果 Redis 发生故障,应用将无法再处理数据并将其传递给用户,用户也将无法看到任何新的视频片段。
通过使用微服务架构,应用避免了瓶颈,团队可以根据需要轻松地修复代码和小型组件。Redis 的速度、高可用性和快速故障转移对于实现微服务架构至关重要。此外,Z3 Works 可以根据需要扩展客户的应用,从长远来看提高了效率。
Marcelo 的团队最近开始与一家大型零售商合作,将其单体架构过渡到微服务,这是整体迁移到云端的一部分。Marcelo 说,该项目仍处于规划阶段,但新架构将结合约 10 种不同的服务。
通过基于 Redis 的微服务架构项目涵盖多个行业,Z3 Works 明确表明这种组合是加速各种应用和用例的强大方法。
想了解更多关于微服务的信息吗?查看 Mutualink 如何使用 Redis 构建拯救生命的微服务架构,并听听 Redis 开发者布道师 Kyle Davis 和 Loris Cro 在 The New Stack 播客上讨论他们的新免费电子书“Redis 微服务傻瓜书”。