仙kisenon

プロジェクト

Kisenon における分離の単位 — 命名、ライフサイクル、カスケードのセマンティクス。

プロジェクト は、Kisenon における最上位のコンテナです。すべてのブランチ、エンドポイント、 ロール、データベースは、正確に 1 つのプロジェクトの下に存在します。

プロジェクトが所有するもの

  • プロジェクト作成時に自動作成される main ブランチ。
  • このプロジェクトにスコープされたコピーオンライトストレージ。他のどのプロジェクトもそのペー ジを読めません。
  • 作成時に固定された Postgres メジャーバージョン。
  • リージョン。作成時に選び、プロジェクトの生涯にわたって固定されます。 選べるリージョンはカタログに一覧されています。

プロジェクトの分離

ストレージ、WAL、キャッシュはプロジェクトごとに分割され、プロジェクト間に共有の書き込み パスはありません。異なるプロジェクトのエンドポイントは、たとえそれらのコンピュートポッドが 同じノードにスケジュールされていても、互いのストレージに到達できません。プロジェクトごとの ネットワークポリシーとストレージ認証トークンが、すべてのページリクエストをゲートします。

これは、コンプライアンスと騒がしい隣人の分離のために頼れる境界です。プロジェクト内のブランチ 境界はより緩やかです。ブランチはストレージを共有し、分岐するまで親のページを継承します。

命名

プロジェクト名はユーザーに見えるラベルです。次のとおりです。

  • 1〜63 文字でなければなりません。
  • ^[a-zA-Z][a-zA-Z0-9_-]*$ に一致します。英字、数字、_、-。英字で始まらなければなりませ ん。
  • グローバルに一意である必要はありません。組織内で一意であれば十分です。

内部のプロジェクト id(3f2c8a1e-5b7d-4c90-9e12-6a4b8d0f1c23 のような UUID)が、他のすべてのリソースが参照するものです。ラベルは 人間向けです。

Postgres バージョン

作成時にメジャーバージョンを選びます。対応バージョンは 17 と 18 で、デフォルトは 18 です。いったん設定すると、その場で変更 することはできません。メジャーバージョンのアップグレードは帯域外のマイグレーションであり、導入 されたときに文書化します。現時点では、バージョンは不変として扱ってください。

作成

Web コンソールから、New project をクリックし、名前を入力し、Postgres メジャーバージョンを 選び、リージョン を選びます(ドロップダウンはデフォルトで Auto (nearest))。 Create をクリックします。CLI から:

keon projects create --name my-app --pg-version 18

コントロールプレーンはストレージをプロビジョニングし、main ブランチを作成し、プロジェクト id を返します。エンドツーエンドで通常 2 秒未満です。

削除

プロジェクトを削除すると、それが所有するすべてのリソースにカスケードします。

  1. すべてのブランチ上のすべてのエンドポイントが停止・削除されます。
  2. すべてのブランチが取り壊されます。
  3. プロジェクトのストレージはアンロードされ、そのデータは非同期のコンパクションとオブジェクト ストレージからの最終的な削除のためにキューに入れられます。

カスケードは不可逆です。アンデリートはなく、カスケードが始まった後はストレージのアーティファ クトをコンソールから復元できません。データが重要なら、削除前に論理ダンプ(pg_dump)を取って ください。

keon projects delete <project-id> --cascade

確認プロンプトはなく、コマンドは即座に削除します。--cascade なしでは、main 以外のブランチが残っているか main にスナップショットがある場合、 409 has_branches で拒否されます。ブランチが main だけのプロジェクトは main ごと削除され ます。

関連

プロジェクト · Kisenon