このページの本文へ

前へ 1 2 次へ

クラウドから「エッジ」への動きが加速:Build/de:code 2019レポート 第14回

de:code 2019でFIXERの社内カフェアプリの全貌を紹介

PWA、ML Ops、マイクロサービス――最も”今どき”なスマホアプリ開発を実演

2019年06月20日 11時00分更新

文● 大平かづみ 編集 ● 羽野/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

CI/CDを利用した継続的な開発

FIXERの鈴木章太郎さん(左)

 さて、PWAを用いたアプリ実装の裏で、その処理の実態はAPIとして実装されたバックエンドが担います。

 昨今注目されているマイクロサービスについてのメリット・デメリットを踏まえ、FIXER Cafeアプリのバックエンドは、小規模からのスタートと機能追加に適したマイクロサービスの構成を採用し、AKS(Azure Kubernetes Service)上にコンテナとして実装することにしたとのこと。

FIXER Cafeアプリが採用するマイクロサービスアーキテクチャ

 ここで、アプリへリコメンド機能を追加するデモ。しかし、なんとリコメンドのボタンが表示されないハプニング(?)が発生!急遽壇上でデバッグを試みます。実際にVisual Studio Codeでデバッグ実行し、修正をリポジトリにpushする。ここでも連携されたAzure Pipelinesによるビルド・リリースが行われ、晴れて機能追加が成功したのでした。

Azure Pipelinesによるビルド・リリース

無事、アプリにレコメンド機能が追加された

Automated MLを用いた継続的な機械学習の実現

 ところで、このFIXER Cafeアプリのリコメンド機能は、ユーザーの購入履歴をもとに機械学習で推測しているのだそうです。

 機械学習を行うには、データサイエンティストが持つ専門の知識と経験をもとにアルゴリズムの選定やハイパーパラメータのチューニングを行う必要があります。しかし、昨今ではこの専門的な知識を自動で調整してくれる仕組みが確立されてきています。例えば、Azureの機械学習サービスAzure Machine Learning Serviceには「Automated machine learning(Automated ML)」という自動機械学習機能があり、Azure Notebooksと組み合わせることで統合的に開発ができます。

 Azure Notebooksは、Azure上にホストされたJupyter notebookのSaaSであり、Azure Machine Learning Serviceと連携できるほか、Azure上で計算リソースを調達して計算を実行することもできます。また、Automated MLを実装するには、Azure Machine Learning SDKを用い、たった十数行のコードで実装できるそうです。

Azure Notebooks

Azure Machine Learning SDKを使えば数十行のコードでAutomated MLを実装できる

 FIXER Cafeのシステムでは、こうして作成した学習モデルをAzure Machine Learning Serviceでコンテナイメージとして保存しておき、Azure Pipelinesを使って前述のAKS上のバックエンドに組み込みリリースすることができるCI/CDを構築しています(これはMLOpsと呼ばれます)。

コンテナイメージとして保存された学習モデルをAzure PipelinesでAKSのバックエンドに組み込みリリースする

 Automated MLの詳細は、今回のスピーカーの一人である千賀さんの解説ブログ記事「【de:code 2019連動】ML最前線!MLOpsとAutomated MLによる機械学習モデルの自動開発 | cloud.config Tech Blog」をお読みください。

FIXERの千賀大司さん(左)と山本和貴さん(右)

* * *

 フロントエンドからバックエンド、そして機械学習までの多くの要素が詰め込まれた盛りだくさんのセッションでした。マイクロソフトだけにとどまらず、適材適所で技術を採用していくことは、短期間かつ継続的にアイディアを実現するために有効な手段であり、今ではその材料が出そろってきていると感じました。うまく活用できるようキャッチアップしていきたいものです。

 なお、同セッションのVue.js+Nuxt.js+Firebaseのアプリの作り方詳細については、今回のスピーカーの一人である市岡さんが登壇するこちらのイベント(6月27日開催)で紹介されるそうです。

■関連サイト

前へ 1 2 次へ

カテゴリートップへ

この連載の記事