ISUCON10 オンライン予選に @hilotter、@Konboi と流れ弾で参加し予選敗退しました。
運営の皆様、ありがとうございました。今年もとても楽しかったです。

チームメンバーのブログ

下準備

覚えている範囲では以下に取り組みました。

  • deploy script の整備
    • Capistrano の調整
    • Go と Ruby を同時に使えるように準備
  • Ubuntu 18.04 / 20.04 に nginx, Redis, memcached, MySQL などのインストール script の検証
  • go-workers の検証
  • Makefile を書く
  • access log や slowlog の解析結果を GitHub issue に自動で投稿する script の調整
  • MySQL 8 のキャッチアップ

やったこと

インフラ関連と一部コードの修正でやったことは、以下のとおりです。

  • ソースコードと DB のバックアップを取る
  • Capistrano で deploy できるように調整
    • Systemd の設定も変更
  • MySQL 5.7 -> 8
    • ORDER BY DESC なクエリがそれなりにあったので
  • nginx で bot に 503 を返す
  • Konboi と一緒にコードを見ながら検索のクエリを改善
  • 複数台構成
    • 途中まで DB & app サーバ、Web & app サーバ、app サーバという構成にしていましたが、最終的には DB を chair と estate でそれぞれ別のサーバに分け、Web & app サーバは1台だけという構成にしました

失敗したこと

  • Systemd の設定ミス
    • Capistrano で deploy するようにしたものの、Go のバイナリが初期実装のものを使っていて修正した app の動作検証ができていなかった時間が数時間ありました
  • Capistrano の調整で時間を使いすぎていた間に二人にインデックスを貼ってもらっていたので、その部分を私がやっていたらもっとアプリケーションの改善に時間が使えて良かった

まとめ

コードを眺めて DB を垂直分割できそうなことに気がついたこと以外はあまり役に立てず、スキルの低さを痛感しました。やったことをまとめてみると大したことをできておらず、チームの二人にはとても申し訳なく思います。 また、毎年それなりに事前準備はしているのですが、結果が伴っておらず準備だけ頑張っている人になってしまっているので、それを脱却できるように精進したいと思います。

運営の皆様、いつも楽しいイベントを開催していただきありがとうございます。 いつも一緒に参加してくれているチームの二人もありがとうございます。

来年も開催されるようでしたら参加したいです。