分サイバーエージェントでは現在,ソーシャルゲームなどで利用するリアルタイムメッセージ共有のための基盤を独自に開発しています。その開発のきっかけや目的などについて,担当エンジニアのマリオ・フレイタス氏(写真1)と西尾亮太氏(写真2)にお話を伺いました。─⁠─今回,リアルタイムメッセージ基盤を開発することになった経緯を教えてください。マリオ・フレイタス氏マリオ:きっかけは,私が社内のエンジニア向けイベントで,リアルタイムメッセージ基盤のしくみが必要ではないかと発表したことです。Storeのアプリランキングを見ていると,複数人のユーザでリアルタイムにプレイするマルチプレイのゲームが人気です。来年はさらにブームが加速するのではないかと考え,それを開発するための基盤として提案したところ,社内の人から「これは今のAmebaにとってまさに重要なものだ」と評価され,実際に開発を進めることになりました。─⁠─同様のしくみを実現している基盤はすでにいくつかあると思いますが,独自に開発することを決めた理由は何でしょうか。マリオ:確かに既存のものもありますが,いくつかの観点から我々の要件には合いませんでした。具体的には,カスタマイズ性やスケーラビリティなどの部分です。Service」として提供することを考えていたんです。そのような提供形態であれば,開発コストの低減につながるほか,障害時の対応も一貫して行うことができます。それに加えて,エンジニアとして開発したいという思いもありましたね(笑⁠)⁠。─⁠─西尾さんは最初からプロジェクトに参加していたのですか。西尾:いえ,私はマリオが企画を煮詰めて開発に取りかかったあと,人が足りないということで参加しました。Amebaのデカグラフのエンジニアリーダーをしており,永続化のしくみやそれに関連するプロトコルの仕様,大量のトラフィックをさばくテクニックなどに強みがあったので,それを活かしつつマリオと協力してできないかということで開発に携わることになりました。─⁠─このしくみを聞いたとき,西尾さんはどのような印象を持たれたのでしょうか。西尾:先ほどマリオが話したように,複数ユーザでの協力プレイやマルチプレイはユーザに受けていて,実際にそれらのしくみを持つゲームは爆発的にヒットしているという現実があります。その意味で,このプロダクトは今まさに必要なものであり,これを作ることの意義は大きいと感じました。それから,サイバーエージェントとして今提供されているサービスよりももっと高い品質のものを開発する必要がある点で,非常におもしろい挑戦だという印象でした。─⁠─具体的に,このシステムが提供している機能を教えてください。Messengerなどのチャットアプリで使われているバックエンドのシステムをイメージしてもらうとわかりやすいと思います。実際の形としては,ユーザを束ねる「ルーム」という論理的な概念があり,そのルームに対してメッセージを発信すると,それがルーム内のユーザ全員にパブリッシュされるしくみです。要はリアルタイム通信自体を抽象化し,グルーピングしたユーザに同時にメッセージを配信するような形です。そのメッセージというのはいわゆるチャットのような自然言語だけではなく,さまざまな情報のやりとりが可能だというわけですね。位置情報を共有したり,ゲームであればあるプレイヤーの攻撃に関する情報などを共有したりするという用途にも利用できます。─⁠─開発では,どのような点で苦労されていますか。マリオ:いろいろなサービスがこのしくみを使うので,スケーラビリティを確保しなければならない点です。サーバの増大が必要になったとき,別のサービスに影響が生じるのは避けなければなりません。負荷が上昇すれば自動的にオートスケールするようなしくみも盛り込んでいます。─⁠─サービスの開発者がこのしくみを利用する際,どういったカスタマイズが可能なのでしょうか。マリオ:通信方法をいくつか選択できるようにしています。Transport)といった選択肢があり,開発者が使い勝手のよいものを選べるようにしました。Buffersといったフォーマットを選べるほか,追加することもできます。─⁠─柔軟性の高いシステムになっているわけですね。西尾:やっぱり,外部のサービスだとメッセージフォーマット自体がそもそも限定されていることが多く,実際問題としてそれがレスポンスに影響することもあります。わかりやすい例では,メッセージフォーマットとしてXMLが使われていると,それを何らかの形でパースする必要があり,想定したパフォーマンスが得られないことも考えられるわけです。接続クラウドについても,ネイティブアプリだけを対象とするのではなく,Webブラウザでも同様にリアルタイム通信を行いたいというニーズがあります。外部のサービスを利用すると,Webブラウザではこの機能が使えない,ネイティブアプリではこれができないといった制限が生じることが珍しくないでしょう。そのような制約の排除が,今回の開発でとくに意識した部分です(図1⁠)⁠。リアルタイムメッセージ基盤の構成図。メッセージ配信を行うノードをクラスタ化するだけでなく,ノードを管理するノードマネージャもクラスタ化することで信頼性を高めた─⁠─SaaSとして社内向けに提供するということですが,難しさはありますか。マリオ:難しいですね。ある程度サービスとして標準化しつつ,どこまでユーザの要望に応えるのかは悩むところです。西尾:我々がコミットしているのは,マリオが提案し,それについて会社が必要だと考えている機能についてなので,それから逸脱しているものは対応しないという方針です。我々もニーズをすべて把握しているわけではないので,いろんな意見を聞きながら判断し,妥当性があれば取り込むという判断をそのつどしています。マリオ:我々が提供するのはあくまで汎用的なものであり,プロダクト固有で必要となるものは各自で開発してくださいというスタンスですね。西尾:パッケージを開発しているみたいな感じですかね。要望は聞きますが,その要望に対して本当に必要かを我々が裏で判断し,その結論によって実装するかもしれないし,しないかもしれないという。全部の要望にコミットするとたいへんなことになってしまうので。─⁠─現状のしあがり具合は何%程度でしょうか。西尾:どこを100%にするかにもよりますが(笑⁠)⁠。マリオ:実は2015年3月にはこのプロダクトをオープンソースとして公開したいと考えているんです。それに合わせて,100%にしあげていくイメージです。現状でいえば,50%ぐらいですかね。─⁠─オープンソースにする理由は何でしょうか。マリオ:大きな目的は,Amebaの技術力をみなさんに知ってもらいたいということです。西尾:それと,オープンソースにするという前提にすると,システムってすごい“⁠締まる⁠”んですね。社内用であればある意味ズルもできるというか,このレベルでいいだろうという甘えがどうしても出てきてしまう。あと,社内システムはこうなっているからこのレスポンスはそこまで追求しなくてもいいとか。最終的にオープンソース化してみんなに見てもらい,使ってもらうことで,本当に我々の考えているシステムに近づくのだろうなと。いった点もオープンソース化のメリットだと思っています。─⁠─実際に,このシステムを使ったサービスの開発は始まっているのでしょうか。マリオ:まず12月にマルチプレイ型のソーシャルゲームで利用されることが決まっています。リアルタイム性が重要なポイントになっているゲームで,同時にプレイする3?4人でゲーム状態を共有します。このような共闘系のゲームのほか,コミュニケーションサービスで利用することも検討されています。西尾:いずれにしても,3月頃を目処にオープンソースで公開するので,興味があればぜひ使っていただきたいですね。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。