https://www.youtube.com/watch?v=GnIsmNN1sVA
1 comment | 0 points | by WazanovaNews 約2時間前 edited
Deisは、Heroku的なワークフローを実現する Docker/CoreOSベースのPaaSです。オープンソースのプロジェクトですが、既にOpDemandが運営会社になっており、同社はこれまでに約2.5億円の資金調達も完了してます。フルタイムでオープンソース開発を担当する正社員の募集も始まって、最新バージョンは0.9.1という段階のようですので、これから本格的に立ち上がっていくのでしょうか。
Deisのクリエーターであり、OpDemandのFounderでもあるGabriel Monroyのが、dockdercon 2014でDeisのこれまでの進捗を紹介しています。
- Deisは最初のマルチホストDocker PaaS。最初はPythonで書いていたが、最近はGoが中心。
- フルタイム5名 + ~40名のコントリビューター
- すぐにプロトタイプをだしてコミュニティからのフィードバックをもらおうという方針で、最初のversion 0.1.0は最低限、Command-line interface / API server / Git server / Buildpacks / Scheduler を揃えたいと考えた。実際には代替策として、Chef DB schedulerの利用、当時のDockerはプロセスシグナルをうまく扱えなかったのでUNIX signalを代用、バインドマウントなどで乗り切った。
- その後Dockerが急速に成長。Deisも機能を順次追加。log / run / release / sharingなど。
- Docker はversion 0.8でかなり安定してきたので、DeisのDocker間の整理に着手。具体的には、
- PaaSとして当然期待されるコンポーネント(controller / db / cache / logger / builder / registry / router)のコンテナ化。
- バインドマウントからDockerイメージへの切り替え。
- Dockerファイル shimを用意し、事前にHeroku Buildpackのアウトプットを挿入できるように。
- 設定データにレイヤを追加し、コンテナ/DB/クレデンシャルの組み合わせの設定などをDockerファイルに置かなくても済むようにした。
- プライベートレジストリからコンテナをディストリビュートできるようにした。
- 苦労したのは、
- Dockerボリュームは独自な抽象化をしていて扱いづらい。
- Dockerインデックスのエラーは内容がよくわからない。(最近はよくなった。)
- 本番環境にあるコンテナはデバッグが困難。(これはまだ続いている。)
- 次にDeisの人気が上がってくるとスケーラビリティが課題になった。
- ノードのコンバージェンスが遅いので、サーバ20台もしくは1分間にデプロイ5回までという制限。
- CoreOS/Fleetでschedulerの開発に着手。
- 開発中の新機能の中で注目してほしいのがDeis Build
- git pushに替わるワークフロー。ビットごとに既存のDockerイメージをプロモートできる。変更されてないDockerイメージをDeisのHeroku的な12 facor モデルにもってきて、runtime設定を付けて、モデルは開発者のワークフローと同じ流れになる。アプリは自動的にrouterとつながり、curlできて、DBとか色々なパターンの設定、そして設定レイヤも追加される。DockerのデフォルトのプロセスタイプであるCMDも採用。複数のバージョンのコンテナとそのログ収集など簡単に展開できる。
- public indexもしくはprivate registryを利用できる。
- mesosphere: Marathonを使ってDeisアプリをMesosにデプロイ。Googleレベルの環境を提供することを目指したプロジェクト。
- Dockerが発表したlibswarmのメリットは大きい。Docker APIによるエコシステムの更なる成長にもかなり期待している。
Qiitaの記事も参考になりました。
#deis #opdemand #docker #coreos #paas #heroku