Đặc biệt là với Rails, tôi không có bất kỳ kinh nghiệm nào, nhưng chúng ta hãy nhìn từ quan điểm của một nhà sản xuất và kỹ thuật phần mềm.
Nhóm Docker ủng hộ, đôi khi khá mạnh mẽ, rằng các container là về các ứng dụng vận chuyển. Trong tuyên bố thực sự tuyệt vời này , Jerome Petazzoni nói rằng tất cả chỉ là sự tách rời các mối quan tâm. Tôi cảm thấy rằng đây chính xác là điểm mà bạn đã tìm ra.
Chạy một vùng chứa rails để bắt đầu quá trình di chuyển hoặc thiết lập có thể tốt cho việc triển khai ban đầu và có thể thường được yêu cầu trong quá trình phát triển. Tuy nhiên, khi đi vào sản xuất, bạn thực sự nên cân nhắc tách rời các mối quan tâm.
Vì vậy, tôi muốn nói rằng có một hình ảnh, mà bạn sử dụng để chạy vùng chứa N rails và thêm một công cụ / chuyển đổi / thiết lập bất kỳ vùng chứa nào mà bạn sử dụng để thực hiện các tác vụ quản trị. Xem các nhà phát triển từ hình ảnh đường ray chính thức nói về điều này:
Khi bạn nhìn vào hình ảnh đó, không có lệnh thiết lập hoặc di chuyển. Việc sử dụng nó như thế nào là hoàn toàn phụ thuộc vào người dùng. Vì vậy, khi bạn cần chạy một số vùng chứa, chỉ cần tiếp tục.
Từ kinh nghiệm của tôi với mysql điều này hoạt động tốt. Bạn có thể chạy vùng chứa chỉ dữ liệu để lưu trữ dữ liệu, chạy vùng chứa với máy chủ mysql và cuối cùng là chạy vùng chứa cho các tác vụ quản trị như sao lưu và khôi phục. Đối với cả ba vùng chứa, bạn có thể sử dụng cùng một hình ảnh. Giờ đây, bạn có thể tự do truy cập cơ sở dữ liệu của mình từ một số Wordpress hộp đựng. Điều này có nghĩa là tách biệt rõ ràng các mối quan tâm. Khi bạn sử dụng docker-compose
không khó để quản lý tất cả các thùng chứa đó. Chắc chắn đã có nhiều vùng chứa và công cụ của bên thứ ba hỗ trợ bạn thiết lập một ứng dụng phức tạp bao gồm nhiều vùng chứa.
Cuối cùng, bạn nên quyết định xem docker và kiến trúc dịch vụ vi mô phù hợp với vấn đề của bạn. Như đã nêu trong bài viết này có một số lý do chống lại. Một trong những vấn đề cốt lõi là nó thêm một lớp phức tạp hoàn toàn mới. Tuy nhiên, đó là trường hợp có nhiều giải pháp và tôi đoán bạn nhận thức được điều này và sẵn sàng loại trừ nó.