web-dev-qa-db-ja.com

開発、ステージング、本番、QA環境のセットアップ方法

現在、組織用に新しいサーバーをセットアップしています。開発、テスト、ステージング、および本番環境で新しい環境をセットアップするための標準またはベストプラクティスとは何ですか(または、私がよく知らない他のレベルに進んでいます)?さらに、サーバーをSQL、アプリケーション、Webサーバーなどに分割する組織について聞いたことがあります。サーバー設定の可能なソリューションの良い例はどこにありますか?

いくつかの物理的なボックス間でこれらの環境を仮想化することは良い方法ですか?

他の組織がどのように環境をセットアップしているかについて、いくつかのアイデアをオンラインで検索しましたが、特に役立つものは見つかりませんでした。中小企業向けのエンタープライズソリューション全体の構築について説明しているリンクを歓迎します。

私はこのリンクを見つけました: http://dltj.org/article/software-development-practice/ 誰かが私に指摘できる良い記事を知っているなら、このような記事をもっと見つけたいですに。

私の質問に反対票を投じる前に、コメントを投稿して詳細を説明してください。適切な質問をするのに十分な知識がないかもしれません。

8
TreK

これはかなりロードされた質問です。私の一般的なアドバイスは、複雑さの管理に注意を集中させ、システムが有機的に成長できるようにすることです。

仮想化:

サーバーの無秩序な拡散を本当に避けたいのですが、最近ではすべてが仮想化されています。仮想サーバーをすばやく追加し、効率的に管理できるプラットフォームを選択してください。私が見た1つの傾向は、2つの(たとえば)AIXまたはVMWareクラスターがあり、1つは製品用、もう1つは非製品用です。非製品版は、すべての開発、テスト、およびステージング環境で使用されます。これらの環境はWebサーバーまたはアプリケーションサーバーに最適ですが、私は、大規模で成長中の本番データベースをVM(少なくともWindowsでは))として配置しないようにします。

データベース

これらは、他のサーバーとリソースを共有する必要があるときにいつでも手に負えなくなります。データベースは常に専用のOSで実行し、本当に正当な理由がない限り、アプリケーションやWebサーバーと共有しないでください。 VMまたはハードウェアのどちらを使用するかが唯一の問題です。

たとえば、クラスター化されたソリューションに移行する必要が生じた場合でも、制限のないスケーラブルなインフラストラクチャが必要です。多くのデータベースはVMで問題なく機能しますが、最終的にVM環境で提供するのに便利なものよりも多くの馬力が必要になるものは、それらは 代わりに生のハードウェア です。

ウィンドウについて話していない場合は、これらのガイドラインの一部は関連しません。たとえば、成長する大規模なデータベースをLPARとしてAIXハイパーバイザーに配置することは、一般的に受け入れられている手法です。

ストレージ

共有ストレージなしでは、実際の仮想化(VMモビリティとホストクラスタリング)を使用すること)はできません。製品、開発、テスト、QAサーバーはすべて、ストレージと同じように見えますが、製品に優先順位を付ける方法を見つけることに時間を費やしてください。たとえば、開発サーバーとディスク(RAIDセット、プールなど)を共有する負荷の高い製品データベースを用意することは非常に悪い考えです。開発者はディスクにアクセスできます本番と同じくらい難しいこともあり、最後に必要なのは、ある種のテストが生産を遅らせている原因であるかどうかを理解することです。

ストレージを知っている人に座って、すべての潜在的なボトルネック(ポート、キャッシュ、コントローラー、ディスクなど)を分析させ、本番と非本番の間でこれらの可能な限り多くの競合を防ぐために最善を尽くします。

とはいえ、新しいパッチなどの影響を定量化するために、開発者がアプリケーションのベンチマークを実行する必要がある場合もあります。この状況では、同様の(または少なくとも定量的に異なる)量のストレージ馬力を提供できるようにする必要がある場合があります。

8
Basil

この環境は何のために必要ですか?ベンダーソフトウェアまたは組織が独自の開発を行っていますか?

Dunnoはこれで効果がありますが、HPとDellの両方が落ち込んで現在のデータセンターを評価し、改造またはゼロから作成することを推奨します。フォーラムの読者は良い詳細な答えを出すことができますが、「自分が何を持っているか、どこにいるか、何をしたいか、どこにいる必要があるか」を確認しないと、しっかりと答えることは困難です。管理上の理由から、1つのハードウェアベンダーに固執してください。

これを念頭に置いたデータセンターがあります(それを行うためのハードウェアが整っています)

VMWare環境C7000 HPブレードエンクロージャとEMC SANバックエンド、8ギガファイバ接続。

これにより、スポール、電気使用、エアコンのコストを抑えることができます。テストマシン、概念実証サーバー、アプリケーションに固有のハードウェアを必要としない本番サーバー(USBドングル、FAXボードなど)に使用されます。

物理ブレードサーバー環境C7000 Hp 16ブレードHBAがEMCに接続されたHBAブレードエンクロージャSAN 8ギガファイバー経由のバックエンド。

これらは、RAMとCPUを大量に必要とするが、固有のハードウェアを追加しないマシンの場合です。仮想マシンは、大量のCPUまたはRAMを必要とする場合を除き、問題ありません。VMWareでvmotionが可能ですハードウェアの使用量のバランスをとるためにvmserverをホストマシンに移動します。VM不動産は、その最大に使用された場合にのみコスト効率が高くなります。意味は、少数の大きなマシンではなく、より小さなマシンです。これはまた、立ち上がるシステムにも依存します。

物理サーバー(1Uから5U)

HP DL360-DL 5xxサーバー。4x8コアCPUおよび256ギガRAM、テレコムインターフェイス用シリアルカード、または複数の電話回線に接続されたハイエンドFAXボードなどの特別なハードウェア。このグループに含まれるベンダーが大規模なローカルストレージを必要とするサーバーであること。

これは一例ですが、完全な答えではありません。真剣に、ハードウェアベンダーと話して、彼らにあなたがどこにいるか、そしてそれをより良く/より効率的にする方法についての考えを与えるようにさせてください。

1
Paul Hickox

開発、テスト、ステージング、および本番環境で新しい環境をセットアップするための標準またはベストプラクティスは何ですか。

これは、他の考慮事項の中でも予算に依存します。標準があるかどうかはわかりませんが、すべてのボックスでOSと他のソフトウェアを同じにしたいと思うでしょう。 Puppetなどの自動化ツールを使用して、ビルドを自動化および標準化します。

いくつかの物理的なボックス間でこれらの環境を視覚化することは良い方法ですか?

仮想化?はい。素晴らしい練習。ただし、仮想マシンとして実行できる場合は、構成を検証する必要があります。

サーバーをSQL、アプリケーション、Webサーバーなどに分割する組織について聞いたことがあります。サーバー設定の可能なソリューションの良い例はどこにありますか?

OSやアプリケーションのアップグレードや可用性のさまざまな理由から、別のサーバーに別のコンポーネントをインストールすることをお勧めします。

0
Raj J