Đây là một câu hỏi khá tải. Lời khuyên chung của tôi là tập trung sự chú ý của bạn vào việc quản lý sự phức tạp và cho phép hệ thống phát triển hữu cơ.
Ảo hóa:
Bạn thực sự muốn tránh máy chủ ngổn ngang, và những ngày này, mọi thứ đều được ảo hóa. Chọn một nền tảng cho phép bạn thêm các máy chủ ảo một cách nhanh chóng, cũng như quản lý chúng một cách hiệu quả. Một xu hướng tôi từng thấy là có hai cụm (ví dụ) AIX hoặc VMWare, một cho prod, một cho không prod. Cái không prod được sử dụng cho tất cả các môi trường dev, thử nghiệm và dàn dựng. Các môi trường này là hoàn hảo cho các máy chủ web hoặc máy chủ ứng dụng, nhưng tôi cố gắng tránh đặt các cơ sở dữ liệu sản xuất lớn, đang phát triển dưới dạng VM (ít nhất là trên các cửa sổ).
Cơ sở dữ liệu
Chúng có thể dễ dàng vượt khỏi tầm tay bất cứ khi nào họ cần chia sẻ tài nguyên với các máy chủ khác. Luôn có cơ sở dữ liệu chạy trên một hệ điều hành chuyên dụng, không bao giờ được chia sẻ với ứng dụng hoặc máy chủ web trừ khi có lý do thực sự tốt cho nó. Cho dù bạn sử dụng VM hay phần cứng là câu hỏi duy nhất.
Bạn muốn một cơ sở hạ tầng có thể mở rộng sẽ không giới hạn bạn nếu bạn cần, ví dụ, chuyển sang một giải pháp phân cụm. Nhiều cơ sở dữ liệu sẽ ổn trong VM, nhưng đối với một số ít cuối cùng sẽ cần nhiều mã lực hơn là thuận tiện để cung cấp trong môi trường VM, thay vào đó bạn sẽ thấy mình muốn đưa chúng vào phần cứng thô .
Nếu bạn không nói về windows, thì một số hướng dẫn này sẽ không liên quan. Ví dụ, thông lệ được chấp nhận phổ biến là đặt các cơ sở dữ liệu đang phát triển lớn dưới dạng LPAR vào một trình ảo hóa AIX.
Lưu trữ
Bạn không thể có ảo hóa thực sự (với tính di động VM và phân cụm máy chủ) mà không cần lưu trữ chia sẻ. Tất cả các máy chủ Prod, dev, tests và QA đều trông giống với bộ lưu trữ của bạn, tuy nhiên bạn có thể muốn đầu tư một chút thời gian để tìm cách ưu tiên sản phẩm của mình. Đó là một ý tưởng rất tồi, ví dụ, để có một đĩa chia sẻ cơ sở dữ liệu prod bị đánh thuế nặng (bộ đột kích, nhóm, bất cứ thứ gì) với một máy chủ dev. Đôi khi, Dev có thể tấn công các đĩa mạnh như prod, và điều cuối cùng bạn cần là tìm hiểu xem liệu một số loại thử nghiệm có làm chậm quá trình sản xuất của bạn không.
Có ai đó biết bộ nhớ của bạn ngồi xuống và phân tích tất cả các nút cổ chai tiềm năng (cổng, bộ đệm, bộ điều khiển, đĩa, v.v.) và cố gắng hết sức để ngăn chặn sự tranh chấp càng nhiều càng tốt giữa prod và non-prod.
Điều đó nói rằng, đôi khi các ứng dụng mọi người cần chạy các điểm chuẩn dev để giúp định lượng các hiệu ứng của một bản vá mới hoặc một cái gì đó. Trong tình huống này, bạn có thể cần phải cung cấp cho họ số lượng mã lực lưu trữ tương tự (hoặc ít nhất là khác nhau về mặt định lượng).