新しいバージョンが出ました。変更点を確認します。
公式解説と要約
Otto 0.2 - HashiCorpに解説があります。
New and Improved App Types
JavaとPythonのサポートがされたようです。
RubyとPHPのサポートが改善されたようです。
あまり興味がないので、詳しくは見ていません。
Implicit Dependencies
ottoは依存するサービスをDockerで起動できます。
ただし、自分でAppfileを書く必要があります。
例えば、ottoでRedisを使う環境を用意する - Qiitaです。
この依存サービスの検出を自動で行う機能です。
今の所、Rubyが対象です。
またソースを見た感じ、対応するGemは
- dalli
- pg
- redis
の三つです。
Layered Development Environments
仮想環境の作成時に使い回しできる部分をキャッシュして、作成を早くする機能です。
Layeredは、使い回す層と、新しく作る層をイメージしているようです。
実測
Macbook Proで試してみます。
- 2.4 GHz Intel Core i5
- 8 GB 1600 MHz DDR3
初回は変わらないので、2回目以降の実行時間を計ります。
次のコマンドで時間を計ります。
time otto dev
0.1.2 約6分半
400.32 real 12.26 user 7.39 sys
0.2.0 約2分
123.89 real 12.33 user 4.83 sys
感想
とても便利です。
環境を作る際に、パラメーターを間違えても気楽に作り直せます。
App Type Plugins
プラグイン機構が入ったようです。
試していません。
これで対応するアプリケーションの数が増えるといいですね。
Appfileのフォーマット変更
customizationにつける文字列の用途が変わりました。
本番で設定を変えたい場合に使うようです。
詳しくはCustomization - Appfile - Otto by HashiCorpを見てください。
以前の意味はよく覚えていません。
"docker"
が入っていることがありました。
before
application {
name = "mongodb"
type = "docker-external"
}
customization "docker" {
image = "mongo:3.0"
run_args = "-p 27017:27017"
}
after
application {
name = "mongodb"
type = "docker-external"
}
customization {
image = "mongo:3.0"
run_args = "-p 27017:27017"
}
全体の感想
真面目に自動的に開発環境を作るツールをつもりのようです。
労力がすごすぎて自分でやる気にはならないので、ありがたい限りです。