it-swarm-vi.tech

Bạn có chiến lược hiệu quả nào để khởi chạy v2 của một WP trang web?

Nhóm của tôi và tôi đang làm việc với một khách hàng có trang web WordPress hiện có với một chút nội dung và chủ đề tùy chỉnh mà họ đã xây dựng. Đây là một blog nhóm, có nghĩa là nó có một số blogger trên toàn thế giới đang thêm và chỉnh sửa nội dung mọi lúc.

Công việc của chúng tôi là tạo ra một chủ đề hoàn toàn mới, với khá nhiều tính năng mới. Một số tính năng này sẽ yêu cầu các widget, plugin và trường cơ sở dữ liệu tùy chỉnh mới.

Chúng tôi hiện đang làm việc với các máy phát triển của riêng mình và tích hợp chúng vào một máy chủ phát triển duy nhất. Tất cả các mã được phiên bản trong SVN. DBA được chỉ định của chúng tôi hiện đang hợp nhất bất kỳ thay đổi cơ sở dữ liệu nào vào nhà phát triển DB, mặc dù hy vọng anh ấy sẽ có thể tự động hóa điều đó sớm.

Chúng tôi chỉ bắt đầu nói về quá trình phát hành sản xuất của chúng tôi. Ý nghĩa: một khi chúng ta hoàn thành, làm thế nào để chúng ta có được tất cả mã tùy chỉnh của mình trên máy chủ sản xuất (trực tiếp) một cách trơn tru và với ít sự gián đoạn nhất có thể?

Chúng tôi có một vài kế hoạch trong đầu, nhưng tôi rất thích nghe người khác giải quyết vấn đề này như thế nào. Có thực hành tốt nhất để làm theo hoặc biết những cạm bẫy để tránh?

12
Mike Lee

Nếu bạn làm theo lời khuyên của SethMerrick, bạn có thể giảm đáng kể thời gian chuyển đổi bằng cách hạ TTL trên các bản ghi DNS thích hợp xuống còn 5 phút hoặc vài giờ (tùy thuộc vào mức độ hiện tại của TTL) trước khi bạn thay đổi địa chỉ IP.

Bằng cách này, bạn đang nói với các máy chủ DNS từ xa chỉ lưu trữ địa chỉ trong 5 phút. Khi bạn thay đổi IP, bạn có thể tăng TTL thành bất cứ điều gì trước đây. Để tiếp tục giảm thiểu hiệu ứng, hãy thực hiện chuyển đổi trong thời gian lưu lượng truy cập thấp.

4
Aaron Terry

Tôi không chắc liệu điều này có áp dụng được không, nhưng tôi vừa trải qua một quá trình tương tự là di chuyển và nâng cấp một trang web có lưu lượng truy cập cao.

Chiến lược cơ bản là làm việc trên máy chủ dàn, sau đó khi mọi thứ đã sẵn sàng, hãy kết xuất mysql trên máy chủ trực tiếp, nhập nó vào máy chủ dàn, thực hiện bất kỳ yêu cầu dọn dẹp nào, sau đó trỏ bản ghi DNS đến máy chủ dàn dàn máy chủ để trở thành máy chủ trực tiếp mới.

Một mẹo nhỏ là sau đó hợp nhất tất cả dữ liệu tích lũy trong quá trình truyền DNS vào máy chủ dàn (hiện là máy chủ trực tiếp). Nói cách khác, nếu 30 giờ trôi qua giữa khi bạn thực hiện kết xuất/cập nhật DNS của bạn và khi quá trình truyền DNS hoàn tất, bạn sẽ phải chọn lọc hợp nhất 30 giờ các bản ghi từ trang web cũ sang trang mới.

Đó không phải là một quá trình liền mạch, nhưng khi chúng tôi có một tuần xuống đường, tất cả các nút thắt đã tự làm dịu đi.

2
SethMerrick

@Mike Lee: Câu hỏi tuyệt vời và là một trong những thánh địa của WordPress (hoặc bất kỳ CMS nguồn mở chính thống nào mà tôi quen thuộc với vấn đề đó như Drupal, Joomla, et. Al.)

Mặc dù chắc chắn không có ý định giải quyết trường hợp sử dụng của bạn, nhưng hãy kiểm tra câu trả lời của tôi cho một câu hỏi liên quan mô tả một plugin cấp độ beta mà tôi vừa cung cấp qua Trao đổi câu trả lời WordPress được gọi là WP Di chuyển Webhosts (vâng, tôi rất thích khi đặt tên sáng tạo.)

Nhưng tôi cũng muốn giải quyết trường hợp sử dụng mà bạn mô tả bằng một plugin và hiện đang suy nghĩ về cách thực hiện điều đó. Tôi đang nghĩ cách tiếp cận nó là từ bỏ việc giải quyết nó một cách khái quát và thay vào đó giải quyết các mẫu đã biết tồn tại trong WordPress và sau đó cho phép bất kỳ ai khác " hook " plugin của tôi cho trường hợp sử dụng đặc biệt. Tôi cũng nghĩ rằng một cách tiếp cận là tuần tự hóa dữ liệu và cấu trúc trong WordPress dưới dạng dữ liệu trong tệp PHP để một plugin trong tương lai có thể áp dụng những thay đổi đó như deltas giống như hệ thống kiểm soát mã nguồn áp dụng deltas tại phiên bản hiện tại của mã nguồn.

Vì vậy, trong khi tôi không trả lời hoặc giải quyết vấn đề của bạn một cách đầy đủ, tôi hy vọng tôi sẽ cho bạn một số thực phẩm tốt để suy nghĩ và cũng hy vọng rằng bạn hoặc ai đó có thể muốn hợp tác trong một giải pháp cuối cùng.

2
MikeSchinkel