(レポート) MBL202: モバイル一般教書。AWS を使用したハイパフォーマンスなモバイルアプリの構築 #reinvent

aws-reinvent2015

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Mobile State of the Union - Build High Performing Mobile Apps with AWS

この記事は、re:Invent 2015 のセッション「MBL202 - Mobile State of the Union: Mobile Apps Powered by AWS」のレポートです。


スピーカーは以下の方々です。

  • Marco Argenti - VP, AWS Mobile and IoT, Amazon Web Services
  • Ryan Ogle - CTO, Tinder
  • Shawn Castrianni - Principal Mobile Architect, IHS Global Inc.

Marco は今年の AWS Summit 2015 Tokyo で基調講演をお話いただいた、AWS のモバイル代表の方です。

IMG_3881

AWS で構築されたモバイルアプリ

  • SUPERCELL
  • yelp
  • ROVIO
  • NAUGHTYDOG
  • NTT docomo
  • ABC
  • Tinder
  • end more...

今日のモバイル開発のテーマ

  1. Ability to Scale - スケール可能なこと
  2. Application Quality - アプリの品質
  3. Development Ease - 容易に開発

1. Ability to Scale

Tinderの事例紹介

Tinder の CTO である Ryan Ogle 氏が登壇。

IMG_3885

Tinder

  • 好みの顔を選んでマッチングさせるアプリ
  • 動作が軽快
  • マッチ数はどんどん成長 - 2015年第二四半期時点で 1,900,000 マッチ
  • 1日17億スワイプ
  • 1,100 EC2 インタンスが稼働
    • APIやキャッシュレイヤーなどいろいろ
  • 7ペタバイト/月のデータ転送
  • 総スワイプ数は1.2兆

構成

下図のように構成されています。ElastiCache、DynamoDB、MongoDB といったデータストアを用途別に使い分けています。

mbl202-01

2. Application Quality

  • レート5が欲しい!
  • アプリの星5はブランドの星5

Device Farm

  • 実機のテストをクラウドで
  • テストのオートメーション化
  • ユニットテストなどをポピュラーなフレームワークで実行
  • ビルトインのテスト
  • パラレルにテストを実行
  • いろいろな状況をシミュレーション可能
  • スクショ取得可能
  • APIでコントロール可能

iHSの事例紹介

iHS の Shawn Castrianni 氏が登壇。iHS は石油・ガス産業のための重要な情報、分析、および専門知識を提供するグローバルプロバイダです。150カ国以上のビジネスと政府を支えています。32カ国の 8,800 人以上の従業員が居ます。

IMG_3889

iHS Sphera First Report

  • iOS、Androidでアプリから、事故やニアミスを安全にレポート
  • リモート向けのオフラインの利用履歴
  • 写真撮影機能

開発フロー

下図のような流れで開発されています。

mbl202-02

  • アプリは Xamarin で開発
  • Beta deployをマニュアルのテスターに配信
    • Hockey App
      • Android, iOS でベータ配信可能
      • iOS は Dev の Provisioning Profile が必要
    • TestFlight Beta Distribution
      • iOS only
      • Distribution の Provisioning Profile で利用可能
  • Automated UI Test (Simulators)
    • Appium
      • Ruby, Python, Java, JS, PHP, C# でテストが書ける
      • Test runner は JUnit, NUnit
      • iOS は UIAutomation, Android は UIAutomator
      • 特別なビルドやinstrumentationは不要
      • より良いプログラミングスキルは必要 JBehave
    • Appium Inspector
      • GUI でインタラクティブなテスティングツール
      • テスト中のアプリが表示される
      • UI の階層が見れる
  • Automated UI Test (Device Farm)
    • OSバージョン、デバイスの種類が豊富(100種類以上)
    • テストを自動で生成する機能 (Fuzz testing)
    • UI テストのサポート
    • CI 連係を考慮した SDK の提供
    • フラットな料金体系
  • CI
    • Pmease QuickBuild
      • Javaベースのクロスプラットフォームのビルドサーバー
      • アプリの自動化

何故自動化するか

  • QAリソースの制限
  • テストのリグレッション
  • マニュアルテストのヒューマンエラー
  • OSバージョンの変更によるクラッシュ
  • 異なるモデル間でのクラッシュ (Androidは4.0以上で7,000機種ある)

何故Device Farmか

  • OSバージョン、デバイスの種類が豊富(100種類以上)
  • テストを自動で生成する機能 (Fuzz testing)
  • UI テストのサポート
  • CI 連係を考慮した SDK の提供
  • フラットな料金体系

3. Development Ease

  • アプリ開発の時間を減らす
  • クオリティを上げる

Mobile Hub

mbl202-03

  1. シングルなコンソール
  2. プリビルドな機能
  3. サービスプロビジョンの自動化
  4. アプリの自動生成

結果、数分でアプリの作成が可能。モバイル向けのサービスを自動でプロビジョニング。

mbl202-04

Mobile Hub のデモ

デモを通して、Mobile Hub の機能をざっくりと紹介。

IMG_3899

IMG_3902

とにかくクイックが売りです!

IMG_3928

IMG_3929

ざっくりとした使いかたは以下をご参照いただければと思います。

まとめ

Device Farm や Mobile Hub など、最近リリースされたモバイル向けのサービスは、モバイルアプリ開発者が容易に開発できるようにかなり考えられています。活用していきたいですね。