ステージ
ステージ(Stage)は、Worker を管理します。下図は、バージョン毎にステージを分けて、Worker を管理している例です。
さらに、ステージには、「開発環境」、「ステージング環境」、「本番環境」と 3 種類の種別があります。この機能を組み合わせて活用することで、バージョンアップ対応や iOS・Android 向けアプリの審査対応など柔軟に対応できます。
例えば、下図のような運用ができます。
V10<production>
は、ProductA Version 1.0 の本番用として運用します。V11<staging>
は、ProductA Version 1.1 の iOS・Android 対応クライアントアプリの審査対応用として運用します。V20<development>
は、ProductA Version 2.0 の開発用として運用します。
このように、本番環境、審査環境および開発環境を 1 つのプロジェクトで、並行して管理・運用することができます。
※< > 内は、ステージの種類を表しています。development: 開発環境 / staging: ステージング環境 / production: 本番環境
ステージ規則
- ステージは、複数登録できます。
- ステージは、1 種類の Worker を保有できます。
- ステージは、Worker を複数起動することができます。
- ステージは、
development
(開発環境)、staging
(ステージング環境)およびproduction
(本番環境)のいずれかの種別を持ちます。 - ステージは、プロジェクト登録時に、ステージ名
DefaultStage1
、ステージ種別development
で自動登録されます。
Trial プラン制限事項
制限事項 | 制限内容 |
---|---|
登録できるステージ数 | 2 |
起動できるコンテナ数 | 5 |
ステージ名規則
- プロジェクト内でユニークでなければなりません。
- 大文字小文字の区別はありません。
- 使用可能な文字は、英数字(a-z, A-Z, 0-9)です。
- ただし、先頭に使用できる文字は、英字(a-z, A-Z)のみです。
- 文字数は、63 文字以内です。
magellan-cli を使ったステージの操作
magellan-cli
コマンドラインツールを使ってできるステージの操作は、magellan-cli stage
に集約されています。
どのような操作ができるかは、magellan-cli stage help
とすることで確認することができます。
$ magellan-cli stage help
Commands:
magellan-cli stage list # stages の一覧を表示します
magellan-cli stage show [ID] # IDで指定されたstageの詳細を表示します
magellan-cli stage select NAME # NAMEを指定してstageを選択します
magellan-cli stage deselect # stageの選択を解除します
magellan-cli stage delete NAME # NAMEを指定してstageを削除します
magellan-cli stage create NAME [-t development|staging|production] # NAMEとTYPEを指定してstageを登録します
magellan-cli stage planning # 次回リリースのステージの計画に切り替えます
magellan-cli stage current # 現在リリースされているステージの情報に切り替えます
magellan-cli stage prepare # containersを準備します
magellan-cli stage repair # stageの状態を修正します
magellan-cli stage update ATTRIBUTES # 選択したstageの属性を指定したATTRIBUTESで更新します
magellan-cli stage release_now # すぐにリリースを開始します
magellan-cli stage logs # workersのログを表示します
magellan-cli stage set_container_num NUM # 選択されたimageのcontainersの数を設定します
magellan-cli stage reload # 最後にselectされたものをロードし直します
magellan-cli stage help [COMMAND] # 利用可能なコマンドの一覧か特定のコマンドの説明を表示します
Options:
-v, [--version], [--no-version] # バージョンを表示します
-V, [--verbose], [--no-verbose] # 追加のログ情報を表示します
-D, [--dryrun], [--no-dryrun] # 登録や削除などのシステムには反映させずにアクションを実行します
以下では、ステージの登録、ステージの一覧、ステージの選択、ステージの削除、コンテナ起動数の設定、コンテナの起動およびログの確認について、使い方を簡単に紹介します。詳しくは、Reference を参照してください。
ステージの登録
ステージを登録したいときは、magellan-cli stage create
コマンドを使います。例えば、V20
という名称のステージを登録したいときは、次のように使います。
$ magellan-cli stage create V20
$
実行後、何もメッセージが表示されなければ、ステージの登録に成功しています。
ステージには、種別がありますが、種別を指定せずにステージを登録すると、開発環境(development)となります。
種別を指定してステージを登録したいときは、magellan-cli stage create
コマンドで、-t
オプションを使います。例えば、本番環境のステージ V10
を登録したいときは、次のように使います。
$ magellan-cli stage create V10 -t production
$
ステージング環境のステージ V11
を登録したいときは、次のように使います。
$ magellan-cli stage create V11 -t staging
$
ステージ種別が開発環境(development)のときのみ、ステージ名と同名のクライアントバージョンが自動的に登録されます。
ステージの一覧
ステージの一覧を確認したいときは、magellan-cli stage list
コマンドを使います。
$ magellan-cli stage list
+---+----+----------+------+------------+--------+---------------+
| | id | project | name | stage_type | status | container_num |
+---+----+----------+------+------------+--------+---------------+
| * | 54 | ProductA | V20 | 1 | 1 | 0 |
| | 53 | ProductA | V10 | 3 | 1 | 0 |
+---+----+----------+------+------------+--------+---------------+
Total: 2
行頭についている *
は、その行が示すステージが選択状態であることを表します。この例では、V20
というステージが選択されていることを表します。magellan-cli
を使った Worker への操作は、この選択されたステージの中で作用します。詳しくは、「ステージの選択」を参照してください。
stage_type
の列は、ステージの種別を表しています。その値と意味は次の通りです。
stage_type | 意味 |
---|---|
1 | development(開発環境) |
2 | staging(ステージング) |
3 | production(本番環境) |
ここで表示されるステージは、選択しているプロジェクト内のステージとなります。
ステージの選択
ステージを選択したいときは、magellan-cli stage select
コマンドを使います。V10
という名称のステージを選択したいときは、次のように使います。
$ magellan-cli stage select V10
「ステージの一覧」で述べたように、magellan-cli
を使った Worker への操作は、この選択されたステージの中で作用します。
例えば、Worker を登録するコマンド magellan-cli worker create
コマンドは、この選択されたステージの中で作用します。
$ magellan-cli worker create WorkerV10 mycompany/producta-worker:1.0.0 -A worker-v10.yml
この例では、WorkerV10
という名称の Worker を登録していますが、V10
という名称のステージに作られることになります。
もし、別のステージに、Worker を作りたければ、magellan-cli stage select
コマンドを使って、希望するステージを選択してから、magellan-cli worker create
コマンドを使う必要があります。
$ magellan-cli stage select V20
$ magellan-cli worker create WorkerV20 mycompany/producta-worker:2.0.0 -A worker-v20.yml
ステージの削除
ステージを削除したいときは、magellan-cli stage delete
コマンドを使います。例えば、V20
という名称のステージを削除したいときは、次のように使います。
$ magellan-cli stage delete V20
OK
ステージの削除に成功した場合は、OK
のメッセージが表示されます。
ステージを削除すると、そのステージで管理している Worker も削除されます。動作中の Worker も停止後に削除されます。
コンテナ起動数の設定
コンテナの起動数を設定・変更したいときは、magellan-cli stage set_container_num
コマンドと magellan-cli stage prepare
コマンドを使います。例えば、コンテナを 5 つ起動したいときは、次のように使います。
$ magellan-cli stage set_container_num 5
$ magellan-cli stage prepare
magellan-cli stage set_container_num
コマンドで、コンテナ起動数の仮予約をとります。magellan-cli stage prepare
コマンドで、その予約を確定させます。
「コンテナの起動」で紹介する magellan-cli stage release_now
コマンドで、予約確定したコンテナ起動数で、コンテナが起動します。
コンテナ起動数を設定する場合は、「イメージの準備」が完了している必要があります。
magellan-cli stage set_container_num
コマンドと magellan-cli stage prepare
コマンドの間で、他のリソースに対する操作をすると、設定したコンテナ起動数が無効となることがあります。
コンテナの起動
コンテナを起動したいときは、magellan-cli stage prepare
コマンドと magellan-cli stage release_now
コマンドを使います。
$ magellan-cli stage prepare
$ magellan-cli stage release_now
magellan-cli stage prepare
コマンドで、コンテナ起動数や使用するイメージ情報などをもとにコンテナ起動のための情報を準備します。- 直前で他のコマンドを挟まずに、
magellan-cli stage prepare
コマンドを実行している場合は、スキップしてください。例えば、「コンテナ起動数の設定」を実行した直後の場合は不要です。
- 直前で他のコマンドを挟まずに、
magellan-cli stage release_now
コマンドで、magellan-cli stage prepare
で準備した情報をもとにコンテナを起動します。
コンテナを起動する場合は、イメージの準備が完了している必要があります。
ログの確認
ログを確認したいときは、magellan-cli stage logs
コマンドを使います。
$ magellan-cli stage logs
2015-04-10 16:21:31:1:WorkerV10_1: Pulling repository youraccount/yourimage
2015-04-10 16:21:31:1:WorkerV10_1: Unable to find image 'youraccount/yourimage:1.0.0' locally
2015-04-10 16:22:08:1:WorkerV10_1: Status: Downloaded newer image for youraccount/yourimage:1.0.0
2015-04-10 16:22:10:1:WorkerV10_1: I, [2015-04-10T07:22:10.996092 #1] INFO -- : ====== Magellan Worker start ======
2015-04-10 16:22:21:1:WorkerV10_1: I, [2015-04-10T07:22:21.773445 #1] INFO -- : Started GET "/messages/ping" for 175.28.230.116 at 2015-04-10 07:22:21 +0000
2015-04-10 16:22:21:1:WorkerV10_1: I, [2015-04-10T07:22:21.767405 #1] INFO -- : Magellan requested with ``
2015-04-10 16:22:21:1:WorkerV10_1: I, [2015-04-10T07:22:21.785072 #1] INFO -- : Completed 200 OK in 6ms (Views: 0.3ms | ActiveRecord: 0.0ms)
2015-04-10 16:22:21:1:WorkerV10_1: I, [2015-04-10T07:22:21.778556 #1] INFO -- : Processing by MessagesController#ping as */*