2010-05-19 34 views
26

Tôi sắp triển khai để sản xuất một trang web khá phức tạp và lần đầu tiên cần môi trường dàn dựng nơi tôi có thể kiểm tra mọi thứ trong môi trường thực tế hơn, đặc biệt là đối với một số dịch vụ bên ngoài không thể chạy tại địa phương.Thực hành tốt cơ sở dữ liệu dàn dựng

Kế hoạch chung của tôi là phát triển thử nghiệm & cục bộ đầu tiên, đẩy các thay đổi đơn giản (sửa lỗi nhỏ, HTML/CSS, JS, v.v.) sang sản xuất và thay đổi lớn hơn. để sản xuất.

Tôi không nghĩ rằng tôi cần phải giữ cho cơ sở dữ liệu dàn dựng và sản xuất đồng bộ (cập nhật thủ công thường xuyên sẽ làm) nhưng tôi tự hỏi nếu có bất kỳ thực hành tốt chung nào liên quan đến việc duy trì môi trường dàn dựng liên quan đến một môi trường sản xuất, đặc biệt là khi nói đến cơ sở dữ liệu.

Mọi suy nghĩ/lời khuyên/kinh nghiệm chung sẽ được đánh giá cao.

UPDATE:

Cám ơn ý kiến, tôi nhận được các ý chính. Tôi đoán đáng để dành thời gian suy nghĩ về điều này. Đã chấp nhận câu trả lời phổ biến.

Trả lời

26

Bằng cách bỏ qua dàn dựng và thực hiện thay đổi trong sản xuất là một công thức cho thiên tai và không được sử dụng. Khi bạn thực hiện những thay đổi đó định nghĩa về trẻ vị thành niên bắt đầu thay đổi. Thứ hai là hai môi trường khởi hành (tức là dàn dựng không còn phù hợp với sản xuất nữa) mọi thứ sẽ bị phá vỡ và bạn mất niềm tin vào môi trường dàn dựng. Để tận dụng tối đa máy chủ dàn dựng, bạn nên thực hiện triển khai tự động cho nó, thử nghiệm đầy đủ và chỉ sau đó triển khai (tự động) để sản xuất (dù nhỏ thay đổi như thế nào). Bạn cũng nên đảm bảo môi trường hoàn chỉnh tương tự nhất có thể, và theo cách đó. Điều này rõ ràng bao gồm DB. Tôi thường thiết lập đồng bộ hàng ngày hoặc hàng giờ (tùy thuộc vào tần suất tôi đang xây dựng trang web hoặc ứng dụng) để duy trì DB và thường sẽ chạy điều này như một phần của quá trình xây dựng.

+7

+1. Toàn bộ mục đích của một môi trường dàn dựng là bắt chước những gì sắp đi vào sản xuất. Nếu có những thay đổi trong sản xuất không được phản ánh trong mã bạn đã tổ chức, thì tại sao lại bận tâm với máy chủ dàn dựng? – NotMe

+1

Bạn có thể chia sẻ một số ý tưởng về cách tự động đồng bộ hóa DB không? – geckob

+1

@geckob phải là một câu hỏi riêng biệt vì nó sẽ phụ thuộc vào DB, HĐH cụ thể, nơi bạn đang chạy nó (ảo, trong trung tâm dữ liệu, đám mây), v.v. –

7

Khi ai đó phát triển một phần mềm tool giúp với mọi bước của quá trình triển khai, tôi có thể nói thực hành tốt nhất khi nói đến môi trường dàn dựng là phản ánh môi trường sản xuất của bạn chính xác. Điều này bao gồm lược đồ cơ sở dữ liệu giống hệt nhau (dữ liệu không liên quan, thỉnh thoảng sao lưu/làm mới), cùng phiên bản hệ điều hành, gói dịch vụ được cập nhật, cài đặt máy chủ web, v.v.

Trong một thế giới lý tưởng, chức năng hoặc người dùng kiểm tra-chấp nhận không cần phải được thực hiện trong dàn như mục đích của một môi trường dàn dựng là chỉ để kiểm tra triển khai của bạn để sản xuất. Tuy nhiên, trong thế giới thực tế, đôi khi nó được chấp nhận cho môi trường dàn dựng của bạn cũng là môi trường thử nghiệm chức năng hoặc UA của bạn. Mỗi lần bạn thay đổi cài đặt hoặc thay đổi cấu hình trên máy chủ sản xuất, bạn nên thay đổi cài đặt trên máy chủ dàn dựng, điều này sẽ đảm bảo rằng nếu bạn có thể triển khai ứng dụng của mình để dàn dựng nó, với xác suất lớn, triển khai để sản xuất mà không cần lỗi.

+11

Tôi không đồng ý rằng "dữ liệu không liên quan". Tùy thuộc vào hệ thống, dữ liệu sản xuất có thể tiết lộ tất cả các loại vấn đề không thể đoán trước trong môi trường dàn dựng của bạn ... Đó là loại điểm :) – Dolph

+3

@Dolph - khi tôi nói dữ liệu tôi có nghĩa là "Đơn đặt hàng" hoặc "Nhân viên". Nếu bạn đang lưu trữ cấu hình của bất kỳ loại nào trong cơ sở dữ liệu thì bạn chính xác ở chỗ nó chắc chắn cần phải giống hệt nhau. Tuy nhiên, nếu dữ liệu đơn giản đang phá vỡ ứng dụng của bạn theo một cách nào đó thì dữ liệu đó sẽ bị bắt trong quá trình kiểm tra QA. Tất nhiên, nếu môi trường dàn dựng và thử nghiệm của bạn là như nhau, thì có lẽ là một ý tưởng tốt để làm mới cơ sở dữ liệu dàn dựng của bạn thường xuyên;) –

+3

Trong một thế giới hoàn hảo, tôi đồng ý. Nhưng theo kinh nghiệm của tôi, người dùng thế giới thực luôn tìm cách tạo dữ liệu mà không ai khác mong đợi. – Dolph

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