4

私のチームと私は、私たちのWebサイトに「継続的展開を実装したいと思います。継続的デプロイとは、基本的に、本番環境に非常に頻繁に(1日に複数回)デプロイすることを意味します。おそらくEtsyはこれをいつもやっています。

私たちの環境はTomcat+Nginxです。HudsonとホットデプロイするHudson+Cargoプラグインを使用して、スナップショットサーバーへのコード変更の継続的デプロイ(つまり、従来の継続的インテグレーション)をすでに行っています。

驚くべきことに、これはうまく機能します(ただし、時間の経過とともにtomcatを再起動する必要がある場合があります)。

ウェブサイトをダウンさせることができないため、本番環境ではこれは機能しません。2つのWebアプリを用意し、1つがダウンしているときにリダイレクトするなどのアイデアがあります。

誰かがアイデアを持っているか、実際の本番環境でこれを以前に行ったことはありますか?

4

3 に答える 3

2

http://radar.oreilly.com/2009/03/continuous-deployment-5-eas.htmlから:

リアルタイムのアラート。展開プロセスがどれほど優れていても、バグは発生する可能性があります。最も厄介な種類は、バグの原因となったコードがデプロイされてから数時間または数日後まで現れないバグです。これらの厄介なバグをキャッチするには、問題が発生したときに通知し、人間がそれらのデバッグに関与できるようにする監視プラットフォームが必要です。

本番環境への継続的デプロイを効果的に実装するには、適切な監視が必要です。そうしないと、アプリケーションで何が起こっているのか理解できません。

于 2011-02-21T15:27:34.087 に答える
0

これにはapachehttpd2.2とmod_proxyを使用します

次に、2つのtomcatを実行します。1つはポート8080に、もう1つはポート88にあります。ファイアウォールはこれらのポートへの外部アクセスを防止するため、ポート80のみが開いています。

Apache HTTPdは、ポート80でリッスンするように構成されています

設定も非常に簡単です。これは、箱から出してすぐに機能する基本構成(httpd.conf)です。

 LoadModule proxy_module modules/mod_proxy.so
 LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
 LoadModule proxy_http_module modules/mod_proxy_http.so
 <Proxy balancer://mycluster>
    BalancerMember http://localhost:8080
    BalancerMember http://localhost:88 status=+H
 </Proxy>
 ProxyPass / balancer://mycluster/
 ProxyPassReverse / balancer://mycluster/

「+H」は、バックアップサーバーとしてのみ使用されることを意味します。したがって、8080に到達できない場合は、8080がオンラインに戻るまで88で実行されます。

于 2011-09-16T13:21:06.577 に答える
0

なぜこれが良い考えだと思うのかわかりませんが、それはあなた次第です。

私は、Tomcat自体にある2つのホットシステムでバランサーアプリケーションを使用し、サーバーを展開、展開、および再起動する前にサーバーを停止します。ホットサーバーごとに2分のウィンドウを残しておくと、問題がないはずです。

編集:私は毎回展開することはありません。私たちもQA(tm)があまりない小さな会社ですが、ビルドシステムをワンクリックで稼働させることができます。

于 2011-02-21T13:52:55.030 に答える