Giter Site home page Giter Site logo

spring-raining / isucon6-final Goto Github PK

View Code? Open in Web Editor NEW

This project forked from isucon/isucon6-final

0.0 2.0 0.0 61.03 MB

License: MIT License

Makefile 0.13% Go 88.61% Perl 1.27% HTML 0.01% CSS 2.09% Ruby 1.41% Shell 0.29% JavaScript 2.85% PHP 1.08% Python 1.05% Scala 1.22%

isucon6-final's Introduction

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
    • テンプレートファイルの指定

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.