ICTトラブルシューティングコンテストの運営をしてきました

ICTSC5運営技術ブログ icttoracon.net

にも書いた通り、第5回ICTトラブルシューティングコンテストの運営をしてきました。
この記事の読者の中には、インフラ系でない方もいらっしゃると思うので、概要を少し詳しめに書きます。

ICTトラブルシューティングコンテストとは何か

僕達が毎日当たり前のように利用している、SNSソーシャルゲーム・通販サイトなどは、
PCやスマートフォンからインターネット回線を通じて、
その会社が用意した通信設備内にあるサーバーと通信します。
手元の端末からの要求を受けたサーバーは、要求に応じた処理を行い、
再び手元の端末へとデータを返します。

ところが、途中経由する回線や通信相手のサーバーに不具合が起こる事があります。
これらの障害は一般的には、
「インターネットにつながらない」「サーバーが応答しない」「うまく表示されない」など、
手元の端末でエラーメッセージという形でよく目にすることがあると思います。
多くの場合、こういった障害は、機器の故障・設定のミス・サイバー攻撃などにより起こります。
これらの障害に対処する技術を競うのがトラブルシューティングコンテストです。

利用者としては「使えてて当たり前のインフラが突然使えなくなり不便であったが、
時間を置くといつの間にか使えるようになっていた」としか感じることが無いかもしれません。
しかし実際の現場では、こういった分野に詳しいエンジニアが昼夜問わず対処を行っているのです。

キックオフミーテイングからホットステージまで

11/1に東京・六本木でキックオフ・ミーテイング(顔合わせ)に参加してから、
2/14〜のホットステージ(現地準備作業)までの間、
月に1度程度の運営委員・学生スタッフ参加のオフラインミーティング
月に1度の学生スタッフによるブートキャンプ(会場下見や機材確認などのオフライン作業)などがありました。
オフライン・ミーティングは、学生スタッフの多くは東京・大阪の学生なので、
東京と大阪にあるCsicoのオフィスを借りてテレビ会議システムで繋ぎ、
北海道の僕と福岡のカさんはPCからリモート参加していました。

この間、運営・参加者用NTPサーバーの構築用ansible-playbookの作成、
自分が出題する問題の作成と調整、他の出題者へのサーバー提供などを行いました。
スタッフ同士の連絡は主にSlackを使って行い、コードの管理はGithubを使っていました。

ホットステージからコンテスト当日まで

2/14〜2/26までの2週間、コンテスト会場での現地準備を行いました。
僕は私用のため途中から参加したのですが、会場設営作業、問題の出題準備などを行いました。
そのほか、普段行っているデータセンターでアルバイトの経験が
サーバーやスイッチのラックマウント作業や配線・整線作業に活かせたのではないかと考えています。
コンテスト当日は風邪を引きつらかったのですが、参加者の誘導などのスタッフ業務や出題した問題の採点を行いました。

問題の出題に関して

基本的にはサーバー系の問題を作るチームとネットワーク系の問題を作るチームに別れて作業していました。
僕が出題したのは一日目の3問目、「掲示板が機能しない!」です。
詳しい講評は後日公開されると思うのでここでは割愛しますが、
「蓄積型XSS脆弱性がある掲示板にHTMLタグを含む投稿が行われ、
掲示板が正常に機能しないから何とかしてくれ」っていう問題です。
参加チームの1/3が解答を提出してくれて、難易度としてもまあまかな、と思っています。

参加して得たもの

一番は他のスタッフや参加者の方との出会いが大きいと思います。
何日も寝食を共にしてるうちにスタッフ内での共通言語が生まれたりしました。
また、業務や趣味でサーバー構築やネットワーク構築など、
普段同じような事をやっているので、日頃抱えてる悩みを打ち明けたり、
技術的な壁にぶち当たったときに相談できる相手が増えました。

技術的な面では、ansibleとの出会いが大きかったと思います。 これはNTPサーバーの構築で使いました。というか試行錯誤してるうちに覚えました。
以前は自宅のサーバー構築をシェルスクリプトで行っていて、
シェルスクリプト生成・ホスティングサイトを作ったり

chamaharun.tk

していましたが、ansible-playbookならVMをイメージから展開する際も
イメージ内にシェルスクリプトを配置する必要が無いのでメンテナンスが楽になりそうです。

最後に

トラブルシューティングの問題を出す以上、あえて出題に必要なトラブルは起こすが、
それ以外のトラブルは起こしてはならないという縛りがあります。
これは意外と難しく、意図したトラブルが起きず、想定外の障害が発生したりします。
こうなると運営スタッフがトラブルシューティングしなければならず、
ホットステージ期間中からトラブル続きで本当に開催できるか不安になったりもしましたが、
他の凄腕エンジニアな運営スタッフの血の滲むような努力のおかげで、
なんとか大会を運営することができました。
僕自身初めての参加でしたが、得るものが多く充実した半年間だったと思います。
スタッフのみなさん、参加者のみなさん、そして応援してくださったみなさん、本当にお疲れ様でした。