BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース PayPalがGraphQLを採用し、開発者の生産性向上を実現

PayPalがGraphQLを採用し、開発者の生産性向上を実現

原文(投稿日:2021/10/05)へのリンク

PayPalは先頃、近年のPayPalにおけるGraphQLの採用について解説したブログ記事を公開した。2018年のCheckoutアプリケーションひとつから始まった導入はその後、GraphQLフェデレーションを使用した統合型のフェデレーションAPIを構成するまでに至っている。組織全体に及ぶGraphSQLの採用は、開発者の生産性向上やアプリケーション提供の迅速化といった成果を生み出した。

記事では、同社シニアソフトウェアエンジニアのShruti Kapoor氏が、PayPalにおけるGraphQLの現状について説明している。

GraphQLは現在、PayPal内のいくつかのプロダクションアプリで使用されています。UIアプリの新規開発ではGraphQLの使用がデフォルトパターンになっていて、既存アプリの多くがGraphQLへのマイグレーションプロセスにあります。IdentityやPayments、Complianceといった共通プラットフォームでもGraphQLが使われて、すべてのPayPalプロダクトにわたって共通的なエクスペリエンスを提供しています。API構築にもGraphQLが使われ始めていて、Braintreeは公開GraphQL APIをリリースしました。

PayPalでは長い間、組織内のGraphQL採用をサポートするツールや標準の構築を続けてきており、GraphQLの命名規約標準、GraphQLの型、ヘッダ標準、ディレクティブ標準、エラー処理テクニックを確立した。同社のツーリングには、共有ライブラリやテンプレート、サンプル、学習リソースなどが含まれる。さらには、専用のSlackチャネルを通じた社内GraphQLコミュニティの育成も行っている。

PayPalでは現在、Apollo Federationを使った単一の統合グラフゲートウェイを構築中である。同じようなソリューションは、以前Netflixも実装している。この開発の一環として、PayPalのバックエンド開発チームの一部は、生産性面におけるメリットの認識を基に、GraphQLを使用してAPIを公開する決定を下している。この傾向は、アプリケーション開発の迅速化のためにGraphQLマイクロサービスを取り入れたNetflixと同じものだ。

GraphQLを使用することで、PayPalには多くのメリットがある、とKapoor氏は述べている。最大のメリットは開発者の生産性だ。GraphiQLPlaygroundといったツールが、APIを試用したり、ドキュメントの検索を支援したりすることによって、開発者の生産性を向上してくれる。生産性の向上はプロダクト提供の迅速化にもつながる、とKapoor氏は説明する。

機能の更新や一致性の維持を難しくしていた、数多くのパーツを取り除くことができました。それまでは、ユーザである販売業者が作業を行うために、言語毎のSDKを提供する必要があったのですが、現在は、使用する言語に関係なく統合可能なGraphQLのエンドポイントのみを提供すればよくなりました。

その一方でPayPalは、GraphQLの採用に伴う課題にも直面している。そのひとつは、GraphQLにおける標準の欠如である。"それによって、チーム間で作業の重複が発生したり、エラーの処理や通知の方法が異なっていたり、認証処理が標準的な方法から逸脱していたりしています。" さらに、GraphQLクエリを適切に処理できるように、REST構築用の社内ツールを対応させなければならない、という課題もある。

PayPalがGraphQLを最初に使用したのは、CheckoutアプリをGraphQLで開発した時だった。GraphQLを使用することのメリットを認めた開発チームが、組織内にそれを広めたのだ。

そのためKapoor氏は、GraphQLの導入を望んでいる他の組織に対しても、まずは同じように"自分たちのエンタープライズアーキテクチャにGraphQLがフィットすることを示す"デモアプリを開発することを提唱している。さらにKapoor氏は、組織的な成功を実現する手段として、標準の確立を支援し、ガイダンスや学習用リソースを提供するワークグループの立ち上げを提案する。

GraphQLは、データのクエリおよび操作を行うAPI用のオープンソースの言語であり、既存データに対するクエリを実行するランタイムである。Facebook社内で2012年に開発された後、2015年になって一般向けにリリースされた。従来的なREST APIに代わるものとして、近年では注目を集めている。その中心的根拠となっているのは、1回のオペレーションでその画面に必要なデータセットを正確にクエリ可能だという、フロントエンド開発者にとっての柔軟性の向上である。

この記事に星をつける

おすすめ度
スタイル

BT