SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2017】セッションレポート(AD)

エンタープライズチャットアプリ開発のリベンジを、サーバーレスアーキテクチャで達成【デブサミ2017】

【17-E-2】 サーバーレスアーキテクチャにしてみた - エンタープライズチャットアプリでの挑戦 -

  • このエントリーをはてなブックマークに追加

 「サーバーレスアーキテクチャ」というキーワードはあちこちで聞かれるが、実際の開発事例や成功例はなかなか目にする機会がない。そのため言葉が一人歩きしてしまい、現場のリアルな実情を見ることなく、自己流で解釈されているケースも多いのではないだろうか。本セッションでは一度頓挫してしまったプロジェクトが、サーバーレスアーキテクチャによって立て直された実例を紹介。具体的にどのような成果が出たのか、株式会社ドリーム・アーツの石田健亮氏がリアルなデータを交えて語った。

  • このエントリーをはてなブックマークに追加
株式会社ドリーム・アーツ 最高技術責任者 兼 プロダクトデザイン本部長 石田健亮氏
株式会社ドリーム・アーツ 最高技術責任者 兼 プロダクトデザイン本部長 石田健亮氏

再挑戦のプロジェクトに有効な手法として注目

 石田氏は、大企業向けのエンタープライズ製品やコンサル・SI事業を提供する株式会社ドリーム・アーツのCTO兼プロダクトデザイン本部長を務めているが、個人的なアイデンティティはあくまでプログラマーであり、「今回のプロジェクトも技術者としてのチャレンジの一環だった」と語る。

 同社では2016年11月に、エンタープライズチャットサービス「知話輪(ちわわ)」をリリースした。このサービスは、ビジネスに携わる多くの人々が、現場で得た気づきや感覚を共有し合い、組織的な現場変革を支援するためのチャット・SNSツールだ。さまざまな業務システムと連携できるAPIを公開すると同時に、App Store経由でモバイルアプリを配布。エンタープライズに特化している点で大きな注目を集めている。

 この知話輪の開発プロジェクトだが、実は2014年にスタートして一度中断している。その後2016年に再チャレンジの末、リリースされた。

 「普段はエンタープライズ系アプリケーションの開発を手がけていたが、慣れないモバイルアプリ開発をやることになり、Node.jsやMongoDBなど、新しい技術を興味の赴くままに導入していった。その結果、アーキテクチャが複雑化してしまい、開発経験が少ないこともあって時間も足りず、2015年にはついにプロジェクトが炎上してしまった」と、石田氏は明かす。

 そして開発手法や体制を見直し、2016年の夏に再スタート。2回目の開発は順調に進み、3カ月後の11月24日にはリリースへこぎつけることができた。再チャレンジを成功させる要となったのが、サーバーレスアーキテクチャだった。

最も大きなメリットは「コストの大幅な削減」

 知話輪プロジェクトの再チャレンジでサーバーレスアーキテクチャを採用した理由に、石田氏は「お金がない」「時間がない」「興味のままでは生きていけない」という3点を挙げる。すでに一度炎上・中断していることもあり、余分な追加予算などは許されない。また、本来なら2014年にリリースされているはずだが、すでに2016年になってしまっている。さらに、エンジニアとしては前回のように目新しいアーキテクチャを試してみたいが、ビジネスとしてはお客さまが満足できる価値あるものを迅速に作らなければいけない。つまり「サーバーレスアーキテクチャを採用した明確な理由があったというよりは、もはやそれしか選択肢がなかった」のだ。

 ではサーバーレスアーキテクチャには、一体どのようなメリットがあるのだろうか。

 1つ目のメリットは、コストの大幅な削減が実現する点だ。オンプレミスやクラウドとコストを比較すると下図の通りになる。

従来の導入形態に比べてサーバーレスアーキテクチャは「使っただけ払う」が特長
従来の導入形態に比べてサーバーレスアーキテクチャは「使っただけ払う」が特長

 オンプレミスは、導入期間中ずっと同じコストがかかり続ける。クラウドは初期コストである程度まとまった額がかかり、その後必要に応じて増やしていきながら段階的にスケールしていく。対してサーバーレスアーキテクチャは、マイクロサービス単位で課金され、しかも使った分に対する課金だけでよい。そのためゼロから始まり、ユーザーの数や利用規模に即してリニアにスケールしていく。まさに「使っただけ払えばよい」のが特徴だ。

あらゆるコストをサーバーレスで一気に削減、リアルなデータを交えて解説

 サーバーレスアーキテクチャを導入して実現したコスト削減の効果を、石田氏はリアルなデータで紹介した。その数字を見ると、費用の面でも工数の面でも、大幅な削減効果があったのは明らかだ。

 2015年の1回目の開発では、AWS上にアプリケーションサーバーでNode.jsを展開し、データベースにはMongoDBを採用。さらに1TBのストレージをつなぎ、毎月1.1TBのネットワーク伝送量があった。「AWSに20万円、加えて運用のための人件費が毎月の固定費としてかかっていた。それが再チャレンジでは4万3000円と約5分の1に圧縮され、運用人数も前回の7名から4人に減らすことができた。これはデータベースとインフラ構築の人員が不要になった結果だ」と、石田氏。

金銭面でのコスト効果
金銭面でのコスト効果

 工数も大幅に削減された。中でも劇的に減ったのがプラットフォーム部分で、なんとゼロになったという。

 「前回はiOSのプラットフォーム部分(通信、アプリケーション呼び出し)がコードで8790行、サーバー実装のプラットフォーム部分が2万9816行だったが、両方とも0行になった。限られた時間の中で早く作る必要があったので、UXに関係ない部分をゼロにできたのは大きな成果だった」

工数面でのコスト効果
工数面でのコスト効果

複数のmBaaSの中からFirebaseを採用

 サーバーレスアーキテクチャでアプリケーションを開発するにあたり、利用したmBaaSが「Firebase」だ。Firebaseは2014年にリリースされ、その後Googleに買収された。NoSQL系データベースを、Androidなど他のプラットフォーム上のデバイスと同期できるといった特徴がある。

 採用したFirebaseの他にも、AWSやMicrosoft Azure、Herokuなどを比較検討した。検証用に小規模のアプリを作り、自社のサービスを乗せるプラットフォームとして最も信用できるものを選出。最終的にFirebaseの品質がずばぬけて高いことが分かったという。

 また、部分的にはHerokuも採用。そのため、厳密にはサーバーレスとはいえなくなってしまったが「それでもここまでの構成がFirebaseで可能になるのは画期的だ」と石田氏は評価する。

Firebaseを使ったサーバーレスアーキテクチャの構成
Firebaseを使ったサーバーレスアーキテクチャの構成

 ただ、「テーブルの結合ができない」「組み合わせ条件での絞り込みができない」「オブジェクトの差分更新ができない」「Internet Explorer 8ではSDKが動かない」といった課題もある。

エンタープライズ開発の有効解としての普及を

 最後に、開発プロジェクトを通して石田氏が感じたFirebaseのメリットが以下のように紹介された。

スケーラブルで安定している

 自前でWebSocketを実装し、同期するストレージを構築するのは大変な手間がかかる。また、通信に失敗した場合のリカバリや再同期も容易だ。スケーラビリティについても十分だといえる。

パフォーマンスも良好

 ファイルの取得なども、数10ms単位で実行できる。そのためモバイルユーザーの多い環境でもストレスのないUXに貢献できる。

ユーザー数が少ないうちは安い

 サーバーレスの大きな恩恵であるコスト性に優れている。数十万人程度までならば自前でサーバーを導入するよりも安価に済む。

SDKが便利

 豊富な認証機能(パスワード、Google、Facebook、Twitter、GitHub、カスタム)が提供されている。さらに権限制御やデータベースのアクセスコントロールなども可能。

 石田氏は、「サーバーレスアーキテクチャを選択した結果、従来の手法であれば数千万円規模の投資と時間が必要だったが、安く、早く、顧客の満足のいくものを実現できた」と評価。エンタープライズSIである以上、限られたコストと時間の中で、お客さまが十分に納得できる品質を達成しなくてはならない。今回のプロジェクトでは、「与えられた条件が厳しくても、工夫次第で何とかなるという貴重な経験を得た」という。

 「このサーバーレスアーキテクチャという有効解を、エンタープライズ領域のSIに広めていって、世の中の多くのエンジニアが『それならやってみよう』と思えるように、ぜひ皆さんにもご協力をいただきたい」と石田氏は力説し、セッションを終了した。

お問い合わせ

 株式会社ドリーム・アーツ

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10086 2017/04/14 21:38

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング