Web開発
Show HN: Kedge – フォーク可能なVMスナップショットとグローバルSQLiteを備えたフルスタッククラウド
Show HN: Kedge – Full-stack cloud with forkable VM snapshots and global SQLite (kedge.dev)
要約
Kedgeは、ステートフルサーバーレスアプリケーションのためのグローバルに分散されたプラットフォームです。3ミリ秒でコードサンドボックスを作成したり、サービスインスタンスをスケーリングしたりできる高速VMオーケストレーターを備えています。フォーク可能なVMスナップショットと、オブジェクトストレージをバックエンドとするCRDTベースのレプリケーションシステムを採用したSQLiteデータベースが特徴です。
全文翻訳
Kedgeを構築しています。これはステートフルサーバーレスアプリケーションのためのグローバルに分散されたプラットフォームです。簡単な静的サイトを作成する方法は次のとおりです。
`echo '# Hello world!' | ssh kedge.dev`
Fly.ioを4年間手伝い、創設者の「グローバルHeroku」というビジョンに共感していました。そこで、「The Serverless Server」(https://fly.io/blog/the-serverless-server/)を書き、Lambdaの研究と、軽量VMを中心に構築されたモダンなサーバーレス製品のスケッチを行いました。このエッセイがKedgeの最初のインスピレーションとなりました。
Kedgeは、フォーク可能なVMスナップショットとウォームプールのツリー(Linuxカーネル -> ベースランタイム -> アプリ)を組み合わせて、3ミリ秒でコードサンドボックスを作成したり、サービスインスタンスをスケーリングしたりできる高速VMオーケストレーターを備えています。VMは、共有コピーオンライトメモリページのおかげでメモリ密度が高いです。軽量CGIスタイルの関数、公開OCIイメージ、またはBuildKitがコンパイルおよびデプロイするためのソースコードを実行できます。
Kedgeのグローバルコントロールプレーンは、最終的に一貫性のあるSQLiteデータベース上にあります。CorrosionとLitestreamからインスピレーションを得て、オブジェクトストレージをバックエンドとするローカルファースト、マルチライターCRDTベースのレプリケーションシステムを構築し、最近オープンソース化しました(https://github.com/wjordan/syzy)。
また、SQLiteクライアントを使用して、任意のインスタンスから`/shared.db`をクエリすることで、アプリケーションに組み込まれたレプリケートされたデータベースを利用できます。これにより、Kedgeはユーザーの近くにサービスをオートスケールさせることができ、各インスタンスは最終的に一貫性のあるデータをローカルレプリカからクエリできます。インスタンスやボリュームの配置をマイクロ管理する必要はありません。(便宜上、`/shared/`ファイルシステムアダプターもあります)。
Kedgeは、この同じデータベースをステートフルなサーバーレンダリングHTMLアプリケーションにも使用できます。データ属性は、フォーム、ボタン、値をアプリケーションデータベースのレコードにバインドし、Kedgeはデプロイ時にスキーマと操作をコンパイルし、ローカルデータをクエリしてリクエストを処理します。デモとして、約60行のマクロダウンとCSSで、ストーリー投稿、投票、コメント、認証を備えたHacker Newsクローンを作成しました(https://kedge.dev/docs/html-apps#kedger-news)。
公開フィードバックの収集を始めたばかりなので、ぜひご意見をお聞かせください!特に、最も新しく(そして最も野心的)な部分であるステートフルHTMLアプリケーションモデルに関するフィードバックに興味があります。プレビューは現在11リージョンで実行されており、試すことができます。まだ請求はありませんので、価格ページは見積もりです。ご覧いただきありがとうございます!