Skip to content

isucon/isucon6-final

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ISUCON6 final

当日のレギュレーションも参照してください。

ディレクトリ構成

├── ansible      # 競技者用インスタンスのセットアップ用ansble
├── azure        # 競技者用インスタンスのdeploy to Azure
├── bench        # ベンチマーカーのソースコード
├── portal       # ポータルサイトのソースコード
├── provisioning # 運営側(portal/bench/proxy)のセットアップ用ansible
└── webapp       # 各言語の参考実装

競技者用アプリケーション

DockerだけインストールされていればOS等は問わない。

webapp 以下を競技用マシンの /home/isucon/webapp に置けばセットアップ完成。

起動方法などは webapp/README.md に書いた。

portal, bench, proxy

portalに試しにログインしたい

  • 一般アカウント
    • user: 1 pass: y8aaZLdAXAXn
  • 運営アカウント
    • user: 9999 pass: Btw5R5fskVvXOzT

編集する場合は、/portal/cmd/importteams/main.go/portal/data/teams.tsv を参照のこと

portal

最初に起動する必要がある。consulが起動している。

bench

最低1台起動している必要がある。

proxy

VM名にはproxyと含む必要がある。consulが動くために最低3台必要なので、proxyは2台以上起動する必要がある。proxyは以下のような挙動をする。

  • portalと同じconsulのクラスタの一員になる
  • proxyはセットアップ時に、portalからnginxの設定を取得して設定を反映する
  • portalは参加者のIPアドレスが変更されたら、consul event -name="nginx_reload" -node="proxy"を叩く
    • /usr/local/bin/nginx_reloadを叩く
    • 全proxyはportalからnginxの設定を取得して設定を反映する
  • proxyは投入されると、consulのクラスタにjoinする
    • /usr/local/bin/update_membersを叩く
    • portalはmemberが増えたら、portalのDBに登録して、ベンチマーカーに渡す

proxyを減らす場合は以下の手順が必要

  • 減らすインスタンス上でconsul leaveと打つ

proxy全台をconsulで操作したい

  • proxy全台のnginxを起動したい
    • consul exec -node proxy "sudo systemctl start nginx"
  • consulのイベントを発行する
    • consul event -name="nginx_reload" -node="proxy"

Azure-CLIを使う方法

install

npm install azure-cli -g

login

azure login
azure account list
azure account set <ID>

Portalデプロイ例

parameters.json
{
    "vmName":{
        "value": "isucon6f-ex-portal(change name if you want)"
    },
    "sshPublicKey": {
        "value": "ssh-rsa ...(your ssh-public-key)"
    }
}

portalが要求する変数を書いておく。

command
azure group deployment create --template-file deploy.json -e parameters.json isucon6-final-dev
  • -e
    • パラメータ設定用ファイルの指定
  • --template-file
    • テンプレートファイルの指定

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published