Localhost時代の終焉
(dx.tips)- 未来には、あらゆる開発はローカルホストではなく「クラウド」で行われ、ノートPCは単なるクライアントになるだろう
- 2030年代の開発者ウィッシュリストを書いてみると
- 安価なギガビットインターネット(5G/Mesh WiFi)
- 数日持つバッテリーを備えた安価な開発マシン
- アプリは規模に関係なく数秒でビルドされ、テスト環境とステージング環境はキー入力した瞬間にそのままリアルタイムで反映される
- 個人の開発環境は、どんなデバイスを使っていても自分と一緒に持ち運べる
- アプリの環境依存要素(HTTPS証明書から本番DBのサンドボックス化されたフォークまで、あらゆるもの)が、機能開発をしたいすべてのチームメンバーに即座に提供される。ドキュメントもRunbookも不要で
- アイデアから顧客への提供までを1週間で実現可能(ローコードビルダーとBackends-as-a-Serviceを使って)
- MVPからユニコーンまで数週間で成長可能:サーバーレスおよび「新しいHeroku」のようなプラットフォームを活用。認証/決済/DB/コミュニケーションはワールドクラスのSaaSで処理
- 上のことの大半は、ローカルホストではなく「クラウド」で実行することを必要としている
ブラウザがOSを「うまくデバッグされていないデバイスドライバの集合」へと縮小したのだとすれば
クラウドは開発マシンを「うまく管理されていない環境モックの集合」へと縮小しつつある
"Future is Just Not Evenly Distributed"
- 開発者生産性を高めるために投資した大企業は、すでにクラウドで働いている
- Google Cider : GoogleのWeb IDE。巨大なPiperファイルシステムを搭載し、コードレビュー/ビルド/テストを統合。ローカルマシンにコードを落とす必要がない
- FB On-Demand : ローカル環境以上に忠実なリアルタイム機能プレビューを可能にするため、「On-Demand」で環境をプロビジョニング。FBでは「ローカル開発」自体が存在しない
- Etsy : すべての開発がCloud VMで行われる。「VSCodeがVMにSSHして動作するため、VMの外にコードをチェックアウトしたことがない」
- Tesla : 自動車OS開発をローカルからクラウドへ移行(それ以前は開発者にビルド用の高価なデスクトップを提供していたという)
- Palantir : Coder(リモート開発環境SaaS)とEKSを使うRemote Ephemeral Workspaceへ移行
- Shopify : 開発者の大半がSpinと呼ばれるクラウド開発環境へ移行(xhyve上で動く軽量VM)
- GitHub : GitHubの開発の大部分をCodespacesへ移管
- 彼らは大企業だから……「小さな会社にも適しているのか?」という疑問が出てくる
→ 答えは「おそらく可能だろう。ただし、今の形のままとは限らない」
→ これらの多くは相当な社内投資が必要で、既存の社内インフラを活用していたからこそ実現できた
→ しかし、こうした技術が製品化され、顧客層間の共通点が見つかるにつれて、ますます広く普及していくだろう - Preview環境の商品化はすでに始まっている
→ Netlifyの初期の革新は、フロントエンドプロジェクトをプレビューできるようにデプロイ可能にしたこと
→ ほぼすべてのドキュメントサイトは今や何らかのDeploy Previewシステムを使っており、Jamstackアプリではリリースプロセスにも利用できる
Jobs to Be Done of Localhost
- ローカル開発で起きることは、今や攻撃を受けている
- リモートでコードを修正して実行 : GitHub Codespaces, Replit, Code.com, CodeSandbax, GitPod
- リモートサーバー上で実行しつつ、ローカルでコードを修正 : VSCode + Azure VM/Amazon Workspace, Jetbrains Fleet, Okteto Sync
- ブラウザ内の軽量JS Containerでコードを修正して実行 : Stackblitz
- コードをリモート実行 : Bret.dev
- ステージング : Planetscale Branches, Stripe Test mode keys, Railway Ephemeral Environments, Okteto environments, Coherence workspaces
Pushback: It's Still Not Good Enough
- まだ十分によいとは言えないので、今のところは過度に期待しないこと
- この「ローカルホストを殺すもの」が成功するには、プロビジョニング自体が不要にならなければならない
- 人によるだろうが、私は自分の書いたコードのプレビューを始めるのに10秒かかるだけでも長すぎると感じる
- Netlify Dropでフロントエンドプレビューをデプロイするのは1秒で済むが、Netlify CLIは10秒かかる
- それでもまだ習慣的にローカルホスト開発環境を使っている:自分の反復サイクルがミリ秒単位だからだ
- このレイテンシ問題は、ムーアの法則がクラウドインフラに適用されるのと似ている
- 今は十分でないとしても、5年後にもう一度見てみよう
10件のコメント
ラップトップの役割は、本当にターミナル + 会議用マシンになったようです。ARMベースでバッテリーが20時間以上持つChromebookが、理想的なラップトップになりつつあるようです。
そうなってくれればとても良いのですが、今仮想環境クラウドを導入した会社の状況は、開発者に8GBメモリ、4 CPU仕様の環境を強制していますよね(事情をあれこれ説明してようやく16GB)。現実と理想の乖離があまりにも深刻です。
GitPodではローカルのVSCodeで編集することもサポートされています。使ってみると本当にシームレスです(ターミナルのタイピングが少し遅延したり、フォルダを展開するときにややもたつく程度を除けば、体験にほとんど差はありません)
テンセントもやるとは驚きです。 https://zdnet.co.kr/view/?no=20220620003628
ワークステーションの時代が来るのでしょうか…
タブレットは今よりさらに注目されそうですね。
個人的なプロジェクトは、できるだけクラウドベースで開発するよう移行していますが、IDEだけでは限界がある気がします。レイテンシも改善されるといいですし、普段使う手軽なツールもすべて自由に使える環境が必要か、あるいは何らかの補完的なアプローチが必要だと思います。Windows、Mac、Linux、VR機器を問わず、同じ開発体験で継続的に開発できるなら本当に理想的だと思います。ちょうど今のXboxゲームのように、ローカルにもクラウドにもそれぞれ利点があるので、すぐに一つの方法だけを追求するのは難しいですが、最終的にはやはり全部クラウドに向かうのではないでしょうか。
個人的には、レイテンシの問題などを考えると、WebContainersのようにローカルマシン上でコンテナ化されたフルスタック環境を立ち上げて開発し、その成果物をクラウドに保存・反映する、そういう方向になるのではないかと思います。本文に出てきたものでは、StackBlitzのようなものがありますね。
localhostの終焉というよりは、thin client の再来……だと見ています。利便性から始まって、後にはセキュリティのために……という流れになっていくのではないかと思います。
全文訳ではなく要約なので、原文もご覧ください。
文末の人々の反応をまとめた部分で、「Reddit / HN では誰もがこうなることを嫌っている」とありましたが……
私は十分あり得る未来だと想像できます。もちろん移行の過程では「ローカルでコード編集 + リモートVMで実行」が混ざって進むでしょうが、
クラウド上でローカルのコード編集並みのレイテンシがある程度保証されるなら、ほとんどの会社がこれを選ぶように思います。
私もそうですが、Reddit や HN では「自分のデバイスに自分のデータ」を愛する人が多いからだと思います。私も自分のデータに対するコントロールを手放したくないので、クラウド IDE はサンプルコードを書くときにだけたまに使うようになってしまいます。