|
Netflix は、GraphQL 実装を簡素化するためにスタンドアロンおよびフェデレーテッド GraphQL サービス向けに開発されたコンテンツ ストリーミング サービスである Domain Graph Service (DGS) フレームワークをオープンソース化しました。 Netflixのソフトウェアエンジニアであるポール・バッカー氏とカビタ・スリニバサン氏はブログ記事で次のように書いている。「このプロジェクトをオープンソース化することで、JavaとGraphQLのコミュニティに貢献し、フレームワークを使用するすべての人から学び、協力して、将来的にDGSをさらに改善していきたいと考えています。」 GraphQLは、もともとFacebook社内で開発されたオープンソースのAPIクエリ言語です。APIは、既存のデータに対してクエリを実行するためのサーバーサイドランタイムです。GraphQL Foundationの説明によると、この言語はRESTアーキテクチャに代わるものであり、開発者の生産性向上とデータ転送量の最小化を目指しています。 GraphQLは、Credit Karma、GitHub、Intuit、PayPal、The New York Timesなど、多くの組織の本番環境で使用されています。Netflixも、コンテンツエンジニアリング部門をサポートするために、システムへのデータ抽出にGraphQLのデータクエリおよび操作言語として利用しています。 DGS フレームワークが必要な理由は何ですか? Netflixは2019年にフェデレーテッドGraphQLアーキテクチャの実装を開始しました。この新しいアーキテクチャへの移行に伴い、Netflixの多くのバックエンドチームはJavaエコシステム内でGraphQLを採用する必要がありました。Netflixは既に、バックエンド開発用の高速アプリケーション開発フレームワークであるSpring Bootを標準化していました。同社のフレームワークはSpring Boot上に構築されていたため、この新しいフェデレーテッドアーキテクチャを成功させるには、Spring Boot内でGraphQLの優れた開発エクスペリエンスを提供する必要がありました。 DGS フレームワークの主な機能は次のとおりです。
Spring Boot上に構築され、graphql-javaライブラリを活用したDGSフレームワークは、当初Netflix社内で使用され、トレース、ログ、メトリクスのためのNetflixエコシステムとの統合に重点を置いていました。しかし、フレームワークを適切にモジュール化することも最優先事項でした。Netflixが構築したフレームワークの多くは、実際にはNetflix固有のものではありません。本質的には、スタンドアロンおよびフェデレーション型のGraphQLサービスを構築するための便利な方法です。 このフレームワークには多くの Kotlin コードが含まれていますが、Java で使用できますか? DGSフレームワークは主にKotlinで記述されていますが、主にJava向けに設計されており、フレームワークのユーザーのほとんどはJavaを使用しています。もちろん、Kotlinでも問題なく動作します。 Netflix はこのフレームワークのブランチで実行されますか? いいえ、Netflixも同じOSSコンポーネントを使用しています。Netflixは分散トレース、ロギング、メトリクスなどのための追加モジュールを追加しており、同様の統合を独自のインフラストラクチャに実装する方法についてのドキュメントもご用意しています。 実稼働環境での使用の準備はできていますか? はい!Netflixでは、オープンソース化される1年半前から、様々な部門でSeleniumを使用しており、大規模なプロジェクトにも使用していました。その後も多くのディストリビューションをリリースし、新機能の追加やバグ修正などを行い、非常に安定したプラットフォームとなっています。 この記事はOSCHINAから転載したものです。 記事タイトル: NetflixがSpring Boot向けGraphQLフレームワークDGSをオープンソース化 この記事のアドレス: https://www.oschina.net/news/130340/open-sourcing-the-netflix-domain-graph-service-framework |