Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使い捨てでいろいろな用途のサーバーを立ち上げれるようにする #30

Open
miya0001 opened this issue Jul 23, 2017 · 9 comments

Comments

@miya0001
Copy link
Member

  • マイクラとかRoRとかNodeとかの起動用スクリプトをいろいろ用意する
  • Slackでのコマンドをつくる /give-me-serve <公開鍵>

みたいなことをして、その時々の道場のユースケースに合わせた使い捨てのインフラがホイホイ立ち上げれるようにするとかどうでしょう?
このサーバーは24時間後に自動消滅するみたいな。

Related:
#28

@miya0001
Copy link
Member Author

使い捨てな代わりに必要充分なスペックを用意してあげる

@yasulab
Copy link
Member

yasulab commented Jul 23, 2017

インフラがホイホイ立ち上げれるようにする

リソースの上限が決まっているので、恒常的に提供するのは公式サイトのWebサーバーなどに限定しておき、アプリケーション向けのものは一時的な作成・削除が良さそうですね 😆

一方で、そういった仕組みが欲しい道場がどのぐらいあるかは、ちょっと気になるところです🤔 (事前アンケートでマイクラ需要が十分高いことは分かっているのですが、他のアプリケーション向けの用途だとどのくらい使いたい人がいるのかは分かっていません ><)

@miya0001
Copy link
Member Author

これちょっと試してみますね。明日の朝までにはできると思います。(夜行性なのでw)

有効期限を6時間とかにするかわりに、将来子供が家でもプログラミングできるような環境を用意できたらいいかなと。
そのときに常に新品で最新のきれいな環境が数秒で手に入るとすごく素敵だと思うんですよね。

@yasulab
Copy link
Member

yasulab commented Jul 23, 2017

そうですね! 仕組みとしてはあると素敵だと思います ✨

@miya0001
Copy link
Member Author

専用のチャンネルを作ってそこで/dojopaas up <公開鍵>ってコマンドを送ったらサーバーが起動。SSHはパスワード認証も許可。サーバーが起動したら~/にパスワードを平文でおいておいて、それで道場の他の人もログインすることを想定。スパム行為は厳禁。それが判明した場合はそのチャンネルからブロックします。とりあえず4GBメモリぐらいのマイクラサーバーが起動する。

とまあこんな感じでとりあえずやってみます。

@yasulab
Copy link
Member

yasulab commented Jul 23, 2017

@miya0001 さんを Slack の admin にしておきました! おそらくチャンネル作成や Integration などもできるようになったと思いますが、もし何か問題あればご連絡ください 😸

@manzyun
Copy link
Contributor

manzyun commented Oct 25, 2017

横から失礼します。札幌地域のメンターをしています高橋です。

ただの思い付きなのですが、

リソースの上限が決まっているので、恒常的に提供するのは公式サイトのWebサーバーなどに限定しておき、アプリケーション向けのものは一時的な作成・削除が良さそうですね

こういう用途にコンテナ仮想環境ばっちり合うのではないかなと思った次第です。

Ubuntuですと LXD がインストールしやすく、使い勝手もVirtualBoxの様な仮想環境に近い考え方で使いやすいですが、用途的に考えると、コンテナ内のサービスが全て終了したらコンテナも終了する Docker の方がいいのかなと思います。 🐳

最も、メンターの自分がコンテナ仮想環境構築と運用の練習したいのが主な理由ではあります。 😈

@yasulab
Copy link
Member

yasulab commented Oct 25, 2017

Pull Request をお待ちしております! :)

@miya0001
Copy link
Member Author

たしかにコンテナのほうが向いているのですが、さくらさんから提供されているのはArukasではなくさくらのクラウドの方なので、それ用の大きめのイメージを立ち上げて、その中でコンテナを起動するという感じになります。

この場合、いくつかの問題がでてきてしまいます。

  • Dockerのホストマシンへのアクセス権をどうするの問題。ユーザーからのリクエストに応じて、docker run をなんらかの方法で自動実行させるなんらかの仕組みを自力で開発する必要があります。現状のdojopaasは既存のAPIを叩くだけで実装していますが、このケースではそもそもそのAPIを開発する必要があると思われます。
  • 大元のマシンのメンテナンスを有志で継続的にやらなければならない。影響範囲が大きい(複数の道場がこのマシンに依存する)ので、結果的に特定のだれかのリソースに大きく依存することになると思います。
  • 大元のマシンが落ちたら全部蒸発する問題。これによる最悪の状態を防ぐためにプロビジョナー等を用意する必要があって、ここでまたいろいろ開発する必要があります。

ちなみにdojopaasの実現にあたってはそれ用のサーバー等は一切用意していないので、その仕組みに対するメンテナンスはほとんど発生していません。

以上、こういうもろもろを考えるとボランティアベースで運用されている現状の体制ではかなり厳しいのではないかと思います。
Arukasのようなあらかじめ docker run だけでコンテナを起動できるような環境があればいいんですけどね。

もしDockerを使用することを前提とするなら、現状できそうなワークフローとしては、だれかがDocker環境をUbuntuに構築できるシェルスクリプト等々をOSSで公開してくれて、それを利用して各道場向けに起動したマシンの中で docker を走らせる感じかなと。

もしくは道場単位でArukas等のサービスにサインアップするかですね。

以上、Dockerでということになると、現状CoderDojo Japanが持っているリソースでは、それほど簡単ではない気がします。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants