公司: Apna
行业: 科技
Apna 是印度最大的专业社交和就业机会平台。其受欢迎的数据驱动型应用程序利用 AI 算法彻底改变了求职者与机会连接的方式。
为了管理数十亿行数据和每秒 50,000 次读/写操作,Apna 需要一种高性能数据库缓存解决方案,该方案能够处理不断增长的流量,并减轻导致客户流失的延迟问题。
Redis Cloud 缓存了数百万个职位的数据,缓存预取通过预测每个 Apna 用户时时刻刻想要查看的内容来提高查询性能。
通过提高响应时间并提供有关相关职位的详细信息,Redis 弥合了雇主和求职者之间的关键差距。
在导致印度超过 1000 万个工作岗位流失的新冠疫情期间,Apna 挺身而出,创建了一个热门的求职和专业社交平台。Apna 现在为求职者提供了一个统一平台,让他们可以探索机会、展示技能,并与各行各业的不同本地社区建立联系。
Apna 成立于 2019 年,现已成为印度首屈一指的专业社交和综合性求职平台,为各行各业的无数求职者赋能。Apna 业务遍及印度 70 多个城市,拥有令人印象深刻的 5100 万公民用户群体,并与 50 万雇主合作,通过其强大的平台促进了大量就业机会并培育了一个蓬勃发展的社区。
Apna 在印地语中意为“自己的”,由此产生了公司面向未来的口号:“我们的时代即将来临。” 对于该网站快速增长的用户群来说,这是一个令人鼓舞的口号,其中许多人是首次上网的用户,他们需要一种简单的方式来获取专业机会、与他人协作、学习新技能,并加入志同道合的社区,这些社区可以帮助他们找到工作。Redis Enterprise 是 Apna 为这些人提供机会的核心能力。
Apna 平台工程与基础设施负责人 Suresh Khemka 表示:“在我刚加入 Apna 后不久,我们在六个月内用户数从 1200 万增长到 2400 万。” “我的工作是确保我们的速度保持不变,同时保持相同的安全、可靠性和性能水平。Redis Cloud 的高可用性和可靠性非常出色。”
Apna 的智能手机应用程序使用 AI 技术将求职者与雇主匹配。用户只需一个电话号码即可创建账户,从而访问数百万个招聘信息。一旦输入个人信息,Apna 就会生成一张虚拟名片,可以传递给雇主。
求职者可以随时登录搜索相关的招聘信息。每天有 50 万份职位申请,在正确的时间向正确的用户展示正确的信息绝非易事。为了保持用户的参与度,Apna 显示的数据需要与每次搜索相关、针对每个用户进行个性化,并即时呈现。
为了管理每秒多达 50,000 次查询,Apna 将会话数据加载到 Redis 缓存中。“大多数人在‘求职’区域花费 10 到 15 分钟,”Khemka 说。“一旦他们登录,我们就会预取他们的数据并将其加载到 Redis 中。”
缓存预取 通过预测每个用户想要查看的内容,然后在用户明确请求之前从存储子系统获取数据来提高查询性能。当写优化和读优化工作负载必须保持同步时,这项技术常用于连续复制。采用这种缓存模式,应用程序直接写入数据库。数据随着记录系统中发生变化而复制到 Redis,因此数据在应用程序需要读取之前就已经到达缓存。
由于一个普遍存在的困境,Apna 决定标准化使用 Redis Cloud:面对数十亿行数据和不断增长的读/写操作量,其之前的数据库缓存引擎无法处理负载。
“随着快速增长,我们开始看到问题,”Khemka 承认。“我们的基础设施非常脆弱,导致过度延迟、大量宕机和平台上的客户流失。”
当时,Apna 在 Google Cloud Memorystore 中运行着大约十几个 Redis 缓存,但基础设施团队想探索其他配置选项。“我们确定我们可以选择在本地构建 Redis Enterprise Software 集群,运行在虚拟机、Kubernetes 或类似的环境中,”他回忆道。“或者我们可以使用 Redis Cloud 补充和扩展我们的 Google Cloud 环境。”
虽然 Redis Enterprise 的本地版本和云版本都能轻松处理日益增长的活动,但团队选择了云版本,因为他们不想花费时间管理硬件和软件基础设施。这是一个有远见的决定:很快,通过使用 Redis Cloud 补充 Google Cloud 环境,不仅提升了性能,还降低了成本。
“Redis Cloud 比其他内部和基于云的缓存解决方案便宜 15% 到 20%,而且性能更好,”Khemka 证实。“Redis Enterprise 对我们来说运作得非常好。”
除了为 Apna 的求职门户缓存数据外,Redis Cloud 现在还支持一个 职位订阅服务,主动向订阅各种职业订阅的用户提供有关空缺职位的信息。
此外,作为 Apna 通信服务的一部分,Redis Cloud 每月通过电子邮件、短信、Android RC、WhatsApp 和其他渠道发送超过 10 亿条通知。在某些情况下,招聘人员和招聘方会对这些通信施加时间限制,这会导致偶尔的流量高峰。例如,一些雇主可能要求申请者仅在工作时间通知他们,这可能导致每天上午 9 点后和下午 6 点前出现流量激增。Redis Cloud 会自动扩缩以处理这些可变的通信负载。
Redis Cloud 还通过管理数百万用户的细粒度权限来处理会话管理和身份验证。对于每个用户会话,数据都缓存在 Redis Cloud 中,以控制访问权限、授权访问资源并执行数据隐私要求。Redis Cloud 通过即时访问每个用户订阅源中的数据来保护敏感数据并确保卓越的性能。
市场工程主管 Puneet Kala 总结道:“Redis Cloud 是我们扩展架构的一部分。” “每当我们构建一个新服务时,我们的开发人员都会问:‘我需要 Redis 吗?我需要一个缓存吗?’ 在许多情况下,答案是肯定的。”
最初,Apna 在单体软件架构上构建了其应用程序栈。然而,随着使用量的增加,他们开始迁移到微服务架构——这是一个由松散耦合的服务组成的集合,这些服务可以独立开发和部署,并由小型团队拥有。
Redis Cloud 通过允许开发人员选择适合每个软件部署的性能需求和数据访问需求的数据模型来促进微服务开发。每个微服务都维护自己的数据,并且可以拥有自己的 Redis 集群。
Apna 增长与社区工程主管 Ranveer Singh 解释道:“我们从核心服务开始,例如职位订阅服务和身份验证服务。” “我们正在从那里扩展。目前我们在 Google Cloud 中有 32 个 Redis 集群。我们不必花费时间管理环境,这大大提高了开发人员的生产力。”
随着 Apna 用户群的持续增长,可以轻松添加额外的 Redis Cloud 集群来支持不断增加的活动。Apna 通过 Google Cloud Marketplace 购买了 Redis Enterprise,这使得管理员可以通过 Apna 的 Google Cloud 账户进行购买和请求升级。
“我们喜欢 marketplace 服务,因为 Redis Enterprise 与 Google Cloud 集成得非常好,”Khemka 总结道。“设置简单,网络快速,而且我们知道我们的数据是安全的。创建新集群或修改现有集群非常简单。如果我们需要扩缩,我们知道 Redis 就会正常工作。”