netflix graphql Federation 实践参考资料 (二)

netflix graphql Federation 参考技术栈以及系统可靠性保证方法

核心基础设施

  • gateway 
    基于kotlin参考apollo 指南实现,主要是可以更好的利用java 系统,同时利用coroutines 特性 
    0 schema registry 
    是自己开发的,同时也使用了kotlin,利用了netflix 内部基于cassandra 开发的event 
    sourcing 模式的框架,支持方便的版本管理,同时利用了ci、cd,可以实现灵活的控制

开发学习&&经验

为了提高团队的使用netflix 基于graphql java 以及spring boot 开发了DGS framework 可以快速的 
进行graphql 服务的开发以及进行schema 的发布(同时也会计划开源,好消息是github 已经可以看到了)

schema 治理

  • schema 设计流程

 

 


同时netflix 团队拥抱schema 优先的模式,为了解耦实现了通用的graphql 到grpc 的调用

观测

netflix是推崇系统可靠稳定的,比较重视,报警,发现,分析 
对于观测利用了zipkin,以及netflix 内部开发的好多系统

联邦安全

  • 验证 
    所有的需要安全认证,同时对于ggraphql的自省,严格限制内部使用
  • 授权 
    netflix 开发了方便的graphql 指令可以进行安全控制@Secured

面向失败的架构设计

这个属于netflix团队的文化模式

  • 单一目的
  • 无状态服务
  • 需求控制
  • 多区域
  • 基于功能共享

说明

以下的连接都是不错的相关文章,很值得学习下

参考资料

https://netflixtechblog.com/how-netflix-scales-its-api-with-graphql-federation-part-1-ae3557c187e2 
https://netflixtechblog.com/how-netflix-scales-its-api-with-graphql-federation-part-2-bbe71aaec44a 
https://medium.com/netflix-techblog/scaling-event-sourcing-for-netflix-downloads-episode-1-6bc1595c5595 
https://netflixtechblog.com/scaling-event-sourcing-for-netflix-downloads-episode-2-ce1b54d46eec 
https://relay.dev/ 
https://www.apollographql.com/docs/federation/federation-spec/ 
https://www.graphql-java.com/blog/deep-dive-data-fetcher-results/ 
https://www.graphql-java.com/documentation/v15/batching/ 
https://netflixtechblog.com/edgar-solving-mysteries-faster-with-observability-e1a76302c71f 
https://netflixtechblog.com/telltale-netflix-application-monitoring-simplified-5c08bfa780ba 
https://netflixtechblog.com/introducing-atlas-netflixs-primary-telemetry-platform-bd31f4d8ed9a 
https://github.com/Netflix/dgs 
https://github.com/Netflix/dgs-framework 
https://netflix.github.io/dgs/getting-started/

posted on 2020-12-13 12:19  荣锋亮  阅读(456)  评论(0编辑  收藏  举报

导航