17 ポイント 投稿者 GN⁺ 2024-03-25 | 1件のコメント | WhatsAppで共有
  • 簡単なセルフホスティング: インストールと保守を最小限の労力で行えるように設計されている。アプリケーションは、複雑な内部問題の解決なしに動作するよう作られている。
  • 水平スケーラビリティ: シンプルでありながら強力な構造により、Lapdev は単一マシンからサーバーフリートまで拡張可能で、開発者チームの成長に合わせて拡張できる開発環境管理システムを提供する。
  • コードで定義された開発環境: Devcontainer のオープン仕様を使用して開発環境をコードで定義できるため、他の開発者間で標準化された開発環境を複製し、環境に起因する問題を防ぎ、全員に一貫した設定を保証できる。
  • オンボーディング時間の短縮: 新しいプロジェクトに開発者をオンボーディングする際、マシン上に環境を準備するのに何時間も、あるいは何日もかかることはない。すぐにコーディングを始められる。

計画中の機能

  • 多様なワークスペースタイプのサポート: 現在 Lapdev はコンテナベースのワークスペースのみをサポートしているが、たとえば開発フローで k8s クラスターを実行したい場合には制約がある。VM とベアメタルマシンのサポートがロードマップにあり、Windows、Linux、macOS などさまざまな OS への対応も計画されている。これにより、開発者はマシンを切り替えることなく、同じローカルマシン上で開発とデバッグを行える。

GN⁺の見解

  • Lapdev は、開発者が自分のサーバーやクラウド上でリモート開発環境を簡単に設定・管理できるようにするツールであり、開発環境の標準化と迅速なオンボーディングを可能にすることで効率性を高められる。
  • このようなツールは、特に大規模な開発チームや複数のプロジェクトを同時に進める組織にとって有用であり、開発環境の一貫性を維持しながら拡張性も提供する。
  • ただし、この技術を導入する前に、セキュリティ、互換性、サポートに関する考慮事項があり得るほか、セルフホスティングソリューションの利用によって生じる追加の保守負担も考慮する必要がある。
  • 現在の市場には、Visual Studio Code の Remote Development Extensions のように類似した機能を提供する他のツールもあり、利用者は自分の要件に最も適したツールを選ぶ必要がある。
  • Lapdev が VM とベアメタルマシンのサポートを計画している点は、多様な開発環境の要件を満たそうとする取り組みの一環と見なせ、これは開発者により幅広い選択肢を提供するだろう。

1件のコメント

 
GN⁺ 2024-03-25

Hacker Newsのコメント

  • 月額料金なしでローカルサーバーハードウェア上の開発コンテナ(devcontainers)を使えるのはとても良さそう。これまでは Docker-compose と JetBrains のリモート SSH 開発を使ってきたが、この新しい方法のほうがずっと良いのではと期待している。

  • リモート開発環境には関心があるが、クラウド上でさらに多くのソフトウェアを管理することにはあまり気が進まない。Skypilot を使えばクラウド API へのプラグインがあり、k8s クラスターを管理しなくても開発マシンを起動できるので、良いアイデアだと思う。Jupyter サーバーの起動にはよりうまく機能したが、「完全な」開発マシンも SSH / VS Code の設定を少し行うだけで実現できそうだ。

  • リモート開発環境は、特定の種類の開発には制約があるかもしれない。たとえば iOS や Android アプリ開発は難しかったり、GPU が必要なゲーム開発ではビルド成果物のダウンロードが遅くなる可能性がある。これを解決するためのガイドがあるのか気になる。

  • こうしたツールについてもっと知りたい。Coder が .devcontainer のアルファサポートを含んでいるのは見たが、ほかの OSS オプションは知らない。

  • Proxmox の設定を使えば、既存の VM / コンテナを複製して VSCode を向けるだけでよい。これは実際には何を追加しているのだろうか? 自動化というわけでもなく(Proxmox で数回クリックする操作を自動化できる)、リソース管理でもない(Proxmox がストレージなどを処理する)。開発者のアイデンティティだろうか? それだけが本当に必要なら、環境に SSH キーを配布するための(比較的簡単な)スクリプトを書けばよいはずだ。

  • リモートマシンでホストされる VSCode である code-server と SSH を一緒にインストールしなければならなかった経験からすると、その両方がより適切に管理された体験はとても興味深い。

  • この分野の別の実装としては devpod.sh がある。

  • ボタンのテキストを中央に配置して、ボタンらしく見せるというデザインのヒント。テキストを左揃えにするとラベルのように見えることがあるので、小さな変更ではあるが、より良いコンバージョンにつながるかもしれない。

  • リモートサーバーにインストールされることは理解した。しかし、これはリモート環境を提供するのか、それともローカル環境を提供するのか? そしてこの文脈でいう「環境」とは何なのか? Docker compose ファイルや .env のことか? コードや vim の設定か? Vagrant のような VM なのか?

  • 現在の devcontainers の主な問題は、GUI アプリをリモートで実行すると GUI がサーバー側でしか開かないこと。このソリューションで GUI をリモートにエクスポートできるのか気になる。