😸

「十万点とるまで帰れません」ISUCON13ふりかえり:Team Berta Block

2023/12/04に公開

ISUCON13感想戦

Podcast風に録音しながらふりかえりを行いました!

https://www.youtube.com/watch?v=ogs5l4_eDGo

登場人物

デギン:日本の某メガスタートアップで働くサーバーサイドRubyエンジニア
ユウタ:Rubyが長いが、ここ一年半はUnity/C#やってた
ヒロ:ベルリンに10年住んでてJS/TSをやっているフリーランスエンジ二ア

発声練習

  • 子どもに起こされた
  • °Cのサウナに行ってた
  • ヨガ・ストレッチやってた

ISUCON13どうでしたか?

Languages we used:

  • Ruby
  • JS/TS? -> 二人以上の人が使える言語だといい

あらためて、ISUCON13どうでしたか?

  • 12予選も出ている
  • アプリ改善はしたが、インフラ改善はやっていない?
  • スコアもそんなに伸びなかった

ISUCON13はたたかえましたか?

  • 12よりは戦えた
    • 前日までの二日間直前合宿をした
    • 過去問、セットアップを練習していた
    • 立ち上げ、Git化、Alp/Slpのインストールの自動化
  • 12予選はリモート、今回はインパーソン
    • モブプロが捗った
  • サーバー3台の使い方、振り分けが早かった
    • 一台目:pdns、Nginx、Rubyサーバ(pdns関連のエンドポイントだけ)
    • sqlite3バックエンドを使った
    • 二台目:Rubyサーバ
    • 三台目:MySQL
  • sqlite3のバックエンドソウカンに成功した
    • 良い記事を見つけられた
  • estackprof
  • 水責め攻撃を防ぐ
    • dnsdistを使うとできるっぽいというのがわかった
    • 次なら、早めに諦める
      • 当日はできそうな気がしていた
  • アプリ改善の方が慣れているから、スコアは伸びたかな
    • DNSの攻撃によって、どれだけスコアが下がっているか、というインパクトを最初に検証したかった
  • けいそくのきほん
    • kataribe
    • NaruseJunチームが使っていたやつ

Try

  • どれだけチート使ってもいいから、十万点過去問でいってみる
  • 声のでかい人とできる人って違うよね
  • アイデア出しは早いが、実装が遅いかも
  • 十万点まで追い込んでみる

非同期でやったKPT

Keep

  • 最初の自動化がかなりうまくいった
    • Git化、Rake化
  • Pathで捌くApp server分けたのがよかった
    • initializeとregisterを、DNSと同じ場所でやった
  • PDNSのSqlite3への換装がハマらずできた
    • ペアプロしたから?
  • estackprof、すぐ使えた
  • すんなりmysqlを他サーバーに振り分けられた
  • 終わり方もすんなりできた
    • ログ止めるのと、Rebootで追試に対する確度が高い
  • ホワイトボードがよかった
  • オフライン最高
  • 合宿の三日間のリソース配分良かった
    • 直前二日間で問題によらない自動化が通用するレベルまで洗練された
  • Chat GPTとCopilotが使えるレベルで使えた
  • etagすんなり使えた
  • 画像をファイルシステムに逃すのがすんなりできた
  • 前回よりも戦えた感が半端ない

Problem

  • Alpだと前回の結果と比べにくかった
    • リクエストの増加が比べやすかったら中間結果見えた
  • Alpのグルーピング正規化に時間かかった
    • 半自動化できるポイントありそう
  • Nginxの設定試すのに時間かかった
  • 大局的なアプリケーションコードリーディングはしなかった
  • 多少、アプリケーションコードの動作確認を、本番環境+ベンチよりも早く回る、小さいサンドボックスが作れたかもしれない
    • ローカルとか
    • irbでrequireをちゃんとやるとか

Try

  • スコアに出ない中間結果を推測 → 計測する
    • DBの中身を見にいくとか
  • AlpのDiff書けそう
  • htopは常にみえるようにどこかに出しておきたい
  • ベンチマーカー書く?

Discussion