ステージ

ステージ(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 で自動登録されます。

tips用アイコン

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
$

tips用アイコン

ステージ種別が開発環境(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(本番環境)

tips用アイコン

ここで表示されるステージは、選択しているプロジェクト内のステージとなります。

ステージの選択

ステージを選択したいときは、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 という名称のステージに作られることになります。

ステージの選択例 1

もし、別のステージに、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

ステージの選択例 2

ステージの削除

ステージを削除したいときは、magellan-cli stage delete コマンドを使います。例えば、V20 という名称のステージを削除したいときは、次のように使います。

$ magellan-cli stage delete V20
OK

ステージの削除に成功した場合は、OK のメッセージが表示されます。

tips用アイコン

ステージを削除すると、そのステージで管理している 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 コマンドで、予約確定したコンテナ起動数で、コンテナが起動します。

tips用アイコン

コンテナ起動数を設定する場合は、「イメージの準備」が完了している必要があります。

tips用アイコン

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 で準備した情報をもとにコンテナを起動します。

tips用アイコン

コンテナを起動する場合は、イメージの準備が完了している必要があります。

ログの確認

ログを確認したいときは、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 */*