質問

最近、仮想化の話題は、開発者がコンピューターで仮想マシンを試している私の職場に届いています。以前、私は開発環境をクリーンに保つために、デスクトップコンピューターに仮想マシンをセットアップすることについて複数の異なる開発者から聞いてきました。

市場には多くの仮想マシンソフトウェア製品があります:

仕事で仮想化を効果的に使用する方法を知りたいです。私の質問は、日々の開発に仮想マシンをどのように使用するか、およびその理由は何ですか?

役に立ちましたか?

解決

複数のVMを一度に実行できるように、自宅で本物の頑丈なマシンを構築しました。私の場合はおそらく極端ですが、そうするための私のロジックは次のとおりです。

テスト

特にデスクトップアプリをテストする場合、通常、ソフトウェアを実行するプラットフォームごとに1つ(Windows 2000 / XP / Vistaなど)に複数のVMを作成します。 32ビットと64ビットのフレーバーが使用可能な場合、それぞれのフレーバーも作成します。また、VMハードウェア設定(たとえば、大量のRAM、小さなRAM、1コア、2コアなど)で遊んでいますこの方法でたくさんの小さなバグを見つけたので、このアプローチを使用しなかったら間違いなく悪夢になっていたでしょう。

このアプローチにより、さまざまなソフトウェアシナリオでのプレイも簡単になります(プログラムをインストールするユーザーが.NET 3.5 sp1を持っていない場合はどうなりますか?XXXコンポーネントを持っていない場合はどうなりますか?

開発

開発時には、データベースサーバーを実行しているVMが1つあります(SQL2000 / 2005/2008)。これには2つの理由があります。まず、より現実的です。実稼働環境では、おそらくアプリケーションはdbと同じボックスで実行されていません。開発時に複製しないのはなぜですか?また、開発していないとき(これは私のホームマシンでもあることを思い出してください)、これらのデータベースサービスをすべて実行する必要が本当にありますか?はい、手動でオンとオフを切り替えることができますが、VMをオンに切り替えるのは非常に簡単です。

クライアント

クライアントにこれまでに行ったWeb作業を見せたい場合、DMZにVMを1つ入れるだけで、VMにログインしてWebプロジェクトを操作できます。残りのネットワーク/コンピューターは安全です。

互換性

Vista64がメインのマシンになりました。私が所有する古いハードウェア/ソフトウェアは、そのOSでうまく動作しません。私の解決策は、これらすべてのアイテムのVMとしてWindows XP 32を使用することです。

他のヒント

まだ言及されていないものがあります。

プロジェクトがメンテナンスモード(別名放棄)に入るたびに、プロジェクトのビルドに必要なすべてのツール、ライブラリ、およびソースコードでVMを作成します。そうすれば、1年後に再度アクセスする必要がある場合、ワークステーション上のアップグレードされたツールやライブラリが問題になりません。

現在の会社に入社したとき、ほとんどのサポート/開発/ PMスタッフは、テスト用にデスクトップ上に1〜3台のVMを搭載したVirtual PCを実行していました。

数か月後、私は提案をまとめ、サポートスタッフがお客様の問題をテストして問題を再現するために、さまざまな環境で仮想マシンのプール(すべて24時間365日)を実行するVMware ESXiサーバーを使用します。各Office 2000/2002/2003/2007がインストールされたWindows 2000 / XP / VistaのVM(つまり12台のVM)に加えて、より一般的なテストVM、Citrixを実行するServer 2003/2008マシン、ターミナルサービスなどがあります。ほとんどの場合、デバッグする必要のある新しい顧客構成を見つけ、他の顧客もその構成を持っている可能性が高いため、そのためのVMをセットアップします。 (例えば、現時点では3つの64ビットVMのみを使用しています-ほとんどは32ビットです)

その上で、同じサーバーがインストーラー(InstallShield、WiX)デバッグ(VS 2005)およびローカリゼーション(Lingobit)の構築に使用するXP VMと、開発者が自動テストに使用する2番目のVM(TestComplete )。

開発およびインストーラーVMにはより高い優先度が割り当てられており、どちらも1GbメモリーのデュアルCPU VMとして構成されています。残りのVMには同じ優先順位と256-1Gb RAMがあります。

すべてが、ESXiおよびハードウェアRAID(4x1Tb RAID10)を実行する8GbのRAMを搭載したデュアルクアッドコアXeonで実行されます

US $ 2.5kを超える投資で生産性が10倍向上しました(サポート不足が顧客の問題を再現するためにデスクトップに古いバージョンのオフィスをインストールする間のダウンタイム、または使用できない時間を想像してください)私たちはインストーラを構築しているため、私のデスクトップ)。次のステップでは、メモリを多く使用するServer 2008およびVista VMを追加して、RAMを2倍にして16Gbにします。

デスクトップにはまだ奇妙なVMがあります(たとえば、VMware Workstationで実行されるWindows、Ubuntu、Windows 7のローカライズバージョンがあります)が、一般的/頻繁に使用される構成は専用サーバーにオフロードされていますすべてリモートで接続します。はるかに簡単です。

仮想化(スナップショットまたは非永続ディスクを使用)は、既知のクリーンな構成でソフトウェアのインストールをテストするのに非常に役立ちます(つまり、ソフトウェアの以前のバグのあるインストールから何も残っていません)。

単一のファイルに(仮想マシンを使用して)開発ボックスを配置すると、問題が発生した場合にバックアップと復元が非常に簡単になります

それ以外の場合、通常は作業している特定の単一のマシンに制限されないため、ポータブル開発ボックスをさまざまなマシンの周りに持ち運ぶこともできます。

それだけでなく、所有する各仮想マシンファイルに単一のOSをインストールして、異なるオペレーティングシステムで一度にテストすることができます。

信じてください、これは私が上で述べた仕事をするとき、かなり面倒を節約します。

VMのもう1つの便利な使用例は、マシンの仮想ネットワークを作成することです。たとえば、アプリケーションスタックの異なる層を実行しているマシンを起動できます。各層は独自のVMで実行されます。貧乏人のデータセンターと考えてください。

これらのVMは物理ネットワークでも利用できるように見えるため、RDPなどを使用して、それらとのリモートターミナルセッションを取得できます。

これらのVMを実行している巨大なマシン(大量のメモリ)を使用しながら、ラップトップなどの別のマシンまたは最適な画面を持つマシンからリモートでアクセスできます。

WindowsでVMを使用してLinuxを実行しています。 Windows用のemacsのバージョンはすでにありますが、Linuxでそれを使用することは、何らかの理由でより満足感を感じます。

棚に置かれたコンピューターの保守

私の地域の学校は閉鎖されていますが、すべての未払い料金が確実に支払われるように、その金融システムを最大2年間維持する必要があります。これは、いくつかの問題があったモスボール学校のハードウェアを保守することで処理されていました。

  • これは、乏しいハードウェアリソースを無駄にし、多くの物理スペースを占有しました。
  • 財務担当者は、各システムで作業するためにハードウェアに物理的に立ち会う必要がありました。

今日は、モスボールされた各学校を単一の物理ホスト内の独自の仮想ボックスでホストしています。個々のシステムはホストのIP番号でrdpによってアクセスされますが、独自のポート番号と各学校の元のセキュリティが維持されます。

財務担当者は、物理的に配置された場所に移動することなく、防虫学校に取り組むことができるようになりました。サーバールームにより多くの物理スペースがあり、防虫学校すべてのバックアップが簡単な自動プロセスです。

独自のvbox内の各モスボール化された学校では、システム間でデータを相互汚染する方法はありません。数千ドル相当のハードウェアも再配置のために解放されます。

仮想化は、この問題に対する完璧なソリューションのようです。

目の前のタスクがWebSphere Application Serverのクラスター環境をテストすることであった場合、VMWare Serverを使用した仮想化アプローチを使用しました。 VMWareサーバーをセットアップした後、新しい仮想マシンを作成し、WebSphere App Server、Oracle、WebSphere Commerceなど、必要なすべてのソフトウェアをインストールしました。その後、VMをシャットダウンし、仮想ハードディスクイメージを2つの異なるマシンにコピーしました1つのクローンVMと別のバックアップとしてのファイル。

新しいVMを作成し、コピーされたディスクイメージの1つを割り当てたので、2つのシステムを稼働させて、クラスター環境の同じシナリオをテストできました。 VMwareを介してVMのスナップショットを作成しました。アクティビティに問題が発生した場合、取得したスナップショットへの変更を元に戻し、元に戻す必要があるものを見つける代わりに生産性を向上させます。バックアップディスクイメージは、ゼロから開始する代わりに、非常に古い状態に戻す必要がある場合にも使用できます。

VMWareとMicrosoftのVirtual PC / Serverの両方に存在するスナップショット機能は、元に戻すのが容易ではない可能性がある、重大な変更を行う可能性があるシナリオで仮想化を検討するのに十分です。

私が知っていることから、Mac上のParallelsのようなものはありませんが、テストではなく作業用です。

統合(「一貫性」、VMはホストシステムの「ウィンドウ内」で実行されていません。ゲストシステム内のすべてのプログラムはホストシステム内に適切なウィンドウを持っています)は素晴らしく、すべて満たすことができます( ALL!)ギャップ:
私の同僚は、WindowsのOutlook(MacOsXのOutlookのようなものはありません)が、Webページの「mailto:」リンクをクリックし、MacのFirefoxで閲覧するとポップアップするように設定しました!
逆に、PDFを送信した場合は、Outlook(Windows)で添付ファイルをダブルクリックし、MacビルドのPDFビューアーでPDFファイルを開きます。

VirtualBoxは、このウィンドウ分離の可能性も提供します(少なくともLinux上のVMでウィンドウが実行されている場合)。これは作業に非常に便利です。

もちろんテストなどのために、きれいに分離された環境のようなものはありません。

開発環境で仮想マシンをホストするための専用の物理サーバーがあります。仮想マシンは定期的に起動および破棄され、既知の標準オペレーティング環境でソフトウェアをテストするために使用されます。

また、開発環境とは異なるドメインでアプリケーションを実行したい場合にも役立ちます。

また、私が働いている組織は、大規模な仮想テストの場を作るための計画段階にあります。これは独自のネットワーク上にあるマシンの大きなグリッドであり、組織の内部スタッフ、請負業者、サードパーティベンダーはすべて、実稼働環境に実装する前にテスト目的でソフトウェアをステージングできます。仮想マシンは、実稼働環境の物理マシンを反映します。

見栄えはいいのですが、誰もが少し懐疑的です。これは政府機関です...官僚主義と赤テープはおそらくこれを時間とお金の大きな浪費に変えるでしょう。

仮想マシン(vpc 2007、Virtual Server 2005、VMWareアプリケーションなど)を使用している場合

1。単一のサーバーで複数のオペレーティングシステム(windows98、2000、XP、Vista、Windows Server 2003、2008、Windows 7 / linux / solaris)を実行できます

2。ハードウェアコストを削減できます&データセンタースペース

3。電力と電力を削減できます。 AC冷却コスト。

4。管理リソースを削減できます

5。アプリケーションコストを削減できます

6.ADS/DNS/DHCP/Exchange/SQL/Sharepoint Server / File Server ... etcを実行できます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top