フォーク分離の実際
フォークのチュートリアルではコマンドを紹介しました。このチュートリアルではその意味を示します。稼働中のデータベースアプリをブラウザ上で数秒でコピーし、自由に編集しても、元のアプリはまったく気づきません。
チュートリアル動画
セットアップ
サーバー上で稼働している本物の PostgreSQL と pgAdmin インターフェース。フォークはその全体を瞬時にコピーオンライトで複製したものです。生まれた時点では同じデータ、その後は完全に独立した存在です。
ステップ1: 稼働中のアプリを確認する
rdc repo list --machine <machine-name> ライブ repository から始めます。マシン上で pgAdmin が動作している PostgreSQL データベースです。
ステップ2: フォークする
rdc repo fork --parent demo-pgadmin --tag experiment --machine <machine-name> --up --detach --up --detach を指定して repository を fork します。CoW クローンはほぼ瞬時に完了し、fork のサービスがすぐに起動します。
動画では両方の pgAdmin をブラウザで開きます。元のアプリはログインを求めます。本番は守られています。フォークはワークベンチに直接入れます。フォークは使い捨てのサンドボックスなので、ゲートが横に退きます(リポジトリ自身がフォークかどうかを判断して決めます)。
ステップ3: 2つの世界、1つのサーバー
rdc repo list --machine <machine-name> repository の一覧を確認します。オリジナルと fork が完全に隔離された状態で並列に動作しています。
フォーク内で何でも編集、削除、壊してみてください。元のアプリはサービスを続けます。フォーク時点では同じテーブル、それ以降はそれぞれ独立しています。
ステップ4: 捨てる
rdc repo delete --name demo-pgadmin:experiment --machine <machine-name> 作業が完了したら fork を削除します。元の repository はそのままです。
作成に数秒、破棄も数秒。だからこそ「本番をクローンして、何も壊さない」が特別なイベントではなく日常の習慣になるのです。
次: シークレットの管理