找到一份合适的工作或找到合适的人来担任一份工作并不是一件容易的事。这从未易如反掌,但在当今不断变化且日益不确定的商业和全球环境中,事情变得更加复杂,风险也更高。
这就是 Glassdoor 吸引数百万每月独立访客的地方。Glassdoor 拥有数百万个工作清单和评论、工资和见解的数据库。该公司总是在寻找开发人员利用这些信息来改善其客户体验,同时提高其提供这些体验能力的新方法。案例:Glassdoor 迅速采用了企业 GraphQL 标准 Apollo GraphQL。
为什么选择 GraphQL?Glassdoor 和许多其他公司发现,API 现状——REST——在对新应用和服务的需求持续不断(也就是说,每个想要保持竞争力的公司都适用)的环境中效果不佳。作为一种过程 API 技术,REST 要求开发人员提前协调每个用例。前端团队必须不断向后端团队索取新的端点,这会让开发过程相对缓慢,并让公司处于巨大的竞争劣势。
“它实际上是一个跨内容模型,您可以在其中保存跨平台的实体类型和实体 ID”
桑卡 · 帕塔克 Glassdoor 工程总监
借助其声明式方法,GraphQL 通过允许服务层描述它拥有的数据且允许客户端描述他们需要的数据(仅需要的数据)来提高开发人员的生产力。此“图形”模型不仅使开发人员不必编写 REST 端点,还能让他们通过统一的、始终最新的目录(提供对其所有数据的访问)更有效、更协作地开展工作。
这种灵活性和敏捷性使开发人员能够更智能、更快速地工作,这正是 Glassdoor 最初吸引 GraphQL 的地方。对于 GraphQL 的受管理的、可扩展至企业规模的版本的需求使 Glassdoor 吸引了 Apollo。
Glassdoor 于去年夏末开始使用 Apollo GraphQL,在这个时期内,Glassdoor 考虑将工作相关数据加入一项全新的 Native Collections 项目,该项目将允许用户保存各种相关工作搜索内容,例如薪酬数据、雇主评价和面试信息。Glassdoor 驻旧金山工程主管 Sankha Pathak 表示:“这是一个跨内容模型,其中包含您在各个平台上保存的实体类型和实体 ID。”
在这一点上,Glassdoor 已越来越多地依赖 Apollo GraphQL,该公司也开始采用 Apollo 的联合架构进行概念验证。
Glassdoor 首席技术官 Bhawna Singh 表示:“当我们在更多解决方案中开始使用 GraphQL 时,我们必须解决如何扩展开发和部署。”“对于我们进一步采用这项技术而言,确保我们的核心内容团队可以拥有各自的内容模式,同时我们的跨内容团队可以编写高效的查询来提取此类内容至关重要,Apollo 的联合图谱能帮助我们实现这一点。”
“当我们在更多解决方案中开始使用 GraphQL 时,我们必须解决如何扩展开发和部署”
Bhawna Singh Glassdoor 首席技术官
在生产级硬件上进行的测试运行良好。Pathak 表示:“调用次数少,性能高,并且‘联接’的效果很棒。”
追踪和跟踪缺口
但唯独缺少一件事。
Pathak 说:“我们没有足够的追踪,或者无法通过日志和问题来追踪。”他补充说,缺乏追踪和跟踪功能是 GraphQL 中最大的缺口之一(也是转向 GraphQL Apollo 实现的最大动力之一)。
Glassdoor 已经为内容图谱上的隔离查询设置了追踪指标,但开发人员无法获得跨子图的联接查询的关键性能数据。Pathak 说,他和他的团队在去年秋天的 Apollo 峰会上听说了有关 Apollo GraphQL Manager(现称 Apollo Studio)的很多好消息,并想在质量保证/阶段环境中尝试一下。
峰会之后事情发展的速度——从讨论到签订合同仅仅几个月的时间——证明了 Glassdoor 对 GraphQL 尤其是 Apollo 的信心。
“一切都进行得很快,因为我们知道——基于我们在开发者生产力和成本效率方面已经看到的成功——Apollo GraphQL 就是我们想要采取的方式。”帕特克说。“我在 2019 年 10 月的会议期间与 Apollo 的工作人员开始了讨论;我们调整了所有内容,并在 2020 年 2 月拿出一份合同。我们已经在生产中。我们对任何到来的请求或增长的访问量已经实现了自动提醒系统自动化。在提交之前,我们现在能够运行预模式验证检查,这是非常好的,因为这是我们在联合之前遇到的一大困难。我们还创建了一些 GraphQL 扩展,以支持回呼到最近已知有效模式。”
帕特克和他的团队在此过程中与 Apollo GraphQL 团队进行了密切的合作——帕特克指出,这种合作水平和质量是 Glassdoor 扩大使用 Apollo 工具的关键。
帕特克说:“Apollo 非常致力于帮助其客户发展和成长。”“我们已经与 Apollo 团队建立了非常紧密的合作关系。我们几乎每天都与他们交谈,这对确保我们能够在好时期和困难时期帮助我们的客户至关重要。”
下一篇故事
分享文章