AI搭載型IP電話「MiiTel」とは

平村健勝氏(以下、平村):みなさん、はじめまして。私、株式会社RevCommの平村と申します。本日は、AI搭載型IP電話「MiiTel(ミーテル)」を支える組織とそのアーキテクチャについてご紹介したいと思っております。

弊社が提供しているサービスは、コミュニケーションを科学するクラウドサービスを提供するスタートアップ企業でして、その第1弾プロダクトとしてAI搭載型IP電話「MiiTel」を提供しております。

これはどういうプロダクトなのかといいますと、電話営業の担当者、インサイドセールスの方が取引先に電話営業をする場合を考えます。そのようなケースで使うPBX(Private Branch eXchange:構内交換機)、電話の交換器をAWS上にソフトウェアとして実装しまして、そこを用いて電話を行うことで、録音した音声を自社で独自に開発した音声認識エンジンでテキスト化をします。それを基に、どのような会話をしたのかを振り返るセルフコーチング用に、ダッシュボードで提供するアプリケーションをクラウドサービスとしてご提供しております。

CRMに「MiiTel」を組み込んだ状態で発信をしますと、このような画面になって、指定された電話番号に発信し、通話ができるようになります。

話した内容はこのように振り返りができるようになって、音声認識結果も表示されます。

このプロダクトを作るにあたって求められていることが2通りありました。1つ目は、少人数で作ることです。そして、一部のメンバーは家庭の事情で関西からリモートワークをしている関係もあり、マイクロサービスをかなり初期の段階から指向しまして、意思決定も会社の開発スピードも高速化する取り組みを行いました。

2つ目に、音声通信の、コストもさることながら高品質や安定化を求められる特徴があり、これを各マイクロサービス的にSLA(Service Level Agreement)で定義して、アーキテクチャパターンを選択する取り組みを行いました。

「MiiTel」を支えるアーキテクチャ

平村:こちらが弊社の組織図で、この紫色の箱一つひとつの単位が、機能であり、サブチームであり、それぞれのプロダクトオーナーがおります。

このプロダクトオーナーが一つひとつのマイクロサービスに対して責任を持って開発し運用するということで、独立してサービスとして開発するような組織づくりを、弊社では文化として進めております。

そして、サービス間の連携はどのように行うのかというと、WebhookやAPIであったり、そのような標準的な方法でやりとりをしまして、共有するのはAPIの仕様書のみという文化ができあがっております。

このスライドがシステムアーキテクチャの全体像です。スライド左側がエンドユーザーがWebアプリケーションや音声通話を行うところで、右側が蓄積されたデータをAIエンジニアが速やかに分析できて、そこでできたモデルを本番環境にすぐにデプロイできるところです。このような構成をとっております。

Well Architectedのポイントは5つあり、すべてをバランスよく満たすように構築しております。1つ目、音声通信のサーバですが、ここは電話というシステムの特性上、一瞬たりとも落ちてはいけないミッションクリティカルシステムになります。

このため、OSレイヤーでのチューニングが求められるので、あえてマネージドサービスは使わずにAmazon EC2で作っています。これによって信頼性やパフォーマンスを担保している、という特徴もあります。

2つ目に、Webアプリケーションですが、こちらはPBXほど高い可用性は求められないものの、ユーザーの増加に対応したり、お客様からの機能追加の要望が一番多いフロントエンドの部分なので、ここは高頻度のアップデートも考慮して、AWS Auto ScalingがしやすいFargateが使ってあったり、CodeDeployでGitHubのマスターのブランチにPushをすると、自動的にグループにデプロイメントがかかるような仕組みを用いております。

最後に、音声認識のクラスタでありますが、ここは最もSLAが低いサービスですが、突発的なリクエストがあり、高性能なサーバが必要な要件がございまして、SQS、Spot Instanceを活用して、ノード数を自動調整するクラスタ管理ツールを独自に開発し、高性能なサーバを必要な分だけ調達する仕組みを整えました。

これによって得られた効果としまして、まず運用性の高さがあります。マイクロサービスアーキテクチャを組織として導入していたことで、ミーティングをわずか週1回で運営しております。セキュリティに関しては、ダウンタイムはほぼゼロ。パフォーマンスに関しては、適材適所な設計ができました。信頼性に関して、わずか8ヶ月で900ユーザーが利用し、これまで100万件以上コールが「MiiTel」に集まっております。70パーセント以上のコストを削減することができました。

以上がRevCommにおけるアーキテクチャと取り組みでございます。どうもありがとうございました。

(会場拍手)

8ヶ月で900ユーザーが利用

司会者:平村さん、ありがとうございました。それでは、なにかご質問がある方いらっしゃれば、CTOのみなさんよろしくお願いします。いかがでしょうか?

大竹雅登氏(以下、大竹):ありがとうございます。SLAを設定していたところがすばらしいなと思いました。スタートアップにおいてはすばらしい意思決定だと思うんですけど、それを設定してたものは実際どのぐらい安定しているでしょうか。

平村:8ヶ月で900ユーザーがご利用いただいているところと、それから100万件以上コールがこれまで発着信されているところから、定量的な効果としてあげられると考えています。

大竹:チームでそれを振り返ったりする機会もあるということですか?

平村:はい。どちらかというと、リアルタイムのユーザーよりも重要だと考えていて、そこをオンラインのコミュニケーションで、Slackなどのツールを用いて振り返りを行う。なにかあったらすぐ対応する、それがプロダクトオーナーそれぞれの責任だと考えていて、そういった文化を根付かせているのが我々の特徴だと考えています。

大竹:ありがとうございます。

司会者:はい、よろしいでしょうか。それでは、平村さん、ありがとうございました。もう一度拍手をお願いいたします。

(会場拍手)