「ニュースパス」開発でのサーバーレス活用、「ServerlessConf Tokyo」レポート(後編)
Gunosyが語る「サーバーレス」とモバイルアプリのいい関係
2016年10月13日 07時00分更新
10月1日に開催された技術カンファレンス「ServerlessConf Tokyo」。情報キュレーションサービスを提供するGunosy(グノシー)の松本勇気氏は、モバイルエンジニアの視点から見たサーバーレスの利点、さらに今年6月にKDDIと共同リリースした新しいモバイルニュースアプリ「ニュースパス」においてどのように活用しているのかを紹介した。
サーバーサイドの処理が「クライアントサイド+サーバーレス」へ移っている
Gunosyでは現在、ニュースパスに限らず、新規開発案件の多くでサーバーレスアーキテクチャを採用しているという。「『新技術はひたすら試せ』がGunosyのモットー。サーバーレスについても『それでできることは何でもやってしまおう』と考えている」。
松本氏は、クライアントデバイスの急速な変化に伴って、現在では「サーバーサイドだけを見ても『最適なアーキテクチャ』は組めなくなっている」と指摘する。これまでサーバーサイドで処理していたものの一部は、クライアントサイドに移したほうがむしろ効率的である、という意味だ。
その理由の1つめは「リソース」だ。旧来のモバイルアプリは、モバイルデバイスのCPU/メモリリソースが少なかったため、ほとんどの処理をサーバーサイドで実行し、クライアントサイドではほぼその結果を「表示する」だけ、というアーキテクチャが主流だった。しかし、現在のモバイルデバイスは、PCにも劣らない高性能なCPUと大容量のメモリを搭載している。それならば、これを活用しない手はない。
「クライアント側のリソースがとても大きくなっている。“100台のサーバーと1000万台のクライアント”で構成される現在のモバイルアプリを考えると、たとえばログの加工処理など、単純な処理ならばクライアント側のリソースももう少しうまく活用できるのでは、と考えた」
そのほかにも「プラットフォーム間の差異の吸収」「サブシステムの認証/認可」といった部分も、現在ではクライアントサイドで処理するほうが効率的だという。これらをサーバーサイドで処理しようとすれば、iOS/Android間(さらにはそのバージョン間)の細かな差異を埋めるために複雑なロジックになり、また毎回アクセストークンを発行して個々のマイクロサービスへのアクセス権限を管理しなければならないからだ。
モバイルクライアント向けのSDKを通じて、こうした処理がクライアントサイドで容易に扱えるようになってきたのが近年の動きだと、松本氏は説明する。
「サーバーレス(という動き)が始まって、モバイル(クライアント)の役割が変化してきた。ロジックをクライアントサイドに持ってきて、プラットフォーム間の差異を吸収することが可能になり、また、ログ加工や画像処理なども実行できるようになっている」
Gunosyが開発した2つのアプリを見比べると、モバイルの「役割の変化」がよく理解できるはずだ。2013年から提供しているGunosyアプリは従来型のアーキテクチャ、すなわちほとんどの処理をサーバーサイドで行うものだが、今年リリースしたニュースパスでは、多くの処理がクライアントサイドに移されている。
「かつては多くのロジックがサーバーサイドにあったのが、『クライアント+サーバーレス』に移ってきた。Gunosyやニュースパスの場合、コンテンツの推薦、データ解析といったコア(コアコンピタンス)の開発にサーバーサイドのエンジニアリソースを寄せて、それ以外の部分はなるべくクライアントサイドで巻き取ったほうがいい。ニュースパスの開発では、それが実現できている」