Ini adalah pertanyaan yang cukup dimuat. Saran umum saya adalah memusatkan perhatian Anda pada pengelolaan kompleksitas dan memungkinkan sistem tumbuh secara organik.
Virtualisasi:
Anda benar-benar ingin menghindari penyebaran server, dan hari ini, semuanya tervirtualisasi. Pilih platform yang akan memungkinkan Anda untuk menambahkan server virtual dengan cepat, serta mengelolanya secara efisien. Satu tren yang pernah saya lihat adalah memiliki dua (misalnya) cluster AIX atau VMWare, satu untuk prod, satu untuk non-prod. Yang non-prod digunakan untuk semua lingkungan dev, pengujian, dan pementasan. Lingkungan ini sangat cocok untuk server web atau server aplikasi, tetapi saya akan mencoba untuk menghindari menempatkan database produksi yang besar dan berkembang sebagai VM (setidaknya di windows).
Basis data
Ini dapat dengan mudah lepas kendali kapan pun mereka perlu berbagi sumber daya dengan server lain. Selalu ada basis data yang berjalan pada OS khusus, tidak pernah dibagikan dengan aplikasi atau server web kecuali ada alasan yang sangat bagus untuk itu. Apakah Anda menggunakan VM atau perangkat keras adalah satu-satunya pertanyaan.
Anda ingin infrastruktur terukur yang tidak akan membatasi Anda jika Anda perlu, misalnya, pindah ke solusi berkerumun. Banyak basis data akan baik-baik saja dalam VM, tetapi untuk beberapa yang pada akhirnya akan membutuhkan lebih banyak tenaga kuda daripada nyaman untuk disediakan dalam lingkungan VM, Anda akan mendapati diri Anda berharap Anda akan menempatkannya pada perangkat keras mentah sebagai gantinya .
Jika Anda tidak berbicara tentang windows, maka beberapa panduan ini tidak akan relevan. Sebagai contoh, praktik yang diterima umum untuk menempatkan basis data yang tumbuh besar sebagai LPAR dalam hypervisor AIX.
Penyimpanan
Anda tidak dapat memiliki virtualisasi nyata (dengan mobilitas VM dan pengelompokan host) tanpa penyimpanan bersama. Server-server prod, dev, testing, dan QA semuanya terlihat sama untuk storage Anda, namun Anda mungkin ingin menginvestasikan waktu untuk menemukan cara memprioritaskan prod Anda. Ini adalah ide yang sangat buruk, misalnya, untuk memiliki disk berbagi database prod (pajak set, kolam, apapun) dengan server dev. Dev kadang-kadang bisa mengenai disk sekeras prod, dan hal terakhir yang Anda butuhkan adalah untuk mengetahui apakah semacam tes adalah apa yang memperlambat produksi Anda.
Mintalah seseorang yang mengetahui penyimpanan Anda duduk dan menganalisis semua potensi kemacetan (port, cache, pengontrol, disk, dll) dan lakukan yang terbaik untuk mencegah pertengkaran sebanyak mungkin antara prod dan non-prod.
Yang mengatakan, kadang-kadang orang aplikasi perlu menjalankan benchmark dev untuk membantu mengukur efek dari tambalan baru atau sesuatu. Dalam situasi ini, Anda mungkin harus dapat menawarkan mereka jumlah tenaga kuda penyimpanan yang sama (atau setidaknya berbeda secara kuantitatif).