3パターンある可視化ツールに至るデータの流れ
このようにヤフー・データソリューションでは、DS.INSIGHT、DS.GALLERY、ユーザーによる可視化の3パターンの可視化ツールに至るデータの流れを用意している。DS.INSIGHTは、Nuxtで作られた動的Webアプリケーションなので、BFF(Backends For Frontends)でデータ取得APIを叩く構成になっている。データ可視化には主にHighchartsというグラフを簡単に記述できるJavaScriptのライブラリを使っている。「開発自体はTypeScriptで行っています」(猪目氏)
次のDS.GALLERYは、FaaS(Function as a Service)で集計プログラムを定期実行している。DS.GALLERYは週1回と月1回の更新なので、それに合わせてこのプログラムを更新する。出力データはCMSに配置し、サイトから読み込む構成になっている。この仕組みの良い点は、データをあらかじめ用意しているので、シンプルな構成になっていること。そしてサーバーのメンテナンスも不要なことである。
では、具体的にDS.INSIGHTのシステム構成はどのようになっているのか。DS.INSIGHTはユーザーの興味関心を分析する機能、位置情報に関する分析をする機能、世の中のトレンドを分析する機能など、さまざまな機能が提供されている。各機能は個別のNuxtプロジェクトで構成されており、各BFFが裏側にあるAPI群を叩くという形を取っている。「一言で言うと、DS.INSIGHTはNuxtプロジェクトの集合体」と猪目氏は言い切る。
このように、機能ごとにリポジトリやメンバーも分かれている構成にするメリットは、フットワーク軽く新機能の追加や修正が可能になること。8月下旬に急上昇トピックやトレンドを可視化分析できる「DS.INSIGHT Trend」がリリースされた。もしDS.INSIGHTが巨大なホストプロジェクトにすべての機能が入り、そこでリポジトリをすべて管理している構成であれば、「このようにフットワーク軽くリリースできず、今も開発中だったかもしれない」と猪目氏は明かす。
一方で、各機能を個別のNuxtプロジェクトとして開発するので、システム内で統一感がなくなるのでは」という懸念もある。それについて猪目氏は、「デザインシステムを用意することで、全プロジェクト一貫性のあるデザインを実現している」と言う。