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


8

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

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

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

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

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


2
最初にすべきことは、実際に実行する必要があるタスクを説明することです。申請は何のためですか?どれくらいの負荷がありますか?どんな変化があると思いますか?(As:Dev、Test、Stage、Prodの4層が必要ですか)
MichelZ

1
要件は、多くの(50未満の)カスタムイントラネットアプリケーションをホストすることです。これらはすべてMicrosoftスタックにあります。現在、開発用のSQLサーバーと、開発用のローカルWebサーバーと、テスト環境と本番環境の両方をホストする別のSQLサーバーとWebサーバーを使用しています。私たちが現在やっていることよりもはるかに良いことができることを知っています。そのため、この質問を独自に投稿しました。私の経験で何が「より良い」かを知る必要はありません。
TreK、2012年

2
それ自体は答えではないので、コメントとして記載します。確認したいことの1つは、テスト環境が本番環境にアクセスできないようにするメカニズム(APIキー、IP検証など)があることです。
HTTP500、2012年

回答:


8

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

仮想化:

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

データベース

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

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

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

ストレージ

共有ストレージなしでは、実際の仮想化(VMモビリティとホストクラスタリング)はできません。製品、開発、テスト、QAサーバーはすべて、ストレージに対して同じように見えますが、製品に優先順位を付ける方法を見つけるために時間を費やすこともできます。たとえば、開発サーバーとディスク(RAIDセット、プールなど)を共有する負荷の大きいprodデータベースを持つことは非常に悪い考えです。Devは製品版と同じくらいハードディスクにヒットすることがありますが、最後に必要なのは、ある種のテストが本番稼働を遅らせている原因であるかどうかを判断することです。

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

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


1

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

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

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

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

これにより、スポール、電気使用量、および空調コストを制限できます。テストマシン、概念実証サーバー、アプリケーションに固有のハードウェアを必要としない実稼働サーバー(USBドングル、FAXボードなど)に使用されます。

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

これらは、大量のRAMとCPUを必要とするが、独自のハードウェアが追加されていないマシン向けです。仮想マシンは、大量のCPUまたはRAMを必要とする場合を除き、問題ありません。VMWareでは、ハードウェアの使用量のバランスをとるために、vmotionによってvmserverをホストマシンに移動できます。VMの領域は、最大限に使用した場合にのみ費用効果が高くなります。つまり、いくつかの大きなマシンではなく、より小さなマシンです。これは、立ち上がるシステムにも依存します。

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

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

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


0

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

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

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

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

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

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


1
それはすべて彼のプロジェクトの規模に依存します。私は...あなたはあなたのプライベートホーム映画データベースのことのいずれかを必要としないと思います:)私たちはOPからのより多くの情報が必要だと思う
MichelZ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.