Chúng tôi chưa có thiết lập tích hợp liên tục (chưa). Nhưng muốn triển khai rất thường xuyên. Mỗi ngày một lần.Triển khai ứng dụng Django mà không gián đoạn dịch vụ/không có thời gian ngừng hoạt động
Chúng tôi có một ứng dụng Django khá chuẩn với một máy chủ Postgres riêng biệt. Chúng tôi sử dụng máy ảo cho thuê bình thường (KHÔNG có Amazon hoặc Rackspace).
Làm cách nào để giảm thiểu thời gian ngừng hoạt động của ứng dụng? Tốt nhất là để không thời gian chết. Chúng tôi đã nghĩ về một thiết lập với hai ứng dụng bằng nhau và hai máy chủ cơ sở dữ liệu và triển khai một cặp máy chủ ứng dụng/máy chủ db sau một cặp khác.
Sự cố đang giữ nguyên dữ liệu. Trong khi một cặp ứng dụng/máy chủ db đang cập nhật cặp máy chủ với mã cũ có thể phục vụ người dùng. Nhưng nếu người dùng ghi vào db, chúng tôi sẽ mất dữ liệu khi chuyển sang cặp cập nhật. Đặc biệt là khi chúng tôi đẩy di chuyển giản đồ.
Làm cách nào chúng tôi có thể xử lý việc này? Đây phải là một vấn đề rất phổ biến nhưng tôi không thể tìm thấy câu trả lời hay. Làm thế nào để bạn xử lý vấn đề này?
Tôi đã bỏ phiếu, nhưng chỉ vì bạn có di chuyển giản đồ không phải là cơ sở tức thì để di chuyển sang MongoDB. Chỉ cần viết (các) di chuyển lược đồ của bạn để bạn có thể làm điều này: nâng cấp lược đồ, triển khai ứng dụng mới, nâng cấp lại lược đồ để thêm bất kỳ ràng buộc nào không tương thích với phiên bản cũ của ứng dụng. Bây giờ mối quan tâm lớn nhất của bạn sẽ bị khóa: bạn không muốn ứng dụng không phản hồi trong khi di chuyển của bạn đang chạy. Làm một số thử nghiệm thường sẽ cho biết nếu đây là một vấn đề (di chuyển dài hạn có nghĩa là nó có thể sẽ được). Nếu vậy, bạn cần sao chép ... –
Và sau đó bạn sẽ di chuyển không chính trước tiên, sau đó quảng bá nó thành chính và đẩy tiểu học cũ thành không chính, sau đó di chuyển nó. Các chi tiết về điều đó sẽ phụ thuộc vào giải pháp sao chép của bạn, nhưng nó sẽ khả thi. –
Vâng noSQL không phải là một lựa chọn. Chúng tôi khá hài lòng với postgres. Bạn có thể đề xuất giải pháp sao chép tốt không? – j7nn7k