2009-09-04 17 views
5

Chúng tôi đã lưu trữ cơ sở dữ liệu dàn dựng của chúng tôi trên máy chủ cơ sở dữ liệu sản xuất với suy nghĩ rằng nó có ý nghĩa giống như sản xuất nhất có thể.Có nơi thích hợp cho cơ sở dữ liệu dàn dựng không?

Gần đây, một số nhận xét đã khiến tôi đặt câu hỏi về ý tưởng đó. Vì có một số cơ hội từ xa mà tôi sẽ làm một cái gì đó để sản xuất do nhầm lẫn nó có thể có ý nghĩa để không đặt cả trên cùng một máy chủ.

Cơ sở dữ liệu Dàn dựng của tôi có thực sự sống trên cùng một máy chủ với cơ sở dữ liệu phát triển của tôi và không phải cùng một máy chủ như sản xuất không?

Trả lời

3

Trong cuốn sách, môi trường dàn dựng phải độc lập vì nó cho phép bạn luyện tập các quy trình triển khai cho bản phát hành mới. Nếu bạn đang ở trên cùng một hộp hoặc cùng một máy ảo, bạn không nhận được trải nghiệm "đầy đủ" về các bản cập nhật thư viện và tương tự.

Cá nhân tôi thích máy ảo vì tôi có thể kéo sản xuất trở lại giai đoạn và sau đó cập nhật nó. Điều này có nghĩa là bản cập nhật của tôi là rất thực tế, bởi vì tất cả dữ liệu vỏ cạnh, thư viện và các dữ liệu đó đang được sao chép. Đây là một điều tốt ... Tôi không thể đếm số lần trong lịch sử 9 năm của sản phẩm chính của chúng tôi mà một mô-đun thư viện không được bao gồm hoặc một số tập lệnh cập nhật cho các trường hợp truy cập cơ sở dữ liệu không được phát hiện môi trường phát triển và thử nghiệm.

Khi chạm vào môi trường sản xuất ... Tôi có thể nói không bao giờ thực hiện việc này nếu có thay thế. Cập nhật một thư viện được chia sẻ trong dàn dựng cũng ảnh hưởng đến sản xuất và bạn sẽ cảm thấy đau đớn. Cập nhật mã và khiến máy chủ web của bạn chuyển sang trạng thái chóng mặt và bạn đã mang (ít nhất một phần) môi trường sống của mình xuống.

Nếu bạn phải giả mạo nó, tôi khuyên bạn nên chia sẻ với môi trường phát triển và chỉ nhận ra rằng việc cập nhật sản xuất gây ra thời gian chết bất ngờ trong khi cập nhật khi bạn xác nhận mọi thứ hoạt động. Chúng tôi phải làm điều đó trong vài năm đầu vì lý do ngân sách và nó có thể hoạt động miễn là bạn không chỉ cập nhật sản xuất và bỏ đi.

Nói tóm lại

  • sản xuất là bất khả xâm phạm: không chia sẻ bất kỳ khía cạnh phi sản xuất nếu bạn có thể tránh nó.
  • Máy ảo là bạn của bạn: chúng cho phép bạn sao chép môi trường làm việc và cập nhật chúng với nguy cơ gần như bằng không (chỉ cần sao chép tệp VM qua bất kỳ lần cập nhật nào bị hỏng).
  • Dàn xếp nên được tách biệt khỏi quá trình phát triển để tránh tình trạng quá tự tin với thói quen cập nhật của bạn.
7

Lý tưởng nhất là bạn muốn có một môi trường dàn dựng riêng biệt gương môi trường sống của bạn, nhưng không thực sự tồn tại trên đó. Tuy nhiên, $$$ không phải lúc nào cũng cho phép điều này, vì vậy lý tưởng không phải luôn luôn theo sau.

này bao gồm (nhưng không giới hạn) như sau:

  • máy chủ Web
  • máy chủ cơ sở dữ liệu
  • máy chủ ứng dụng

Và bất cứ điều gì trên những máy (vật lý hay ảo) nên được phân lập trong môi trường tương ứng của chúng, vì vậy bạn không nên thấy mã dàn dựng trên máy chủ sản xuất và tương tự bạn không nên thấy cơ sở dữ liệu dàn dựng trên cơ sở dữ liệu sản xuất ver. Họ nên tách biệt nhau.

Ngoài ra, nếu bạn sử dụng một lượng lớn băng thông trong nội bộ, bạn có thể muốn tách riêng các mạng, để ngăn chặn việc sử dụng băng thông của môi trường dàn dựng từ băng thông của môi trường sản xuất.

+2

Một máy mạnh mẽ với một số máy chủ ảo có thể thực hiện một phép tính gần đúng cho ít $$$. – MaxVT

+0

@MaxVT Đúng, nhìn lại tôi không nhất thiết có nghĩa là máy vật lý, tôi sẽ cập nhật câu trả lời của mình để phản ánh. – Joseph

3

Bất kỳ giải pháp nào bạn có thể chọn cuối cùng, tôi sẽ nói: giữ máy chủ sản xuất của bạn để sản xuất và chỉ sản xuất!

Nếu bạn đặt một số không sản xuất vào nó, có nguy cơ sai lầm, tất nhiên, như bạn nói ... Nhưng cũng có những rủi ro của lỗi: nếu ứng dụng của bạn phát điên, và sử dụng tất cả Ví dụ: CPU của máy chủ? Sản xuất của bạn có thể bị ảnh hưởng.
Và đó chỉ là một ví dụ, tất nhiên ;-)


Theo tôi, giải pháp tốt nhất là nên có một máy chủ cho dàn dựng, với một thiết lập đó là càng gần càng tốt (một thực "clone" sẽ là tốt nhất) để thiết lập sản xuất.

Xem xét điều này có thể tốn một chút cho một máy được sử dụng bởi chỉ một vài người kiểm tra, thường không thể :-(Một cách thay thế mà tôi thấy là sử dụng Máy ảo (được lưu trữ trên máy chủ phát triển của bạn - không phải sản xuất): nó hoạt động giống như một máy "thực", mà bạn có thể làm bất cứ điều gì bạn muốn, mà không ảnh hưởng đến sản phẩm eiter và cũng không phải là người phát triển.

0

Nếu bạn không có phần cứng cụ thể cho Phát triển, Dàn dựng và Sản xuất, sau đó có cơ sở dữ liệu Dàn dựng của bạn trên Phát triển SQL Phục vụ r là một giải pháp phổ biến.Tôi an toàn hơn nhiều so với việc có cơ sở dữ liệu dàn dựng của bạn trên Máy chủ sản xuất, cố gắng thực hiện điều gì đó với Cơ sở dữ liệu dàn dựng và lấy xuống Máy chủ SQL sản xuất. Quay lại đầu trang Cung cấp Phản hồi THÔNG TIN THÊM THÔNG TIN THÊM

1

Có cơ sở dữ liệu dàn dựng trên máy chủ sản xuất là nguy hiểm. tuy nhiên, với một giai đoạn gỡ lỗi/thử nghiệm đủ vất vả, nguy cơ thực tế cho sản xuất là tối thiểu. Điều này đặc biệt đúng nếu tải để dàn dựng là tối thiểu.

2

DB dàn dựng của bạn sẽ không bao giờ nằm ​​trên cùng một máy chủ như sản xuất. Tôi muốn nói nó tốt để có nó trên cùng một máy chủ như máy chủ dev của bạn.

Are được một số thứ có thể đi sai,

Thao tác dữ liệu trên sai DB

Làm một cái gì đó mà có thể thực sự

mang xuống máy chủ. Bạn có thể cần

để khởi động lại máy chủ DB của mình trong khi phát triển và thử nghiệm .

Tôi không nghĩ rằng các nhà phát triển nên có quyền truy cập vào môi trường sống. Chỉ các hoạt động mới có quyền truy cập.

+1

Tôi không đồng ý về các nhà phát triển có quyền truy cập vào sản xuất - phải thực hiện sửa chữa nóng không nên yêu cầu 10 người ra khỏi giường lúc 3 giờ sáng Thứ Bảy hoặc phải viết tài liệu 2 trang giải thích cách đăng ký đối tượng lần thứ 10 vì vậy một số jockey cáp người là woefully không đủ tiêu chuẩn cho nhiệm vụ có thể thử và không vít những thứ lên hơn nữa. Tất nhiên, thử nghiệm đầy đủ nên ngăn chặn điều này, nhưng trong thực tế, mọi thứ luôn trôi qua trong bất kỳ ứng dụng đủ phức tạp nào ở bất kỳ mức độ thông lượng nào. –

+0

Có lẽ tôi nên có đủ điều kiện tuyên bố của tôi. Tôi đã làm việc cho một vài công ty thuộc sở hữu của Hoa Kỳ bị SOX ràng buộc, vì vậy không có nhà phát triển nào có thể truy cập vào máy chủ. Chúng tôi đã sử dụng một máy chủ interation liên tục để xây dựng và triển khai mã và chạy các kịch bản lệnh để triển khai tới các máy chủ gan. Nếu có lỗi thì Opps có thể triển khai bản xây dựng tốt cuối cùng. Không cần phải gọi điện thoại, chữa cháy. Các lỗi sẽ được delt với trong envrionment phát triển vào ngày hôm sau. – skyfoot

2

Như những người khác đã nói, việc giữ các thực thể không sản xuất trong môi trường sản xuất của bạn nên tránh như bệnh dịch hạch. Có quá nhiều khả năng cho các nhà phát triển nhầm lẫn thêm hoặc sửa đổi một cái gì đó mà môi trường sản xuất của bạn phụ thuộc. Máy chủ sản xuất của chúng tôi chỉ được sửa đổi trong quá trình triển khai. Chúng tôi theo dõi mọi tệp đã thay đổi và có cơ chế sẵn sàng để khôi phục các thay đổi với nỗ lực tối thiểu.

Hãy dàn dựng trong môi trường phát triển của bạn nếu bạn không thể nhận được phần cứng chuyên dụng.

Các vấn đề liên quan