今回も技術系のお話です。
通常開発時には、
- 手元のマシンに環境を作ってプログラミング
- お客さんとの確認用に開発サーバにアップロードして確認
- 本番環境にアップロードして本運用
こんな流れをとってるかと思います。
1 - 3は新機能の追加とかバグ修正とかで毎回繰り返される流れですね。
そこで問題になるのが、2 - 3を手動でやっている場合、都度手作業が発生し、非常に面倒な事になります。人の手で作業するとどうしてもミスも発生しますね。
そこで登場するのがデプロイツールです。この2 - 3の作業を自動化してくれるツールですね。とても便利。
調べてみると、デプロイツール、色々あります。
Capistrano(Ruby製。Railsアプリのデプロイはほぼこれ?)
Mina(Ruby製。新参者っぽいですね)
Fabric(Python製。軽量っぽい)
Cinnamon(Perl製。こちらも軽量っぽい)
うちの会社ではCinnamonを使っています。Capistranoの高機能部分をバッサリ切り落としたような非常にシンプルなものです。なぜCapistranoではなくCinnamonを使っているのか、それは以下の理由です。
デプロイ、というと大げさだけれども個人で作っているような小規模なものなので「ssh して git fetch する」程度のことができればそれで良いわけで、緊急時の切り戻しとかいろいろな ops ツールとの動的な連携といったところまでは必要としていない。Capistrano を使って居ると Rails を前提としている箇所とか、バックグラウンドであれこれやっているところを自分の環境に合わせるためにいろいろ work around を入れる必要があって、どうにもそこがストレスでした。
シンプルであるが故に目が届きやすい、何をやっているのかわかりやすいというわけです。
railsless-deploy とかもあるみたいですけど、使った事がありません。
RailsのアプリケーションであればCapistranoが相性良いのはわかっているのでそちらを使うでしょうね。
Cinnamonは$HOME/.ssh/configの中身を見てくれるので、デプロイ先の設定がとても楽です。
Rails, Plack等本番環境に配置後アプリケーションサーバの再起動が必要なものはほぼ導入したら楽になるのは確実ですが、PHPのお仕事では、高度なキャッシュ処理等を導入していない場合、ほとんどファイルをアップロードするだけでデプロイ出来てしまいます。
(PHPの利点でもありますね)
しかし、高度なキャッシュ処理や複数台数による分散処理等を行なっている場合は、やはりこういったツールを導入した方が便利なのとそうでない場合もコマンド一発でデプロイ出来てしまうので楽になれます。
所詮デプロイ、本番環境に反映して動けばいいのだ。でも、それすらも楽したいのだ。
そんなエンジニアさん、お待ちしてますよ!
0 件のコメント:
コメントを投稿