インフラ・DevOps
マシンの接続
Connecting the Machines (herdr.dev)
要約
Herdrの最新アップデートv0.9では、複数のマシンを単一のHerdrクライアントに接続できるようになり、エージェントやローカルマシンの管理が大幅に簡素化されました。SSH経由でリモートマシンを追加でき、同じTUI内でそれらのワークスペース、タブ、エージェントをローカルのものと並行して管理できます。将来的には、Herdr Cloudを通じてSSH設定不要でマシンを簡単に接続できるようになり、クロス・マシン・エージェント連携などの機能も強化される予定です。
全文翻訳
Herdrの次のステップは、マシンの接続です。
Herdrはすでに70万以上のダウンロードと約1,000のプラグインを持っています。
エージェントやローカルマシンを管理するためにそれを使用している人々がいる、大きなコミュニティがあります。
Herdrにはすでに--remote機能があり、リモートマシンにアタッチできます。
エージェントは数時間実行されるため、常に稼働しているマシンで実行したい場合があります。
エージェントがまだ作業しているという理由だけで、ラップトップを開いたままにしておきたくないでしょう。
多くの人にとって、私たちが持ち歩くラップトップに数千ドルを費やすのではなく、どこか別の場所で強力なマシンを実行する方が理にかなっていると考えています。
VPS、独自のセットアップにあるMac mini、またはその両方を持つことができます。
しかし、これまでは、各マシンに個別のHerdrクライアントが必要で、通常は別のターミナルタブにありました。
各エージェントがどこで実行されているかを覚えておき、それらをチェックするためにそれらのタブを切り替える必要がありました。
それがボトルネックでした。
人々は何ヶ月もこれを求めていました。
Herdrのプラグインシステムといくつかの素晴らしい貢献者のおかげで、すでにコミュニティの回避策があります。
しかし、Herdr自体はそれをサポートするように構築されていませんでした。
なぜこれに時間がかかったのか
tmuxやZellijのようなマルチプレクサは、独立したサーバーをマシン間で管理する単一のTUIクライアントをサポートしていません。
それはニッチなユースケースでした。
エージェントがそれを変えています。
今では、どこでもエージェントを実行し、どこからでもそれらを制御したいと考えています。
Herdrにはすでにクライアントとサーバーがありましたが、1つのクライアントが1つのサーバーにアタッチされていました。
Herdrで見られたすべては、そのサーバーでレンダリングされていました。
複数のサーバーをそのセットアップに持ち込むことは、1つのサーバーがそれらの接続すべてを集約するようにするか、UIの場所を変更することを意味したでしょう。
私はクライアントにそれらのマシンをまとめることを望んでいましたが、各サーバーは独自のターミナルとエージェントを実行し続けるようにしました。
それはHerdr自体の構築方法を変更することを意味しました。
だからこそ、これに予想以上に時間がかかりました。
0.9では、HerdrのアウターUIはクライアントでレンダリングされます。
サーバーは引き続きセッションを所有し、ターミナルビューを提供します。
クライアントは、単一サーバーのインターフェース全体にアタッチするのではなく、それらの独立したサーバーを同じTUIにまとめることができるようになりました。
これは、クライアントをランタイムから分離し続けるにつれて、パフォーマンス改善の余地も与えてくれます。
マシンを接続する
このアップデートにより、以下を実行できます。
ターミナルウィンドウherdr machine add workbox
SSHターゲットを指定すると、そのマシンのワークスペース、タブ、エージェントが、同じHerdr TUI内のローカルのものと並行して利用できるようになります。
別のクライアントを開かずにマシンを切り替えます。
切断しても、エージェントは自分のマシンで実行され続けます。
Herdrにリモートマシンを追加する。
今のところ、それらのマシンはSSH経由で到達可能である必要があります。
それらはローカルネットワーク上にあるか、インターネット経由で到達可能であるか、Tailscaleのようなもので接続されている可能性があります。
多くの開発者はすでにそのセットアップを持っています。
セットアップの詳細は、Connecting machinesドキュメントで見つけることができます。
これはHerdrのマルチマシンサポートの最初のバージョンです。
TUIはマシンをまとめることができますが、エージェントCLIはまだ単一サーバー内で機能します。
まだ他のマシンで実行されているエージェントを見ることはできません。
CLIもマシン間で機能するようにしたいので、エージェントが異なるサーバーで実行されていても互いを見つけて連携できるようにしたいです。
クロス・マシン・エージェント連携は、これの上に構築したいことの1つです。
実際にそれを使用している人々からのフィードバックを得るために、この機能を追加する前にリリースしたかったのです。
何が欠けているか、どこで問題に遭遇したかを教えてください。
それは私が次に何を構築するかを決定するのに役立ちます。
1.0への到達
このアップデートの後、私が望むのは、それらのマシンの接続をもっと便利にすることです。
SSHについて考える必要も、複雑なネットワーク設定を扱う必要もありません。
1つのHerdrアカウントを通じて、どこでも、どんなマシンでも簡単に接続できるようになるはずです。
それがサンドボックス、仮想マシン、リモートサーバー、または独自のセットアップにあるマシンであっても、Herdrをインストールして他のマシンに接続できるようになるはずです。
これがHerdr Cloudの出番です。
このリリースには間に合いませんでしたが、次の欠けているピースです。
目標は、単一のコマンドでマシンをリンクし、それらに到達する方法を心配するのをやめることです。
Herdr Cloudは、それらの接続の中間層を提供します。
ターミナルトラフィックは、マシンとHerdrクライアント間でエンドツーエンドで暗号化されます。
あなたはまだあなた自身のマシンを持参します。
Cloudはそれらを接続します。それはあなたのためにエージェントをホストしません。
Herdrが異なるマシン全体でターミナルとエージェントセッションを所有していることも、さらに構築できる興味深いものをもたらします。
さらに探求したいことの1つは、エージェントセッションをマシン間で移動することです。これにより、作業を開始する前にどこに配置するかを選択する必要がなくなります。
それはマシンを接続する以上のことをしますが、Herdrが1.0に近づくにつれて考えているユースケースの種類です。
今のところ、0.9でSSH経由でマシンを接続できます。
次のピースを試したい場合は、Herdr Cloudの待機リストに参加してください。