JANOGerの皆さん、NETCONに参加いただきありがとうございました。NETCONスタッフの遠北です。
JANOG57 NETCONでは多くのイベントを開催しましたが、特にケーブル作成体験会または現地問題に参加いただいた方は謎の受付システムを利用されたのではないでしょうか。
そこで、今回のニュースレターでは、JANOG57 NETCON 現地イベントを支えたオンライン整理券システムについて紹介したいと思います。
背景
前回NETCONが開催されたJANOG55では現地問題の参加者が多く、非常に長い待ち行列が発生していました。
具体的には以下の問題が生じており、これが参加者や運営側に多くの負担をかけていました。
- 運営側が参加者のキューイングを手動で行っていたため、待ち行列が長くなると管理が大変だった
- 参加者目線で、どの問題が空いているのか直感的に分からなかった
- 待ち時間に現地問題コーナーに居なければならず、プログラムを見に行くことができない
そこで、今回のJANOG57 NETCONでは、参加者がスムーズに現地イベントに参加できるような受付システムの開発に取り組みました。
開発したシステム
システム全体の構成図は以下に示す通りです。
本システムはさくらのクラウド上で動作し、フロントエンドはReact + TypeScript、バックエンドはGo、データベースはPosgreSQLを用い開発しました。
また、参加者がリアルタイムで待機列がわかるようにWebSocketを利用、さらに監視基盤にはPrometheus + Grafanaを用いました。

参加者側と管理者側はそれぞれこのような機能を持っています。
- 参加者側
- 名前を登録すると、参加したいコースに並ぶことが可能
- 並び順が近づくと画面にポップアップが表示
- Slackと連携するボタンを押した上で並び順が近づくとjanog-meeting SlackからDMにて通知が届く
- 管理者側
- 管理者パスワードの入力後に各種操作が可能
- 参加者の呼び出し
- コースの受付停止/再開(人数指定も可)
- 待機者一覧の表示
- 管理者パスワードの入力後に各種操作が可能


会期中の様子
JANOG57が参加者数5000人を超える大規模イベントとなったこともあり、多くの参加者がNETCONの現地問題やケーブル作成体験会の会場にお越しいただきました。
現地問題では普段なかなか触ることができない貴重な機材が体験できたり、ケーブル作成体験会では日本製線さんのレクチャーのもとケーブルを作ったことがない方でも気軽に参加できる貴重な機会ということもあり、多くの参加者がいました。
呼び出し番号が近づくとポップアップ(Slack連携をしていればDMで通知)が表示されるため、その案内を見て会場に近づいてくれる人が多かったのが大変印象に残っています。
多くの参加者に満足のいく体験をしていただけたのかなと思います。



また、NETCON会場ではDashboardを一番左端のモニターで表示しており、人数に応じて色が変わるようにしていました。なお、Dashboardの上側は現在の待ち人数、下側は呼び出し番号(総参加者数)を示しています。
これらの写真は各日程終了後に撮ったものですが、多くの利用者がいたことがわかります。(順番にDay1、Day2、Day3となっています。Day2の参加者が一番多いことがわかりますね。)



さいごに
JANOG57 NETCONの現地問題、ケーブル作成体験会は快適にご参加いただけたでしょうか?
まだまだシステムに足りないところは多々ありますが、次回以降でもひょっとしたら再登場するかもしれませんね。
ぜひ次回のNETCONでお会いしましょう!
