ここから本文です

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

6/20(木) 11:00配信

アスキー

本稿では、先日開催された de:code 2019の中から、FIXERの横山依子さん、鈴木章太郎さん、市岡 由偉さん、千賀大司さんによるセッション「Vue.jsとFirebase、AKSでのクラウドネイティブなスマホアプリの作り方 + ML OpsによるAIモデルの作り方」をレポートします。
 本稿では、先日開催された de:code 2019の中から、FIXERの横山依子さん、鈴木章太郎さん、市岡 由偉さん、千賀大司さんによるセッション「Vue.jsとFirebase、AKSでのクラウドネイティブなスマホアプリの作り方 + ML OpsによるAIモデルの作り方」をレポートします。
 
 このセッションでは、FIXER社内で運用を開始したというFIXER Cafeのスマートフォンアプリを例に、アプリケーションを素早く、且つ継続的に開発する術について紹介されました。
 

【もっと写真を見る】

 ここでの開発のポイントは3点。
 
 また、これらはAzureに限ることなく一般的な開発手法であるものの、Azureを使うことによってより効率的に実現できる旨が話されました。
 
PWAを用いた迅速なアプリ開発
 FIXER Cafeアプリは、スマートフォンからコーヒーなどのドリンクを注文でき、登録したクレジットカードを利用して、アプリ上で決済が完了するアプリです。また、アカウント認証が可能で、購入履歴も見ることができます。
 
 ネイティブアプリのように見えますが、実はPWA(Progressive Web Apps)を用いたWebベースの造りになっています。PWAを採用した理由は、社員のみの利用が目的でストアへの公開をしないためですが、Webだからとはいえ侮れません。
 
 開発はFigmaというUIデザインツールでプロトタイミングを行い、PWAの実装に適したJavaScriptのフレームワークVue.jsおよびNuxt.jsを採用。Nuxt.jsは多くのパッケージが提供されており、後述の外部サービスとの連携も容易です。
 
 アカウント認証にはFirebase、クレジットカード決済にはStripe、プッシュ通知にはOneSignalなど、mBaaSやSaaS型のサービスを利用することで、開発期間を短縮することができたといいます。
 
 ソースコードはGitHubで管理し、Azure Pipelinesを連携してあるそうです。プルリクエストがマージされると自動的にAzure Pipelinesでビルドが行われ、マネージャーのチェックを経てFirebase HostingにリリースされるようにCI/CDが構成されていました。
 
 Azure Pipelinesは、Azure DevOpsに含まれるCI/CDのサービスです。Microsoft製品に限らず連携できます。無償でも十分な利用枠があり、CI/CDサービスとしては後発ながら注目されています。
 
CI/CDを利用した継続的な開発
 さて、PWAを用いたアプリ実装の裏で、その処理の実態はAPIとして実装されたバックエンドが担います。
 
 昨今注目されているマイクロサービスについてのメリット・デメリットを踏まえ、FIXER Cafeアプリのバックエンドは、小規模からのスタートと機能追加に適したマイクロサービスの構成を採用し、AKS(Azure Kubernetes Service)上にコンテナとして実装することにしたとのこと。
 
 ここで、アプリへリコメンド機能を追加するデモ。しかし、なんとリコメンドのボタンが表示されないハプニング(?)が発生!急遽壇上でデバッグを試みます。実際にVisual Studio Codeでデバッグ実行し、修正をリポジトリにpushする。ここでも連携された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を用い、たった十数行のコードで実装できるそうです。
 
 FIXER Cafeのシステムでは、こうして作成した学習モデルをAzure Machine Learning Serviceでコンテナイメージとして保存しておき、Azure Pipelinesを使って前述のAKS上のバックエンドに組み込みリリースすることができるCI/CDを構築しています(これはMLOpsと呼ばれます)。
 
 Automated MLの詳細は、今回のスピーカーの一人である千賀さんの解説ブログ記事「【de:code 2019連動】ML最前線!MLOpsとAutomated MLによる機械学習モデルの自動開発 | cloud.config Tech Blog」をお読みください。
 
* * *
 
 フロントエンドからバックエンド、そして機械学習までの多くの要素が詰め込まれた盛りだくさんのセッションでした。マイクロソフトだけにとどまらず、適材適所で技術を採用していくことは、短期間かつ継続的にアイディアを実現するために有効な手段であり、今ではその材料が出そろってきていると感じました。うまく活用できるようキャッチアップしていきたいものです。
 
 なお、同セッションのVue.js+Nuxt.js+Firebaseのアプリの作り方詳細については、今回のスピーカーの一人である市岡さんが登壇するこちらのイベント(6月27日開催)で紹介されるそうです。
 
 
文● 大平かづみ 編集 ● 羽野/TECH.ASCII.jp

最終更新:7/9(火) 13:09
アスキー

こんな記事も読まれています

あなたにおすすめの記事