0

私は数年前に Plone 2 を使っていましたが、そのワークフローとセキュリティ システム (新しいテーマ エンジンは言うまでもありません) が現在のプロジェクトに最も適しているように思えます。Plone 4 は使いやすさの観点からははるかに優れているように見えますが、ユーザーに特定の設定を強制しないようにするため、公開されている Ubuntu サーバーでどのようにホストするのが最善かについて少し迷路になっています. 私は統合インストーラーを使って Plone をインストールし (in /home/plone/Plone/zinstance)、開発のためにフォアグラウンドで実行してきましたが、この Web サイトをライブにするための準備をする必要があります。

独自のカスタマイズに使用できるプロジェクト サーバーで開発インスタンスを実現したいと考えています (開発インスタンスにチェックインする前にテストするためのデスクトップ上の追加のローカル インスタンスを使用)。ライブ、そして最後にライブ Web サイト。

特に:

  1. ライブ サイトは ZEO に基づいており、テストと開発はスタンドアロンであると想定しています。それは理にかなっていますか?

  2. 現在、すべてが に/home/plone/Ploneあり、他のすべての (通常は PHP CMS) サイトは からホストされてい/srv/<domain>/wwwます。ドメインのすべてが一度にバックアップされます。これに適合するように異なる Plone インスタンスをレイアウトする最良の方法は何ですか?

  3. 開発からテスト、そして実際のサイトへのサイクルを通じて、変更をビルドアウトと製品に移行する最善の方法は何ですか? 現在、他のシステムには Mercurial を使用した基本的な展開プロセスがあります。

4

2 に答える 2

6

現在のベスト プラクティスは、buildoutを使用して完全に再現可能な展開を定義することです。

一般に、包含によって構成を共有するproduction.cfgおよび構成を使用して、いずれかの環境の特定のニーズに合わせて展開を微調整します。development.cfg必要に応じてこのモデルを拡張できます。たとえば、大規模なプロジェクトではstaging.cfg、最初に新しい機能をテスト環境にデプロイする必要がある場合があります。

開発で ZEO を使用するかどうかは、ユース ケースに完全に依存します。ほとんどの開発セットアップでは確かに必要ありませんが、非同期ワーカーを含む大規模な展開では、いずれにせよ開発時に ZEO サーバーが必要になる場合があります。ここでも、buildout を使用すると、特にセットアップで使用されるさまざまなデーモンを管理するためにSupervisordと組み合わせると、ニーズの変化に合わせて開発環境を簡単に切り替えることができます。

私が管理する最大のデプロイメントでは、subversion と git を組み合わせて使用​​しますが、これは歴史的な理由によるものです。これはすべて 1 つの git リポジトリに移動されています。最終的に、リポジトリには、さまざまな構成、および運用マシンごとの構成ファイル (運用クラスター内のサーバーごとに 1 つ) を含む完全なビルドアウトが保持さdevelopment.cfgstaging.cfgます。3 マシンの ZEO セットアップの場合、たとえば 1zeo.cfginstances-1.cfginstances-2.cfgになります。コアの開発卵は、同じリポジトリに格納されていますsrc/

開発は、機能ごとおよび問題ごとのブランチでのみ行われます。完了すると、ブランチがステージング ブランチにマージされ、ステージング サーバーが更新されて再起動されます。マージされた各ブランチで顧客がサインオフし、ロールアウトが計画されたら、承認されたブランチをメイン ブランチにマージし、リリースのタグを付けます。次に、本番クラスター マシンがその新しいタグに切り替えられ、再起動されます。

また、継続的な統合テストにもJenkinsを使用しています。メイン ブランチとステージング ブランチの両方が少なくとも 1 日に 1 回テストされるため、問題を早期に発見できます。

@rebootすべてのデーモンは、ネイティブ OSinit.d構造ではなく、 crontab エントリ ( ) を介して開始される専用の Supervisord によって管理されます。このようにして、ビルドアウトで実行中のデーモンを完全に管理できます。ビルドアウトは、logrotate 構成と munin 監視プラグインも生成します。これらは、必要に応じて OS の場所にシンボリック リンクされます。

ビルドアウトは完全に自己完結型であるため、プロダクション ビルドアウトをマシンのどこにセットアップしても問題ありません。一貫性のあるものを選び、それを文書化し、それに固執してください。デーモンのニーズに十分なディスク容量があることを確認してください。それ以外の場合は、あまり心配しないでください。

于 2012-11-02T10:55:55.113 に答える
1
  1. ZEOかどうか(生産または開発用)は、個人のニーズと好みによって異なります。多くの開発者は、本番環境と開発にZEOを使用していますが、使用していません。スケーリングにはZEOが必要です(複数のアプリサーバー)

  2. 誰も気にしません...Ploneを必要な場所にインストールします...インストールを移動した後にビルドアウトを再実行すると、再配置の問題が修正されます。それはあなたのシステムであり、私たちのシステムではありません...あなたが決めます。

  3. 通常、ビルドアウト構成はリポジトリに存在し、リポジトリから本番サーバーにプルできます。それ以外の場合は、関連するビルドアウトファイルを自分でコピーする必要があります。一般的なインストールは次のように機能します。

    • virtualenvを実行します
    • git/subversionからビルドアウト構成をチェックアウトする
    • ブートストラップを実行する
    • ビルドアウトを実行する
于 2012-11-02T05:37:26.767 に答える