Medium的系统迁移实践
极客时间编辑部
讲述:丁婵大小:1.08M时长:02:21
最近,协作型媒体平台 Medium 将他们现有的系统迁移到了基于 React.js 和 GraphQL 的新架构上。
Medium 工程师萨莎·所罗门(Sasha T. Solomon)分享了他们的迁移经验,她强调,他们努力的两大目标是在不妨碍新功能开发的前提下,让用户逐渐转向使用新系统。
在对现有使用旧技术的代码库进行迁移时,需要做出一些艰难的决定。除了成本之外,他们必须考虑需要多长时间才能让用户感受到新系统的好处,他们并不希望等到整个迁移结束用户才能看到这一结果。此外,他们希望服务在整个过程中保持稳定,并且可以继续演化。
为此,Medium 工程团队设计了一条服务迁移路径,旨在让用户尽快开始使用新系统,同时不妨碍现有系统的演化。
迁移的第一步是用 React.js 重写 Medium 的客户端应用程序,并使用 GraphQL 作为现有 API 的接口层。Medium 使用 Apollo Client 作为 GraphQL 客户端框架。
在这个阶段,旧系统和新系统共存,每个系统服务于一组不同的页面。这种方法的好处是不需要完全重写服务器端,也不会影响旧系统新功能的开发。Medium 团队采用的一项关键决策是使用 protocol buffers 将传统 API 描述为可与 GraphQL 交互的 schema。
根据所罗门所述,第二阶段迁移即将开始,服务器端代码将被重构为服务,为 GraphQL 层提供数据,而 GraphQL 层将使用 Sangria 作为服务器端框架。
预计 GraphQL 的使用将带来一个巨大的优势,因为它更加细化的结构能直接映射到更模块化和更简单的服务,这反过来提升了它们的性能。同时,新服务将通过 gRPC 与 GraphQL 服务发生交互,新服务可以与旧服务完全独立开发,而旧服务仍然为旧 API 提供支持。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论