HN 日本語サマリー

← 一覧へ戻る
Web開発

Show HN: Kedge – フォーク可能なVMスナップショットとグローバルSQLiteを備えたフルスタッククラウド

Show HN: Kedge – Full-stack cloud with forkable VM snapshots and global SQLite (kedge.dev)

101 pointsby wgjordan20 コメント

要約

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リージョンで実行されており、試すことができます。まだ請求はありませんので、価格ページは見積もりです。ご覧いただきありがとうございます!