プロジェクト
Kisenon における分離の単位 — 命名、ライフサイクル、カスケードのセマンティクス。
プロジェクト は、Kisenon における最上位のコンテナです。すべてのブランチ、エンドポイント、 ロール、データベースは、正確に 1 つのプロジェクトの下に存在します。
プロジェクトが所有するもの
- プロジェクト作成時に自動作成される
mainブランチ。 - このプロジェクトにスコープされたコピーオンライトストレージ。他のどのプロジェクトもそのペー ジを読めません。
- 作成時に固定された Postgres メジャーバージョン。
- リージョン。現在、すべてのプロジェクトは単一のホームクラスタリージョン (米国、ベアメタル)に存在します。マルチリージョンはロードマップです。
プロジェクトの分離
ストレージ、WAL、キャッシュはプロジェクトごとに分割され、プロジェクト間に共有の書き込み パスはありません。異なるプロジェクトのエンドポイントは、たとえそれらのコンピュートポッドが 同じノードにスケジュールされていても、互いのストレージに到達できません。プロジェクトごとの ネットワークポリシーとストレージ認証トークンが、すべてのページリクエストをゲートします。
これは、コンプライアンスと騒がしい隣人の分離のために頼れる境界です。プロジェクト内のブランチ 境界はより緩やかです。ブランチはストレージを共有し、分岐するまで親のページを継承します。
命名
プロジェクト名はユーザーに見えるラベルです。次のとおりです。
- 1〜63 文字でなければなりません。
^[a-zA-Z][a-zA-Z0-9_-]*$に一致します。英字、数字、_、-。英字で始まらなければなりませ ん。- グローバルに一意である必要はありません。組織内で一意であれば十分です。
内部のプロジェクト id(prj_<24 hex>)が、他のすべてのリソースが参照するものです。ラベルは
人間向けです。
Postgres バージョン
作成時にメジャーバージョンを選びます。デフォルトは 17 です。いったん設定すると、その場で変更
することはできません。メジャーバージョンのアップグレードは帯域外のマイグレーションであり、導入
されたときに文書化します。アルファでは、バージョンは不変として扱ってください。
作成
Web コンソールから、New project をクリックし、名前を入力し、Postgres メジャーバージョンを 選び、リージョン を選びます(ドロップダウンはデフォルトで Auto (nearest))。 Create をクリックします。CLI から:
keon projects create --name my-app --pg-version 17コントロールプレーンはストレージをプロビジョニングし、main ブランチを作成し、プロジェクト
id を返します。エンドツーエンドで通常 2 秒未満です。
削除
プロジェクトを削除すると、それが所有するすべてのリソースにカスケードします。
- すべてのブランチ上のすべてのエンドポイントが停止・削除されます。
- すべてのブランチが取り壊されます。
- プロジェクトのストレージはアンロードされ、そのデータは非同期のコンパクションとオブジェクト ストレージからの最終的な削除のためにキューに入れられます。
カスケードは不可逆です。アンデリートはなく、カスケードが始まった後はストレージのアーティファ
クトをコンソールから復元できません。データが重要なら、削除前に論理ダンプ(pg_dump)を取って
ください。
keon projects delete <project-id>CLI は確認を求めます。スクリプト化する際にスキップするには --yes を渡してください。