Mặc dù có một số Docker vùng chồng chéo nhỏ và các hệ thống đóng gói Debian về cơ bản giải quyết hai vấn đề rất khác nhau :
Hệ thống đóng gói Debian được xây dựng để cài đặt phần mềm trên máy chủ và nâng cấp phần mềm dễ dàng nhất có thể. Nó có thể xử lý các mẫu phụ thuộc và ràng buộc phức tạp giữa các thành phần phần mềm, như phần mềm của X phiên bản A yêu cầu phần mềm Y với phiên bản B hoặc phần mềm X hoặc cài đặt mới hơn của phần mềm X không bao giờ được cài đặt với phần mềm Z phiên bản C.
Hệ thống Docker được hình thành để dễ dàng mô tả và triển khai các dịch vụ, đặc biệt là các dịch vụ vi mô, có thể trên một số máy chủ - ví dụ: một Docker swarm hoặc cụm Kubernetes.
Hai vấn đề này về cơ bản là trực giao, có nghĩa là đưa ra vấn đề triển khai để giải quyết, người ta có thể sử dụng một trong số chúng, cả hai hoặc thậm chí không ai trong số chúng, như một phần của giải pháp. Khi sử dụng cả hai, gói Debian được sử dụng để sản xuất hình ảnh Docker và Dockerfile của bạn (công thức được sử dụng để chuẩn bị hình ảnh Docker mô tả hệ thống ảo hóa của Wap mà chạy trong một container) về cơ bản sẽ đăng ký kho lưu trữ Debian của bạn trong nguồn của hệ thống đóng gói Debian và cài đặt gói của bạn.
Với suy nghĩ này, dường như với tôi rằng những gì bạn đang thực sự tìm kiếm là triển khai mô hình máy chủ bất biến. Sự phát triển gần đây trong các công nghệ đám mây giúp nâng cấp phần mềm không phải bằng cách sử dụng hệ thống nâng cấp phần mềm cổ điển từ hệ thống gói phần mềm (như hệ thống đóng gói Debian) mà chỉ bằng cách thay thế toàn bộ máy chủ cùng một lúc. (Một số người đã làm điều này trước sự phát triển này bằng cách có ba hệ điều hành trên một máy chủ, hai người được sử dụng thay thế để chạy thiết bị và một hệ điều hành nhỏ dành riêng để thực hiện thay thế thiết bị. Mặc dù không quá phức tạp, nhưng điều này dường như vẫn luôn là một thích hợp.) Kỹ thuật này có thể khiến bạn quan tâm vì nếu bạn được sử dụng để nâng cấp phần mềm trên máy chủ của mình bằng trình quản lý gói, trạng thái cuối cùng của máy chủ phụ thuộc vào lịch sử nâng cấp của máy chủ - đặc biệt là nếu xảy ra lỗi trong quá trình nâng cấp. Sự không đồng nhất này là xấu,
Chúng tôi có hàng ngàn hộp này trên sân. Chúng tôi quản lý các phụ thuộc gói, đăng ký quy trình, vv thông qua gói gỡ lỗi với mức độ thành công khác nhau.
có thể liên quan đến điều này. Mẫu máy chủ bất biến xóa sạch nguồn lỗi này bằng cách phá hủy khái niệm về lịch sử nâng cấp của Cameron khỏi vấn đề.
Bây giờ có nhiều tùy chọn khác nhau để triển khai mẫu máy chủ không thay đổi, hai lựa chọn phổ biến là sử dụng hình ảnh Docker, hình ảnh hoặc sử dụng hình ảnh ví dụ chính chủ từ nhà cung cấp đám mây của bạn (chúng được gọi là AMI trong AWS và chỉ là Hình ảnh tùy chỉnh trong Google Compute Engine) . Trường hợp sử dụng của bạn cấm sử dụng các kỹ thuật dựa trên đám mây, do đó tôi sẽ coi hình ảnh Docker là lựa chọn đủ điều kiện duy nhất. (Để hoàn thành, chắc chắn có thể sử dụng các phương pháp khác, ví dụ như sử dụng Virtual Box hoặc giải pháp ảo hóa tương tự, như một giải pháp thay thế cho Docker.)
Khi sử dụng kỹ thuật mẫu máy chủ bất biến, bạn giới thiệu một vật phẩm mới (hình ảnh Docker) đại diện cho máy chủ của bạn và vật phẩm này cũng có thể được kiểm tra, và rất dễ dàng để có được một thiết lập sao chép chính xác các cài đặt sản xuất của bạn - ngoài tải dịch vụ.
Bây giờ để xem xét vấn đề cụ thể mà bạn đã mô tả, hãy giả sử triển khai mẫu máy chủ bất biến với Docker thực sự là những gì bạn muốn. Vì hệ thống Docker và hệ thống đóng gói Debian là bổ sung thay vì loại trừ lẫn nhau (xem phần giới thiệu), chúng tôi vẫn phải giải quyết câu hỏi nếu bạn nên chuẩn bị gói Debian cho phần mềm của mình.
Sự liên quan của việc sử dụng gói Debian để cài đặt phần mềm của bạn (trong hình ảnh Docker hoặc trên máy chủ) nằm ở sự phức tạp của vấn đề phiên bản mà bạn phải giải quyết. Nếu bạn chạy cùng lúc một số phiên bản phần mềm của mình, đôi khi cần hạ cấp và có các yêu cầu phiên bản phức tạp mà bạn cần phải ghi chép cẩn thận, có một gói Debian là điều bắt buộc. Mặt khác, bước này có thể được bỏ qua - nhưng vì bạn đã nỗ lực để sản xuất và triển khai các gói này, nên không có giá trị thực sự nào để bỏ qua công việc của bạn. Do đó tôi sẽ đề nghị tiếp tục sản xuất các gói Debian của bạn.