ZeroTurnaroundはリリース自動化ツールであるLiveRebel 2.6が利用可能になったことを発表した。
バージョン2.6の新しい機能は下記の通り。
- Java、PHP、Python、PERL、Rubyを使ったアプリケーションのビルド
- データベースのアップデートとバージョンコントロール。関連するアプリケーションと共にデータベースのアップデートや変更のロールバックができる
- 複数プラットフォームのアップデート。多くの異なる環境のプラットフォームやデータベースを使ってビルドしたアプリケーションをリリースできる
- ひとつのリリースを複数の異なる環境へ配置できるプロパティ管理。特定の構成を各環境へ適用することで実現する
- リアルタイムでのアプリケーションとサーバの監視
InfoQはZeroTurnaroundのLiveRebelのプロダクトマーケティングマネージャであるKrishnan Badrinarayanan氏に話を聞いた。
LiveRebelを継続的統合のツールではなくテストとリリースのツールとして位置付けていますね。LiveRebelはテストとリリースに何を加えたのでしょう。
リリースアプリについて考える場合、CIツールはスクリプトの強化版と見なすことができます。何でもできますが、コーディングとメンテナンスが必要です。またCIツールは環境や構成、データベースなどの知識を持っていません。単にタスクをひとつひとつ実行して成功、失敗をログ出力するだけです。
LiveRebelのアプローチは違います。環境についてすべてを知っています。どのサーバが動いているか、どのアプリケーションのどのバージョンが配置されているかなどです。特定の環境の資産を管理しバージョン管理します。データベースと環境の変更を理解しバージョン管理します。
アジャイル開発チームは数日の間隔を置いて頻繁にリリースをします。QAチームは各リリースを取り上げ、LiveRebelを使ってコード、DB、構成をテスト環境に自動配置を行います。配置するとLiveRebelは自動的にテストスクリプトを実行します。テストに通ると運用チームはステージング環境にアプリケーションを配置します。LiveRebelは自動的にスモークテストを呼び出します。最終的には、運用チームが停止時間なしで運用環境へアプリケーションを配置します。配置が失敗したら、LiveRebelが自動的に変更をロールバックします。これがLiveRebelの典型的な使い方です。
LiveRebelはコード、DB、構成を物理環境、仮想環境、クラウド環境をまたいで同期しリリースします。配置自体がバージョン管理され、自動化されており、可逆性があってテストできます。結果として、チームはリリースをしっかり管理し、予測可能なかたちで素早く済ますことができます。品質を落としたりユーザエクスペリエンスを劣化させたりしません。
LiveRebelを使う場合、CIツールは必要ですか。LiveRebelがCIツールの役割を果たしてくれるのでしょうか。
CIツールとは担う領域が違います。LiveRebelはビルドをしません。ビルドの後に使われるツールです。LiveRebelはリリース自動化ツールであり、人気のCIツールにはリリース自動化ツールが統合されています。例えば、開発チームがリリースパッケージを作り、LiveRebelコマンドセンターを使ってアップロードすると対象の環境に素早く安全に配置してくれます。
チームがJenkins、Hudson、BambooのようなCIツールを使っている場合、LiveRebelプラグインをインストールしてLiveRebelへ配置物を渡す配置タスクを作成できます。そして、LiveRebelが配置を行います。停止時間なしでコード、DB、構成を一緒を対象の環境へ配置するのです。
プロパティの管理について教えてください。
テスト環境、ステージング環境、運用環境または顧客の環境へとリリースしていく場合、環境プロパティや環境変数、構成が環境ごとに異なるという問題に行き当たります。普通この問題は各環境ごとにリリース物を別けることで解決します。この場合、リリース物が環境ごとにわずかに異なることになり、完全にテストできません。また、独自に作成したスクリプトやツールを使って環境ごとに異なるプロパティを外部に出す方法もあります。
LiveRebelを使うと、リリースエンジニアは各環境に適用するプロパティを明記できます。対象の環境にはすべて同じパッケージを配置し、環境ごとのプロパティを適用できるのです。また、プロパティの定義がなかったらアラートを上げてくれます。
つまり、テスト環境でもステージング環境でも運用環境でも同じリリースプロセスで対応でき、実際にユーザに使われる前までにテストされていることを保証できるのです。
キャパシティの監視について教えてください。
LiveRebelは各アプリやサーバの隣にビーコンがついているという、サーバとアプリケーションの基本的な監視の仕組みを提供します。このビーコンは受信するリクエストの数に反応します。監視対象の健康状態に応じて緑から赤に変わります。マウスオーバすると、ビーコンはポップアップで、レスポンスのスループットの統計値を表示します。これはApplication Performance Monitorを置き換えるものではありません。サーバとアプリケーションの健康状態を監視するための主要なメトリクスを提供します。
Ant、Maven、Gradleのような一般的なビルドツールはサポートしますか。
はい。LiveRebelはコマンドラインインターフェースとREST APIを提供します。スクリプトを少し書けば、LiveRebelとビルドツールを統合できます。
Hudson、Bamboo、TeamCityやソースコード管理システムとは統合できますか。
LiveRebelにはHudson、Jenkins、Bamboo向けのプラグインがあります。TeamCity向けプラグインは現在開発中です。プラグインはプラグインメニューからインストールでき安全な方法でLiveRebelと通信できるようセットアップできます。一度セットアップすれば、CIツールからLiveRebel経由でリリース物を自動的に対象の環境へ配置できます。配置はすべてフェールセーフなので、失敗したら、LiveRebelはユーザに影響がないようにすべての変更をロールバックします。ソース管理システムについてはこれからの対応になります。アプリケーションの構成を管理するために、LiveRebelはGITを使っています。
姉妹製品のJRebelとは全く違うツールのようですね。シナジーはあるのでしょうか。
もちろんです。ソフトウエアの現実への浸透を促進するという私たちのミッションの一部を担っています。私たちはソフトウエアチームの開発と提供のプロセスより楽で生産的なものになるように支援します。
どのOSで動きますか。Windows、Unix、Linuxはどうですか。
Windows、Unix、Linux、さらにMacOS Xで動作します。サポートしている環境はここを見てください。
無償で提供されるとウェブサイトに書いてあります。価格体系を教えてください。
管理されるサーバが2つまではLiveRebelは無償で使えます。つまり、アプリをホストする2台のサーバにアプリケーションを配置するのに使う場合、LiveRebelは無償です。データベースサーバは計算に入りません。管理するサーバを追加する場合、1台あたり年額420ドルかかります。
氏は、開発の次のステップとしてプラットフォームの網羅性を向上させ、リリース管理のサポートを強化することに注力していると教えてくれた。LiveRebelのより詳しい情報はここで入手できる。