ついにブラウザで動く時代へ!Kubernetesをブラウザに移植した「Webernetes」がすごい
I ported Kubernetes to the browser
I ported Kubernetes to the browser
なんと、Kubernetesがブラウザ上で動くようになりました!興味深いプロジェクト「Webernetes」が公開されています。ソースコードや詳細についてはGitHubリポジトリを確認してください。
GitHub: https://github.com/ngrok/webernetes
実際に動くデモ環境はこちらから触れます:
https://webernetes-demo.ngrok.app/
この投稿が盛り上がる前に、早めに投資しておくよ。これは間違いなく名作になる。
トークンのコストが爆上がりした時にも、こういうものが作れるようになるのか気になる。
Kubeの複雑さに関するジョークが飛び交うことを予想して書いておくけど、Kubeのようなものは「Kubeが達成しようとしているタスク」に対しては必要な複雑さレベルにある、という興味深い議論ができると思う。フレッド・ブルックスの「本質的複雑さ vs 偶発的複雑さ」のルールにも通じるね。
もちろん、もっとシンプルにできることに使えば、すぐに偶発的な複雑さに変わってしまうけど。
まずは何より、これ最高にクールだね。
LLMを活用したエンジニアリングのフレームワークとして、まさに正解の形だと思う。AIは驚くほど大量のコードを生成できるけど、真の価値はレビューの規律やその周辺にあるテストにあるからね。ブラウザ上でKubernetesを動かすという切り口も面白いけど、個人的にはワークフロー、特に「見た目が正しい」と信じ込むのではなく、k8sに対して振る舞いをテストする手法に惹かれる。AIが書いたコードに対してこれレベルの検証をしているチームがどれくらいあるんだろうか。今後数年でみんなが向かう方向性かもしれないね。
これは面白い。過去にKubernetesの教育用コンテンツを作っていた身としては、こういうものを作る魅力がよく分かる。以前Katacodaや類似のプラットフォームを使っていたけど、ユーザーごとに特定のセットアップで新しいインスタンスを即座に立ち上げられるのはすごく便利だったよ。
ただ現時点では、概念的・アーキテクチャの学習用として使うのが良さそうだね。本当に楽しくなるのは、kubectlをマスターし始めてからだし。
素晴らしい。自分が先に思いつかなかったのが悔しいくらい。学習や実験のための楽しいツールとして最高だね。
サービスロードバランシングやキューイングのシミュレーションができるWebページをずっと作りたいと思っていたから、これは素晴らしい土台になりそう。
興味深いメタトレンドとして、既存システムを新しいプログラミング言語(特にRustが多い)に書き換えるプロジェクトがAIを活用しているケースが増えているよね。
AIはソフトウェア工学全般の経済性以上に、こういったプロジェクトの経済性を変えたと思う。まあ、AIの直接的なコード翻訳は自分にとってはたいてい雑なものなんだけどね。
これに対処するためにやったことの一つに、こんな監査スキルを作ったんだ。
これだけで全ての不備を防げるわけじゃないけど、プロセス全体の一部として大量の問題を未然に防ぐことができたよ。
複雑で古い「退屈な」インフラ系ソフトウェアこそ、今AIによる書き換えが最も適しているのかもしれないね。
[0] https://pgrust.com
[1] https://github.com/malisper/pgrust
関連して、数日前に遊びでこんなのをVibecodingしてみたよ:https://imjasonh.github.io/kubescheduler-the-game/
楽しかった。
まずは、本当に素晴らしい出来だね!
小さな考えというか質問なんだけど、PodsをWeb Workersで実行するように構成されていないのは少し意外だったな。
Clockメカニズム(クラスターをステップ実行できる機能)があるから、その構成だと難しくなるのは分かるんだけど……SharedArrayBuffer(COOP/COEP設定が必要だけど)を使えば、Atomicsでなんとかなるんじゃないかな。
この設計で本格的にスレッドを扱えたらめちゃくちゃクールだと思う!
これって実際にブラウザ内でコンテナを動かしているわけじゃないよね?どのサービスもカスタムコネクタが必要そうだし、もっと重要なのは……
レンダラーが必要だよね?そうじゃないと「ブラウザに移植された」ってどういう意味なんだろう?
例えるなら、誰かがDOOMをブラウザに移植したなら、それはブラウザで遊べるってことだよね。でも、そこに表示されているデータベースをそのブラウザタブで実際に動かせるわけじゃないだろう?
例えばruby2dを立ち上げて、即座にクライアントサイドでRubyをサポートするなんてことはできない。ブラウザタブ内で実際に動かすには、ありとあらゆるカスタム作業が必要になるはず。
通常のバックエンドコンテナサービスならどこにでも移植して動かせるだろうけど、これはそうじゃないよね。
だから、どういう意図があるのか分からないし、もし間違っていたら誰か訂正してほしいんだけど、謳い文句通りのことができているようには見えないな。