dojopaas icon indicating copy to clipboard operation
dojopaas copied to clipboard

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

Open miya0001 opened this issue 7 years ago • 9 comments

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

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

Related: https://github.com/coderdojo-japan/dojopaas/issues/28

miya0001 avatar Jul 23 '17 06:07 miya0001

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

miya0001 avatar Jul 23 '17 06:07 miya0001

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

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

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

yasulab avatar Jul 23 '17 07:07 yasulab

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

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

miya0001 avatar Jul 23 '17 08:07 miya0001

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

yasulab avatar Jul 23 '17 08:07 yasulab

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

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

miya0001 avatar Jul 23 '17 08:07 miya0001

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

yasulab avatar Jul 23 '17 09:07 yasulab

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

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

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

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

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

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

manzyun avatar Oct 25 '17 05:10 manzyun

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

yasulab avatar Oct 25 '17 05:10 yasulab

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

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

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

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

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

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

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

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

miya0001 avatar Oct 25 '17 07:10 miya0001