ISUCON6出題チームが社内ISUCONを開催!AMIも公開!!
ISUCON6の出題者の1人の@catatsuyです。
GW直前の4/28、本年度入社の新卒エンジニア全員と社内のエンジニアほぼ全員が参加するイベントとして社内ISUCONを開催しました。
同じく出題者の1人である@edvakfの記事でも書いたように、今年のISUCON6では株式会社はてなさんと弊社で共同出題する予定です。
今回は弊社のISUCON6出題チームの4人で開催した社内ISUCONの様子を紹介します。
社内ISUCON
時間は12:30から19:00まで行いました。営業日に会社のエンジニアのほとんどが参加するイベントなので、午後を割り当てる形にするぐらいが良いのではないでしょうか。今回は新卒研修の一環としての側面があったので、新卒エンジニアにはISUCON事前ハンズオンとしてこのような内容の講義を行いました。
初期実装
初期実装の言語は『Ruby・PHP・Node.js・Go言語』の4実装を用意しました。社内ISUCONにしてはかなり多く用意した方だと考えています。
これだけ用意した理由ですが、弊社のサービスはPHPで作られているpixivを始め、BOOTH・pixivFACTORY・pixivコミックなどのようにRuby on Railsで作られたサービスもあります。またpixiv SketchではRuby on RailsとNode.jsのハイブリッド構成になっていますし、画像変換や広告配信ではGo言語も使われています。それに伴い、社内のエンジニアはそれぞれ得意言語が異なっており、それぞれが得意な言語で問題を解いて欲しかったという事情がありました。
全20チームが参加して、使用言語は以下のように幅広かったです。
言語 | 使用グループ |
---|---|
PHP | 8 |
Ruby | 5 |
Node.js | 4 |
Go言語 | 3 |
オープニングプレゼン
オープニングプレゼンを用意しました。今回は新卒エンジニアの研修も兼ねていたのでそこを意識したプレゼンになっています。
オープニングプレゼンで社内が盛り上がりました。その後にさっそく事前に決めた2人チームに分かれて、初めて見るWebアプリケーションである『Isucogram』の最適化に挑んでもらいます。
Isucogramの画面をちょっとだけお見せします。
このブログを書くときに気付きましたが、uが抜けてタイトルがIscogramになっていました。どちらでもいいと思います。
大混戦
当日は新卒・社員・アルバイト関係なく争う大混戦でした。ツイートをいくつか紹介します。
今日の社内ISUCONのために3ヶ月開発し続けたらしいぞ!!!!ねむい!!!!
— 徳を積む (@catatsuy) April 28, 2016
pixiv社内ISUCON始まった pic.twitter.com/2k2Xwx641I
— edvakf (@edvakf) April 28, 2016
社内ISUCONが開催されている。みんな楽しそう
— yoko (@yksk) April 28, 2016
ただいまピクシブにて社内ISUCON(サーバーチューニングコンテスト)を開催中です!普段サーバー管理を専門としない全エンジニアが参加し、高速化の腕を競っています。 pic.twitter.com/yeXGQ1wEGN
— pixiv (@pixiv) April 28, 2016
現在ピクシブオフィスにて開催中の社内ISUCON(サーバーチューニングコンテスト)、大接戦の様子です。コンテストも後半に突入し、新卒エンジニア VS 既存メンバーが負けられない戦いを繰り広げています! pic.twitter.com/vu6Sc18O7g
— pixiv (@pixiv) April 28, 2016
大混戦の社内ISUCON、主催者楽しい pic.twitter.com/AXOeikoqYy
— edvakf (@edvakf) April 28, 2016
社内ISUCON、今唯一のアルバイトが含まれているチームが1位で荒れてる
— 徳を積む (@catatsuy) April 28, 2016
社内ISUCON、新人ばかりが上位に来てて荒れてる
— 徳を積む (@catatsuy) April 28, 2016
大穴が開始からほぼずっとトップをキープして、最後数十分で圧倒的に抜かれて、もうダメかと思ったらまた1位に返り咲いたの巻。社内ISUCON pic.twitter.com/Cg9udS1xbI
— edvakf (@edvakf) April 28, 2016
社内ISUCONで熾烈な1位バトルが繰り広げられててこれぞISUCON感すごい!!
— 徳を積む (@catatsuy) April 28, 2016
優勝チーム
最後に優勝したのは 秒間50kリクエストを捌くノウハウがこの1冊に!nginx実践入門 - pixiv inside を執筆した @harukasan と @Moyashipan さんのチームでした。最後の最後での逆転劇で幕を閉じたときはとても盛り上がりました。
nginx実践入門を読めば社内ISUCONに勝てることを示せてよかった。
— はるかさん (@harukasan) April 28, 2016
社内ISUCONに勝つコツ「nginx実践入門を読んだharukasanと組む」
— もやしパン (@Moyashipan) April 28, 2016
良い感じのINDEX張るのとアプリケーションコードの改善だけで新入社員達のスコアを超えられたのはホッとした
— もやしパン (@Moyashipan) April 28, 2016
賞品授与
終わった後に賞品授与と総括を行いました。
特別賞と惜しくも最後に逆転されて2位だったチームです。非常に悔しがっていたのが印象に残っています。
最後に逆転優勝したチームです。
AWS
今回は社内ISUCONということもあったので、全チーム分の競技者用インスタンス・ベンチマーカー・ポータルサイトのインスタンスを全て運営側でAWS上に用意しました。スペックは以下のものを使用しました。
用途 | インスタンスタイプ | 台数 |
---|---|---|
競技者用 | c4.large | チーム数分 |
ベンチマーカー | c4.xlarge | 5-7台(スポットインスタンス) |
ポータルサイト | m4.large | 1台 |
気を付けないといけないのはAmazon EC2で実行できるインスタンス数に上限があることです。
今回は事前申請フォームで申請してあらかじめ上限を上げておきました。AWSさんの素早い対応が非常に助かりました。ありがとうございます。
GitHubとAMIを公開!
ここまで読んで社内ISUCONでやった問題を解いてみたいと思った方に朗報です!ソースコードとAMIを公開しました!!無料です!!
AMIのIDなど、詳しくはGitHubのREADMEを参照してください。
ISUCONの練習や社内研修にと、様々な用途で使っていただけると幸いです。
やったことで得られたもの
社内ISUCONをやったことで今までISUCONに触れてこなかった社員にも、ISUCONがどういうイベントなのかを感じてもらうことができました。普段アプリケーションを触っているエンジニアから、nginxの勉強をしておけばよかったという声が聞こえたりと、様々な技術を勉強しようというモチベーションにつながったようです。
出題した我々も、聞いてはいましたが、ベンチマーカーを作るのが非常に大変(並列度・高速性・1つ1つのシナリオの表現方法などなど)でした。またISUCONの問題作成の上でも、初期実装をRubyで書いてしまうと、非同期に処理を書く必要があるNode.jsや、型があるGo言語への移植が難しくなるので工夫する必要があることが分かりました。このように実際にやってみないと分からない数多くの知見が得られました。
最後に
冒頭にも紹介したように、今年のISUCON6では株式会社はてなさんと弊社で共同出題する予定です。
社内ISUCONは我々にとってはISUCON本番の前哨戦でした。当然のことですが、実際にISUCONの問題を作るというのは問題を解くよりも様々なことをやる必要があります。今回うまくいった部分もあれば、改善すべき点も多くありました。社内ISUCONの経験を活かしてISUCONの出題を頑張ろうと思うのでどうぞご期待ください!!
ピクシブ株式会社ではpixivをはじめ様々なサービスを開発・運営しています。高速なサービスを作りたい、ISUCONが大好きだ、来年の社内ISUCONは自分が作ってやる!等のエンジニアの方を大歓迎します!
2016エイプリルフール企画「ありがたや〜」ボタン の舞台裏
はじめまして、Community Management(コミュニティマネジメント・CM)チーム のプロダクトマネージャー sakumaです。
Community Management(CM)チームって?
CMとは、pixivでの運営企画を立案・実行する部署です。「pixivを投稿者と閲覧者にとって、最も価値のある場にする」というミッションの元、2016年2月末に私がピクシブへ中途入社した際に新設されました。 出来てから2ヶ月ちょっとの若いチームですが
・エイプリルフール企画「ありがたや〜」ボタン (※ 現在はサービス終了)
をはじめとした大型企画から機能ベースの小型施策まで、幅広い企画を計画・実行しています。また持続的に成長できるモデルを探りながら施策にフィードバックするサイクルを繰り返し
・作品投稿が活発に行われる = 投稿数の増加
・ユーザーが作品を見に来る機会がある = 閲覧数/DAU/MAU 増加
という指標を念頭に、pixivらしい盛り上がりを作るために様々な実験をしています。
5月現在は新卒ディレクター1名・エンジニア2名の計4人が専任で所属しており、企画に合わせてチーム外のリソースも加えながら柔軟に運用をしています。
今回は、反響が大きかった2016年エイプリルフール企画「ありがたや〜ボタン」の裏側をお伝えします。
「ありがたや〜ボタン」って?
2016年4月1日、エイプリルフール企画としてリリースした1日限定の機能です。作品へのリスペクトを拍手として送り、1時間ごとに更新される「ありがたがられた作品」を楽しむコンテンツです。
10回アクションした後に見られるエフェクトの神々しさ=ヤバさ(!)によって、リリース直後に瞬く間に拡散。
・ありがたや〜ボタンが押された回数:計770万回
・参加者:53万人
と平日にも関わらず、たくさんのユーザーにご参加頂きました。「閲覧しにくい」というお叱りもありましたが、「笑った」「常設して欲しい」などの声も多数寄せられました。イベントが終わった今も、様々な形でボタンの話題をしてくれる方が多い企画です。
企画者の視点から見た「ありがたや〜」ボタン
今回の企画は、以下の3つ要素に分割されます。
エイプリルフール感がある「おふざけ感」 ➕ 期限 ➕ ユーザーのアクティブ化
差別化するべき「おふざけ感」
ご存知の通り、エイプリルフール当日は各社がジョークサイト・嘘の情報をリリースします。差別化されないニュースは埋もれやすく、笑いを狙いすぎるとスベり、PRもほぼ効果がありません。上記の理由から、pixivの機能の延長上で成立する企画に特化しました。
ユーザーのアクティブ化
今回の企画は、CMチームのミッションを考慮しユーザーをアクティブ化させる事を指標に置きました。広告費を大量に投入すれば、より多くの人の目に触れる事ができるかもしれません。しかし各社の面白い企画とPV数を競って、pixivのコンテンツに全く興味がない人を笑わせるために広告費の消耗戦をしても意味がないと考えました。あくまでユーザーに特化し、どうしたらpixivに来たくなるかだけにフォーカスしました。
ユーザーファーストへ回帰がキモに
実はこの企画は、実に7回も内容が大きく変わった経緯があります。何日にも渡ってブレストや議論を尽くしても全く形にならない状況と、迫る期日に非常に焦る事も多々ありました。しかし企画案を改めて見直した時、これまでの紆余曲折が嘘だったかのように方向性がスパッと見える瞬間が訪れました。「ユーザーをpixivに来させるには」という運営主体の視点ではなく「ユーザーはどうしてpixivに来なくなるのか」というユーザーの視点で考えた時に見えた本質、それはヒアリングでわかった作家が抱えるジレンマを解消するコンテンツにする事でした。
SNSが充実するにつれ、閲覧者と作家の距離が近くなったと言えます。生のリアクションが届きやすくなるメリットもある一方で、周りを気にしすぎて発言しにくい・作品を発表しにくくなるというデメリットも起こっています。pixivも例外ではありませんでした。作品を作るという行為は本来、褒め称えられるべきスゴいことであるはずなのに、称賛を送る為の評価システムがマイナスに働いてしまうことで、作家が作品を発表しにくくなる→自然に閲覧する人が減る→見る人がいないから作家は作品を発表しない……そんな負のスパイラルが発生しています。今回はその連鎖を断ち切るような施策を打ちたいと考え、「作品へのリスペクト」を企画の根幹に据えました。
pixivには「10点じゃ足りない」「もっと評価されるべき」というタグがあります。閲覧数や誰かの評価だけに縛られない、閲覧者が抱く作品へのリスペクトが既にpixivには根付いていたのです。これを踏まえ「ありがたや〜」という誰もがハッピーな表現で、まるで朝日を拝むような敬虔な気持ちで作品に称賛をぶつけまくる、熱く笑えるコンテンツに決めました。
走り出したら、徹底的にやるだけ
コンセプトが決まってからは、企画は凄まじいスピードで進んで行きました。マイクをオンにすると、拍手で入力できる機能をエンジニアが開発。実際に神社を参拝するように、現実で拍手をしてもボタンが押せるようになりました。様々なユーザーがそれぞれの思いを持ちながら、同時多発的に拍手をしまくっている光景を想像すると、もうなんだか最高にエモーショナルですよね。しかも世界中で、この日だけ。
またボタンを連打した際の爽快感やジョークっぽさを追い求め、UIやモーション・インタラクションを徹底的に詰める調整がリリース直前まで行われました。
最後は人の力で支える
リリース後、インフラ・エンジニア・ディレクターによって前後2日+当日は24時間の監視体制で運営しました。社内の有志メンバーがSNSの反響を実況するシステムを作り、そのリアクションを受けてお昼の飯テロタイム、小説ジャンルへボタンの反映、イベント終了時のアイコン配布という柔軟なアップデートを実施。企画は、エンジニアの技術と人の力によって成り立っていることをまざまざと感じました。
実は4/1にはピクシブの入社式・歓迎会が行われていましたが、エイプリルフールチームの一部は本企画に集中して社内で待機して全力で対応しました。その後に社内で行われた歓迎会の二次会では、SNSでのリアルタイムに集まっていく反響をスクリーンに投影。戻ってきた社員全員に見守られながら、大団円の中でプロジェクトは終了しました。 中途で入社して右も左もわからない私に急遽、任されたビッグなプロジェクト。手厚くフォローしながら、企画に全力でコミットしてくれた自慢のメンバーと協力者をご紹介します。(大好きなお酒や寝る時間を何度も我慢して、ハードな企画を最後まで共に走り抜けてくれました。ありがたや〜!)
2016エイプリルフール企画
http://www.pixiv.net/yabai2016/
Main member >> sakuma ysp tadsan geta6 d4rkie catatsuy
special thanks >> abeshi kogami lainbsd furoshiki unagisyan 手伝ってくれた社内メンバー and YOU
新メンバーが加わり、追い風を益々感じるCommunity Managementチーム。 これからも閲覧者や投稿者の情熱が伝わる運営へ、反映していければと思います。