Customer Case Study:ヤフー株式会社

Kongによる統合APIプラットフォームで
サービス開発の生産性向上を促進

日本最大級のポータルサイト「Yahoo! JAPAN」を運営するヤフー株式会社は、検索、オークション、ニュース、天気、スポーツ、メール、ショッピングなど100を超えるサービスを展開。そのアクティブユーザー数は月間110億人(MAU)、ページビュー数は月間700億(PV)を超え、日本最大級の利用者規模を有しています。中核となるネットサービスの開発生産性を向上させることがますます重要になる中で、2018年、ヤフー株式会社システム統括本部は、Kong Enterprise Editionによって、自社で開発した膨大な数のAPIを集約するプラットフォームを構築。開発生産性だけでなくセキュリティや可用性を向上させる新機能を使いやすく提供してサービス開発に貢献しています。

業種

  • Webサービスプロバイダー

ソリューション

  • Kong Enterprise Edition
  • エンタープライズレベルのサポート

課題

  • 優れたプラットフォーム機能の提供によるサービス開発チームのサポート
  • サービス開発のさらなる生産性向上
  • APIの集中管理および認証/認可などの機能の共通化



導入効果

  • APIゲートウェイとメッセージキュー、FaaSなどの組み合わせによる開発と運用の生産性向上
  • 膨大な数のAPIの集中管理と認証・認可などの機能の共通化
  • マルチテナント機能により多数のサービスが利用する統一プラットフォームの提供
  • サーキットブレーカーやカナリアリリースなどの新機能の提供

サービス開発の生産性向上に向けた先進的プラットフォーム機能の提供

日本最大級のポータルサイト「Yahoo! JAPAN」を通じて、100以上のサービスを提供するヤフー株式会社において、システム統括本部プラットフォーム開発本部はサービス開発の生産性を高めることをミッションとしており、数々のプラットフォーム機能を提供してきました。まずは、PaaS (Platform as as Service) の利用が増えるにつれて必要となった、IPアドレス非依存の通信プラットフォームとして「メッセージングキューイング」の機能を、2017年にサービス開発チームに向けてリリースしました。これは、オープンソースの「Apache Pulsar」をベースとしたもので、ヤフーで求められるマルチテナント性やセキュリティ、スケーラビリティに関する高度な要件をクリアし、サービス開発チームが安心して使える通信ンフラとしてヤフー内部で定着しています。そして「サービス開発チームのサーバー運用の負荷を軽減したい」という思いから、AWS (Amazon Web Services) のサーバーレスコンピュティングサービス「Lambda」と同様の「Funcition as a Service」の機能を独自に構築し提供しています。これはオープンソースの「OpenWhisk」をベースとして、やはりヤフーで求められるマルチテナント性やセキュリティの要件をクリアしたもので、開発者はユーザインタフェースに通じて直接プログラムを記述する、あるいは作成済みのプログラムをアップロードできるという使い勝手の良さを実現しています。「世の中の一般企業は外部のパブリッククラウドを活用して新技術を素早く手に入れることができます。しかしヤフーはセキュリティ関連の基準が高いため、外部のクラウドサービスではセキュリティ基準にあわず、従量課金制のサービスでは想定外のコストが必要になることがあります。一方で、当部門が提供するプラットフォームは、セキュリティの基準をクリアしているので開発者が意識せずにサービス開発に集中することができます。」とシステム統括本部 プラットフォーム開発本部 コンピューティングプラットフォーム部 部長 福田奏 は語っています。

ヤフーの統合APIプラットフォームとしてKongのソリューションを採用

常に新しいソフトウェア技術を取り入れるヤフーにおいては、各種のサービスからAPIを提供することはあたりまえのことでした。約2500人の開発者がPHP、Java、Node.js、Goなどの多様な言語で開発したサービスを連携するとなると、やはりAPIで、ということになり、近年トレンドになりつつある「マイクロサービス」のようなサービスの実装も自然に増えました。結果的に、ヤフー社内には数百以上のAPIが存在するとともに、これらのAPIを集中管理することが求められるようになりました。このような経緯の中で、APIを集中管理する「APIゲートウェイ」の検討が始まりました。「複数のAPIゲートウェイ製品について比較検討しました。オンプレミスで動くこと、社内のテクノロジーとインテグレーションしやすいこと、自分たちのユースケースにあっていて必要な機能を実装するコストが低いこと、の3点をみたときにKongがいちばん適切だと判断しました。KongはAPIマネジメントのソフトウェアとしては若いですが、3scaleやApigeeと比較してAPIゲートウェイの機能がしっかりしていた印象があります。また、導入するにあたってはKongの中身をよく知るために、サンフランシスコの米Kong社に行って深掘りした技術の話をしました、」(福田部長)。このような経緯を経て2018年春にはKongによる新しいAPIプラットフォームを構築しました。

「近年、ヤフーのシステムアーキテクチャがマイクロサービスへ向かう流れの中でAPIの集中管理が必要になり、複数のAPIゲートウェイ製品について比較検討しました。オンプレミスで動くこと、弊社内のテクノロジーとインテグレーションしやすいことなどの理由からKongがいちばん適切だと判断しました。」

ヤフー株式会社 システム統括本部 プラットフォーム開発本部 コンピューティングプラットフォーム
長  福田奏

APIプラットフォームによって変わるサービスの開発と運用

ヤフーが構築したAPIプラットフォームの基本機能は、APIを一元的に集約しサービス開発者のアプリケーションからAPIのエンドポイントにルーティングすることです。このようなAPIの集約によって、ヤフー社内に数多く存在するAPIをサービス開発者が発見し利用しやすくなります。次に認証・認可の機能を共通化しAPIプラットフォームで吸収することでAPIごとに認証・認可の機能を実装しなくて済むようにしています。これによってサービス開発者はサービスそのものの実装に集中できるようになります。さらに新機能として、「カナリアリリース」によって旧環境から新しい環境に安全に移行することができるようにするとともに、障害が発生したAPIサーバーを自動的に切り離して稼働しているサーバーでサービスを継続する「サーキットブレーカー」によってサービスの可用性が高まることが期待できます。一方で、今回構築したAPIプラットフォームにおいては、基本的に全てのAPIが集約されるため、万が一障害が発生すると数多くのサービスに影響を与えかねません。Kongは標準でクラスタリング機能を提供しており、基本的にSPOF(Single Point Of Failure)はありませんが、ヤフーのようにダウンが許されない環境において重要になるのはソフトウェアに関するサポートです。このようなクリティカルなサポートが必要なヤフーが今回導入したのは、オープンソースのKongではなくソフトウェアとサポートが一体化した「Kong Enterprise Edition」サブスクリプリョンです。「サポートがあることが大きいです。APIゲートウェイを導入するところが重要かつクリティカルな場所なので、何かトラブルなどあった場合のサポート体制をしっかり構築しておく必要があります。だからKong Enterprise Edition を契約しました。当初は、全社で使う規模の大きいAPIゲートウェイとして導入するので、万が一問題があった場合でも素早い対応ができないと、サービスに支障をきたしてしまいます。実際にヤフーからKongに対して改善点を指摘して対応してもらっています。これはサポートつきのEnterprise版を導入して良かったところだと思います。」(福田部長)。

APIプラットフォームの今後について

ヤフーが構築したAPIプラットフォームは今後も継続的な拡張が計画されています。まずは、今回構築したAPIゲートウェイとFaaSを統合することです。これはKongが提供するOpenWhiskのプラグインを用いることで実現する予定です。また、福田部長は、「最近のトレンドで大きいインパクトがあるのはKubernetesやサービスメッシュです。マイクロサービスが認知されてきていますが、世界ではさらに先を行っていてサービスメッシュのアーキテクチャが注目されています。このような流れを見据えながら、サービスの開発生産性を向上させる道具を提供し続けていくことが我々の部門の使命だと考えています。」と話しています。最新のテクノロジーを駆使したサービスによってビジネスを成長させているヤフーの中で、サービス開発を加速させるプラットフォームは今後もさらなる成長を続けていきます。