🙄

ISUCON練習用にメンテナンスしている問題について

2024/09/29に公開

ISUCONの練習で過去問を用意しようとすると、repoが壊れていてセットアップできなかったり、セットアップできても諸々バージョンが古すぎてつらい、とかが起こりがちです。

ということでISUCON練習用に自分がメンテナンスしている問題があるので紹介します。何か問題があったらPRを送ってくれればベストエフォートで見るつもりなので何かあったら教えてください。

いずれも詳しい使い方は各repoのREADMEに書いてあるので参照してください。

private-isu

https://github.com/catatsuy/private-isu

気付いたらISUCON練習用のデファクトスタンダードになっていて、ISUCON本の題材にもなっています(私はISUCON本の著者の1人です)。CIも整備されて、現在も精力的にメンテナンスをされています。

元々新卒研修用に作られたので、難易度は本家ISUCONより低めですが、ISUCONのエッセンスはふんだんに取り入れられているので、ISUCON未経験者の人が最初にやる問題としておすすめです。

環境は以下のものが使えます。

  • AMI
    • 一番簡単なはず
    • なんとARM版も用意しています(面倒)
  • Ansible
    • AMI構築に利用していて、他のクラウドサービスなどでも動く気がする
  • Docker Compose
    • 整備されているのでそんなに難しくないはず
  • 手元
    • 構成を把握していればそんなに難しくない

言語は以下のものをメンテナンスしています(他の言語も一部存在しているが、自分にメンテナンスができないのでrepoには取り込んでいない)。

  • Ruby(オリジナル)
  • Go
  • PHP

ISUCON本の読者のために自分の体力が続く限りはメンテナンスしていくつもりです。

isucon9-qualify

ISUCON9予選問題も少し前からメンテナンスしています。

https://github.com/isucon/isucon9-qualify

難易度が高めなので、初めての人は手も足も出ないかもしれません。まずはprivate-isuで感覚を掴んでから、次の問題として活用してもらえればと思っています。

他の問題と違う点として、外部サービスを2つ起動する必要があります。また今の設定だと正当なTLS証明書が必要なので注意してください。

環境は以下のものが使えます。

  • AMI
    • 今年活用するように作りましたが、今後については未定です
  • Ansible
    • AWSで実行する前提ですが、他のクラウドサービスでも動く気がします
  • Docker Compose
    • 整備されているのでそんなに難しくないはず

言語は以下のものをメンテナンスしています。

  • Go(オリジナル)
  • Ruby

他の言語実装についてはPRをお待ちしています。

private-isuとは違い、本の題材になっているわけではないので、個人的に使いたい範囲でメンテナンスをしています。なので何かあればPRを送ってもらえたらと思っています。

Discussion