Vercel のアンチベンダーロックインに関する考え
Next と Vercel が密すぎて良くないのでは、というのは度々話題になるけど Vercel に言わせると逆なんだよという主張をするブログが公開された。読んでみたら結構目から鱗だったので共有
ベンダーロックインとは
アプリケーションを構成するものはサーバ以外にもロードバランサやデータベース、サーバレスなど色々あるので、たとえば AWS で構成したサービスを GCP に引っ越すの大変だよね、という話
Vercel の FDI
AWS なら serverless コマンドを使うし、 Cloudflare なら wranglar コマンドを使って開発する。でも、結局開発者がしたいのはアプリケーションを作りたいのであってクラウドアダプターのためのコードを書くのは本質じゃないよね、ということで Vercel が提案するのが Framework-Defined Infrastructure という考え方
[Vercel のブログより引用]
フレームワークをクラウドに合わせるのではなく、クラウド側がフレームワークの生成物を解析してインフラを構築するという考え方。まぁ Heroku か、という感じはある。すごい便利な Heroku 。サービスがスケールするとコストも指数関数的にスケールするのも同じ
でもまぁ、確かにローカルで動かしているフレームワークがそのままクラウドでも動くのが理想なわけで、そうなっていればデプロイ先を切り替えるだけですむので確かにベンダーロックフリーな考え方ではある
本当に Vercel はロックインしていないの?
Vercel のプレスリリース記事を眺めているとわかるけど さまざまな フレームワークに 対して 設定不要でデプロイ可能にする取り組みをしており確かにその方向性で進んでいるのだろう
じゃあなんで、 Vercel がロックインしているっぽいかというと Next.js の開発者を多数抱えており FDI を実現するために内部のドキュメント化されていない API なども使われており、結局それって FDI ができるのは Vercel だけじゃんという話なのだろう
OpenNext みたいな取り組みもあるが、 Vercel がそれに対して真剣に取り組んでいる雰囲気は感じないし。ブログの中で主張している Vercel 以外でサーブされている Next.js の方が多いというのもコスト的な部分も大きいだろう。そもそも、こういう主張をしなければいけないという点からも真にベンダーロックフリーかというとそうではないのだろうなぁ、という感想
まとめ
技術的な話においては Vercel がベンダーロックしていないというのは確かに。そして Vercel の方向性にも納得がいった。 FDI という考え方は面白いし Vercel 以外にも FDI 的なサービスを展開するクラウドベンダが増えてくれると、逆にフレームワーク側もそれを前提にするようになりエコシステム全体に健全な競争が生まれるのではないかな
ではそれが理想なのかというとそんなことはなくて、クラウドベンダがよしなにするのはブラックボックス化につながるし、クラウドベンダがフレームワークを抱えて自分のための開発をさせるみたいな方向に安易に流れることもあるだろうしなので、利用する側としてはロックインのコストやリスクをきちんと考慮して設計・選択することが大事なのだろう
Vercel と Cloudflare の信頼性に対するスタンスの違いを考察した以下の記事も面白いので技術選定時には考慮に入れると良いかも
Discussion