写点什么

Medium 迁移到基于 React.js 和 GraphQL 的架构

  • 2018-05-20
  • 本文字数:794 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Medium 将他们现有的系统迁移到基于 React.js 和 GraphQL 的新架构。正如 Medium 工程师 Sasha T. Solomon 解释的那样,他们努力的两大目标是在不妨碍新功能开发的前提下,让用户逐渐转向使用新系统。

在对现有使用旧技术的代码库进行迁移时,需要做出一些艰难的决定。除了成本之外,他们必须考虑需要多长时间才能让用户感受到新系统的好处,而通常他们都希望不用等到整个迁移结束才能看到这一结果。此外,他们希望服务在整个过程中保持稳定,并且可以继续演化,如通过修复错误或实现新功能。

正如 Solomon 解释的那样,在他们的平台历经五年的开发之后,Medium 确实已经走到了这一步,

将整个系统迁移到新的工具和框架并非易事。在不影响功能开发的同时做到这一点?更难。

Medium 工程团队设计了一条服务迁移路径,旨在让用户尽快开始使用新系统,同时不妨碍现有系统的演化。

迁移的第一步是用 React.js 重写 Medium 的客户端应用程序,并使用 GraphQL 作为现有 API 的接口层。Medium 使用 Apollo Client 作为 GraphQL 客户端框架。

在这个阶段,旧系统和新系统共存,每个系统服务于一组不同的页面。这种方法的好处是不需要完全重写服务器端,也不会影响旧系统新功能的开发。Medium 团队采取的一项关键决策是使用 protocol buffers 将传统 API 描述为可与 GraphQL 交互的 schema。

根据 Solomon 所述,第二阶段迁移即将开始,服务器端代码将被重构为服务,为 GraphQL 层提供数据,GraphQL 层将使用 Sangria 作为服务器端框架。

预计GraphQL 的使用将带来一个巨大的优势,因为它的更加细化的结构直接映射到更模块化和更简单的服务,这反过来提升了它们的性能。新服务将通过 gRPC 与 GraphQL 服务发生交互,新服务可以与旧服务完全独立开发,旧服务仍然为旧 API 提供支持。

查看英文原文 Migrating Medium to React.js and GraphQL

2018-05-20 19:002823
用户头像

发布了 731 篇内容, 共 481.4 次阅读, 收获喜欢 2008 次。

关注

评论

发布
暂无评论
发现更多内容

linux 磁盘挂载

平凡人生

linux 查看操作系统版本

平凡人生

文件打开标识O_CLOEXEC简介

SkyFire

Linux 文件描述符

单体应用、SOA架构、微服务架构有哪些优劣势?

FN0

微服务架构 组件化 SOA

IntelliJ IDEA 的 Code Coverage 测试

HoneyMoose

数据可视化大屏项目,我是如何实现多屏间的数据通信

梁木由

程序员 前端 前端开发

四点聚焦亚马逊2022财报,AWS收入801亿美元,同比增长20%,年度增长率29%

B Impact

2023最新H5前端阅读书单推荐

kcodez

前端 H5 React

架构训练营第10期模块6作业

Geek_4db2d5

内存数据库如何发挥内存优势?

陈橘又青

数据库

架构实战营第10期模块六

刘博

成为海上霸总,全靠5G?

脑极体

5G

Guitar Pro8和谐版安装包下载教程

茶色酒

Guitar Pro8

来看一个 ChatGPT 有关程序员的笑话

HoneyMoose

SpringBoot实现电子文件签字+合同系统

程序员大彬

springboot

在 Asp.Net Core 中什么是认证和授权

newbe36524

C# Kubernetes

OKR之剑·实战篇05:OKR致胜法宝-氛围&业绩双轮驱动(上)

vivo互联网技术

团队管理 OKR

全景剖析阿里云容器网络数据链路(三):Terway ENIIP

阿里巴巴云原生

阿里云 云原生 云原生容器

一文教你如何重新认识用户

蔡农曰

互联网 产品经理 消费者 需求设计

浪潮云:以数据云IBP释放数据要素力量

云计算 数据云

全球化安全生产 & 质量保障体系建设探索

阿里技术

质量保障 安全生产 全球化技术能力

智能合约佛萨奇系统开发,佛萨奇2.0源码搭建

薇電13242772558

富士康CDO史喆:数字化和智能化为何要打造开放系统,引入外部合作?

B Impact

易观千帆 | 12月用户体验GX评测:国有行及股份行持续领跑,农信社用户体验关注提升

易观分析

金融 手机银行

微博系统中”微博评论“的高性能高可用计算架构

Geek_e5f2e5

现实中的量子计算机有望进化成《流量地球2》中的MOSS吗?

博文视点Broadview

FL水果软件2023最新中文版本在哪里下载?

茶色酒

FL Studio21

CleanMyMac4.12.4最新中文版本下载

茶色酒

CleanMyMac X

Java高手速成 | JSP的MVC模式

TiAmo

mvc jsp

统一观测丨如何使用 Prometheus 监控 MySQL

阿里巴巴云原生

MySQL 阿里云 云原生 #Prometheus

订单流量录制与回放探索实践

得物技术

Java 运维 后端 稳定生产

Medium迁移到基于React.js和GraphQL的架构_语言 & 开发_Sergio De Simone_InfoQ精选文章