5

私は、人々が Lisp webapp の展開と更新 (特に更新) を本番環境でどのように行っているかを聞くことに興味があります。

Ruby では、私を含めて多くの人がデプロイに Capistrano を使用しています。これは、優れた間接化とコマンドをリモートで実行する機能を提供し、最も重要なのは (私の考えでは) 動作中のコード ベースにロールバックする機能です。

SSH トンネルを介して Swank 経由で接続され、その場で変更される、長時間実行される Lisp プロセスのアイデアは、一般的なアイデアであることがわかっていますが、私はその Koolaid を飲みませんでした。プロセス (これは、メモリ内の現在の状態と、すぐにメモリ内にある新しいオブジェクト定義との間の予期しないインピーダンスの不一致など、何か問題が発生した場合にトラブルを求めているように見えます)。

hunchentoot を使用して (またはお気に入りの Lisp アプリ サーバーをここに挿入して) ほぼステートレスな (または完全に) webapps を作成できることを考えると、Capistrano のようなものを使用して、Lisp コードを中断せずに更新することもできるようです。 ) アップストリーム チャネルの nginx の背後に隠れて、hunchentoot プロセスをダウンさせるコレオグラフを正しく作成し、コードの更新後にそれらを元に戻すことができる場合、たとえば、少なくとも 1 つの hunchentoot プロセスをクラスターで実行したままにして、それらをすべて元に戻します。任意の時点で (CGI または mod_lisp を使用できますが、私はそのアプローチに特に興味はありません。ただし、そのアプローチが本当に好きな場合は、少なくともそれについて何か言ってください。私は学びたいです)。たとえば、Passenger (必要に応じてプロセスをスピンアップするため、オレンジとリンゴを比較しています) を使用すると、

さて、これはちょっとしたとりとめのない話です。実際、私はこれをすべて試してみようとしていますが、これらのアイデアについて他の人からフィードバックを得たいと思っています。多分あなたはより良い考えを持っています。

ありがとう

4

1 に答える 1