boost.勉強会 #13 @仙台 鳥小屋

19
ツイターの皆様からの声 2013/10/19 Boost. 勉強会 #13 @仙台

Upload: yuto-m

Post on 28-Jun-2015

665 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Boost.勉強会 #13 @仙台 鳥小屋

ツイターの皆様からの声

2013/10/19 Boost.勉強会 #13 @仙台

Page 2: Boost.勉強会 #13 @仙台 鳥小屋
Page 3: Boost.勉強会 #13 @仙台 鳥小屋

( ◔⊖◔)...

Page 4: Boost.勉強会 #13 @仙台 鳥小屋

鳥小屋を支える技術&

問題点

2013/10/19

進捗ありま

す!!!

Page 5: Boost.勉強会 #13 @仙台 鳥小屋

自己紹介

アッ、ぶんちょうです

@yutopp

C++とか文鳥とか好きです。

Page 6: Boost.勉強会 #13 @仙台 鳥小屋

鳥小屋 is 何

● いわゆるオンラインコンパイラ・実行環境○ wandbox○ ideone○ codepad

● ユーザーが投げたコードをサーバー側で実行し、結果を返す

● http://sc.yutopp.net/

Page 7: Boost.勉強会 #13 @仙台 鳥小屋

作った理由

● オンラインコンパイラの処理系は更新が遅いものが多い

● 競技プログラミング用のジャッジサーバーなどのセキュリティに興味があった

● iPadなどのタブレットで簡単にコードを実行できる環境が欲しかった

Page 8: Boost.勉強会 #13 @仙台 鳥小屋

将来的に

● 実際にジャッジサーバーとして使ったり● 様々なバージョンの処理系・ライブラリを用いた

コードの検証に使えるように

Page 9: Boost.勉強会 #13 @仙台 鳥小屋

実装

Page 10: Boost.勉強会 #13 @仙台 鳥小屋

!!!問題点だらけなので

アイディアを下さい!!!

Page 11: Boost.勉強会 #13 @仙台 鳥小屋

構成

● 実行ノード● ビルドサーバ● フロントエンド

フロントエンド

キュー

Rails

タスク管理

S3

実行ノード

ビルドサーバー

GCCやBoostなどのビルド

鳥小屋用の処理系

ソースコードや入力など

ソースコードバイナリ実行結果

Page 12: Boost.勉強会 #13 @仙台 鳥小屋

実行ノード

● コードを実際に実行するサーバー群● Amazon EC2(Amazon Linux)を利用

○ 万が一破壊された場合は使い捨て

● データの通信にmsg packを利用● セキュリティは最低限

○ ネットワークの利用○ ユーザーによる別プロセスへの干渉など

Page 13: Boost.勉強会 #13 @仙台 鳥小屋

実行ノード(sandbox)

● ユーザーの操作一つをタスクとする● タスク一つの実行につき、実行ユーザーを生成● 実行環境を整えた後、権限を奪いまくる● その他、ネットワークなどのLinux名前空間を分

ける

Page 14: Boost.勉強会 #13 @仙台 鳥小屋

実行ノード(sandbox)

● ptraceやsecomp-bpfも使ってみたい○ C++ Compiler Firmなど

● Amazon Linuxのkernelが古い○ つらい

● せめてchrootとか

Page 15: Boost.勉強会 #13 @仙台 鳥小屋

ビルドサーバー

● 実行ノードで利用するバイナリをビルドする● Amazon EC2(Amazon Linux)を利用

○ 使いたいときに使いたいだけ

● 実行ノードと環境が同じなので、ひたすらビルドする

● バイナリをRPMに詰めて、各実行ノードに配信(S3 bucketで共有)

Page 16: Boost.勉強会 #13 @仙台 鳥小屋

フロントエンド

● 末端のデータ管理○ ユーザー管理○ ソース管理○ タスクキューイング

● データベースにMongoDB● Ruby on Rails4● 実行ノードなどとのやり取りにmsgpack

Page 17: Boost.勉強会 #13 @仙台 鳥小屋

問題点がザクザク

● セキュリティの問題○ sandboxがやっつけに近い○ 内部の破壊

● ビルドサーバーでRPM化が失敗しまくる○ checkinstallがアアアッ

● 文鳥用のプログラミング言語が載っていない○ 文鳥言語をBoost.Spirit.QiとLLVMを使って作ってみて

Page 18: Boost.勉強会 #13 @仙台 鳥小屋

これから

● sandboxの強化● ビルドサーバーの安定化● APIの提供

Page 19: Boost.勉強会 #13 @仙台 鳥小屋

鳥小屋たのしいヤッター!!!

ありがとうございました