clock2021.12.06 09:03
SERVICE
home

Platform Engineering チーム紹介 2021

AUTHOR :   ギックス

Platform

この記事は GiXo アドベントカレンダー の6日目の記事です。
昨日は「Technology Division 紹介 2021」でした。

Technology Div. の堀越です。2021年に買って満足度が最も高かったものは Nature Remo 3 です。これを部屋に設置してからスマホ1つで家電をピッピッと操作できてとても便利です。API も公開されているため、PC のターミナルからコマンド一発でエアコンの起動や温度調整をしたり、日次バッチを組んで朝7:00になったら明かりをつけるスマートホーム化をして遊んだりと可能性は無限大です。自分の生活を便利にしつつ色々な開発も楽しめて一石三鳥な代物でした。(Nature Remo の回し者ではありません)

本記事では Technology Division 内で DI プロダクトの開発を行っている Platform Engineering チーム(以降 Platform Eng.)の紹介をさせていただきます。このチームは今年の夏までは MLOps Division という1つの Division だったのですが、Technology Division に友好的吸収合併されて Technology Division 内の Platform Eng. という1つのチームになりました。昨年のアドベントカレンダーでは MLOps Div. として紹介されています。母体となる Technology Division の Data-Informed 事業への関わり方については昨日に Division Lead の柳が投稿した紹介記事をご参照ください。

なぜ MLOps → Platform Eng.?

チーム名から MLOps が外れた理由は、MLOps を名乗っていたものの業務の9割超は Web アプリケーションの開発= DI プロダクトの開発となっていたためです。名が体を表さなくなった、ということですね。

チームの開発業務の変化

チームの発足当初は社内向け機械学習基盤である Refeed や機械学習によってエリアを分析するための示唆出しを行うトチカチといった機械学習を軸とするアプリケーション開発がメインでした。しかし、トチカチや Refeed と並行して開発されていたマイグルが自社プロダクトとして成長軌道に乗りかかっていたことから、マイグルという DI プロダクトの成長を加速させるための開発業務をメインで行うチームという方向に舵を切ることになり現在に至ります。(トチカチや Refeed の開発・運用業務も引き続き担当しています)

マイグルのようにユーザーの回遊(観光や買い物)を促す仕組みとなるアプリケーションの開発で必要とされるのは、仕組みのパーツとなる個々の機能実装とそれらを束ねるための設計であり、機械学習はユーザビリティを高めたり新しい体験を生み出したりするための手段の1つです。機械学習が必要となる領域は全体の5%にも満たないのが現状です。

とはいっても、マイグルを利用したキャンペーンは増え続けており(最近5万ユーザーを突破)、直近ではプロダクトから取得するログの整備も進めているため、ログデータを活用したプロダクトの改善やキャンペーン企画者へのフィードバック拡充を検討するにあたって機械学習を利用する領域も少しずつ増えていくのかもしれません。この辺は Design & Science Div. と協力して対応を進めている領域です。

Platform Eng. = 観光回遊プラットフォーム SaaS 開発

プラットフォームという言葉の意味は幅広いですが、Platform Eng. が現在注力していることは「観光回遊のプラットフォーム SaaS」となる DI プロダクトの開発です。アドベントカレンダー初日の記事で紹介した下図に当てはめると、Technology Div. と DI プロダクトが交わる青い四角の領域になります。DI プロダクトはクライアントの共通課題を解決するためのプロダクトを提供するという立ち位置のため、プラットフォーム(共通課題を解決するための基盤)という単語が選ばれました。

DI サービスと Division の関係

そのため Platform Eng. では「クライアントの個別課題を解決するための開発」は基本的に行っていません。

マイグル V1 と V2

実はマイグルには V1 と V2 があります。V1 をアップグレードしたのが V2 というわけではなく、「クライアントの回遊促進における個別課題を解決するためのマイグルが V1 」「クライアントの回遊促進における共通課題を解決するためのマイグルが V2 」になっています。言葉を変えると、「企画者の個別の要望に応じて回遊促進キャンペーンをカスタマイズ可能にしているのが V1 」「回遊促進キャンペーンに必要な機能をパッケージ化して多数のキャンペーンを同時展開可能にしているのが V2 」です。
Platform Eng. がメインで開発を担当しているのはマイグル V2 となりますが、共通機能は V1 と V2 で互いの実装を共有したり部分的に互いの機能実装に加わったりするため、完全分業というわけではありません。

現在の観光回遊プラットフォームが提供するもの

まだまだ開発途上ですが、Platform Eng. が開発している観光回遊プラットフォームが提供するサービスは

  • パッケージ化された回遊促進キャンペーンを多数同時展開可能な Web アプリケーション(マイグル V2)
  • 企画者自身がキャンペーン作成やデータ登録をできる管理用 Web アプリケーション(マイグルマネージメントシステム、通称 MMS V2)

のセットです。どちらも Web アプリケーションのため、PC と Web ブラウザとインターネット接続さえあればすぐに利用可能です。

MMS V2 画面イメージ
MMS V2 から作成された
実際のキャンペーン画面

現在のマイグル V2 は企画者のプラットフォームと接続してキャンペーンを実施することが多いです。プラットフォームが iOS/Android(ネイティブアプリ)の場合は Webview or リンクを使用してマイグル V2 に接続、Web ページの場合はリンクを使用して接続となります。しかしマイグル V2 単体でもキャンペーンの開催は可能なため、企画者が独自のプラットフォームを持っていなくても問題はありません。
2021年12月6日現在は、主催者の Web ページからのリンク接続と JR 西日本の MaaS アプリである WESTER からの Webview による接続の両方でキャンペーンを複数開催しています。

アプリケーション構成は下記のようなイメージです。(概略図。一部詳細を省略しています)

マイグル V2 と MMS V2 のアプリケーション構成概略
アプリケーション構成概略

開発を進めていく上での技術的な課題もいろいろあるため、その辺の詳細は別の記事でご紹介できればと思います。

Platform Eng. の業務と課題

Platform Eng. の2021年の活動は下記のようなタイムラインでした。

「開発してリリース」を x 3 ですね。現在の体制はフロントエンド担当のエンジニアが2人、バックエンド担当のエンジニアが2人です。
マイグルの引き合いが順調に増えていることもあり、今年の4月頃にスタートしたマイグル V2 とその管理システムである MMS V2 の開発が活発です。当面は マイグル V2 と MMS V2 を継続開発して機能拡張やらログの拡充とモニタリングやらパフォーマンスの改善やら行っていく予定です。(マイグル V1 も継続して開発を行っています)

マイグル V2 の開発をスタートして約8ヶ月、リリースして約3ヶ月経ちましたが、たくさんの「やりたいこと」に加えてたくさんの「課題」も発生しています。1 -> 10 のための機能開発も増えてきましたが、まだまだ 0->1 の開発も多く残っています。下記はロードマップ上で開発を予定している機能の一部です。

  • 回遊する際のおすすめスポットやルートを提示するための地図機能
  • 対象スポットに到達したことをアプリを介して証明するための新機能(スマートデバイスとの接続、GPS、行動記録の利用など。現在は株式会社コト様の Digishot と QR コードを利用可能)
  • キャンペーン参加店舗や観光スポットの担当者自らコンテンツをカスタマイズする機能
モザイク強めですが直近半年のロードマップはほぼ埋まっています

おわりに

本記事では Platform Eng. が担当してきた開発業務の変化と現在の活動について紹介させていただきました。
弊チームの DI プロダクト(観光回遊プラットフォーム)に少しでも興味をもっていただけたら幸いです。もう少し詳細を知りたい方がいましたらぜひお問い合わせください。採用についてはカジュアル面談も実施しています。採用情報はこちら

明日は Technology Div. の緒方より、「データ受領で気を付けるポイント」を公開予定です。


Go Horikoshi
Data-Informed 事業本部 / Technology Div. 所属
フロントエンドエンジニア。React, TypeScript を中心とした Web フロントエンドについて発信していきます。最近の興味はサーバーサイド JavaScript(エッジや Service Worker)とコード生成による開発の効率化です。

SERVICE