ローカルサーバーレス関数開発ランタイム「 fun 」のリリースにより、特に AWS Lambda 関数に関して、サーバーレスコンピューティングの本質と有用性について、開発者コミュニティ内で興味深い議論が巻き起こっています。このツールは Lambda 環境を模倣してローカル開発を簡素化することを目指していますが、サーバーレスアーキテクチャの基本概念に関する議論も再燃させました。
対応ランタイム環境:
- Node.js :システム node 、v6.10.0、v8.10.0、v10.15.3、v12.22.7、v14.18.1
- Python :システム python 、v2.7.12、システム python3 、v3.6.8、v3.7.2
- Go : go1.x (プラットフォーム固有のコンパイルが必要)
- カスタム:提供されるランタイムサポート
サーバーレスのアイデンティティ危機
開発者コミュニティは、サーバーレス技術の用語とマーケティングについて考えさせられる質問を投げかけています。コミュニティからの特に共感を呼んだ批評は以下の通りです:
これらを Lambda やサーバーレス全般と呼ぶことを常に嫌っていました。それらは純粋ではなく、間違いなくサーバー上で動作しています...本質的にはオペレーティングシステムなのです。
この視点は、サーバーレスが従来のホスティングソリューションを現代化した巧妙なマーケティングに過ぎないのではないかという継続的な議論を浮き彫りにしており、一部の開発者は PHP 共有ホスティングモデルとの類似性を指摘しています。
実用的なアプリケーションと開発の課題
哲学的な議論はさておき、コミュニティの議論では Lambda の実用的なアプリケーションへの本質的な関心が明らかになっています。開発者たちは積極的にユースケースを探求し、異なる開発アプローチを比較しています。「 fun 」ランタイムは、異なるユーザーコンテキストやサンドボックスメカニズムなどの制限はあるものの、 AWS Lambda の本番環境に近い開発環境を提供することで重要なニーズに対応しようとしています。
主な制限事項:
- sbx_user1051 ではなくローカルユーザーとして実行
- プロセスのサンドボックス化や chroot が未実装
- プロセスの一時停止には SIGSTOP / SIGCONT を使用
- ネイティブ実行ファイルはローカルOSに合わせてコンパイルする必要あり
代替ソリューションとコミュニティの選好
この議論では、 SST ( sst.dev )など、ローカル Lambda 開発機能を直接提供する複数の代替アプローチが浮き彫りになりました。 Serverless Framework の経験がある開発者の中には、「 fun 」をより単純な代替手段として興味を示す人もいますが、完全なデプロイメント管理ではなく、特にローカルランタイムシミュレーションに焦点を当てているという異なる目的を指摘する声もあります。
技術的な実装の考慮事項
このツールの実装により、 Lambda 開発における重要な技術的考慮事項が明らかになりました。複数の Node.js バージョン(6.10から14.x)と Python ランタイムをサポートしていますが、一部のコミュニティメンバーは Ruby サポートの欠如を指摘しています。プロセス管理やセキュリティコンテキストに関して、ローカル開発環境と本番環境の間のランタイムの違いは、開発者にとって重要な考慮事項であり続けています。
結論として、「 fun 」はローカル Lambda 開発のための価値あるツールを提供していますが、コミュニティの議論はサーバーレスパラダイムとその実装に関するより広範な疑問を提起しています。これらの議論は、開発者がクラウド関数の開発とデプロイメント戦略にアプローチする方法を形作り続けています。