2015-07-14 13 views
7

Chúng tôi hiện đang làm việc trên Dockerizing ứng dụng Ruby on Rails của chúng tôi, bao gồm cả Delayed Job. Một câu hỏi ù trong nhóm phát triển của chúng tôi là liệu và/hoặc cách Dockerize thành phần Job Delayed một cách riêng biệt khỏi ứng dụng.Dockerizing Delayed Job

Điều này sẽ cho phép Công việc bị trì hoãn khởi động các vùng chứa mới khi cần thiết cho lưu lượng truy cập cao trong hàng đợi công việc. Ngoài ra, từ việc hoãn thực sự khởi động các ứng dụng Rails mỗi lần khi lần đầu tiên khởi động, chúng tôi nghĩ rằng những lợi ích sau đây sẽ làm theo:

  1. Các hoãn chứa Job có thể khởi động nhanh hơn
  2. ứng dụng mã sẽ khởi động bất kể thời gian khởi động của Vùng chứa công việc bị trì hoãn
+1

Thực sự, người lao động cần có ngăn xếp đường ray giống như vùng chứa ứng dụng, ngoại trừ lệnh của nó sẽ là công việc trì hoãn thay vì máy chủ đường ray – DVG

+0

@DVG Có lợi ích gì khi chạy nó trong một container sau đó? Tất nhiên là hệ tư tưởng được thêm vào của một quy trình duy nhất cho mỗi vùng chứa, nhưng chúng tôi cũng có thể mở rộng quy trình công việc bị trì hoãn bất kể trạng thái ứng dụng thực tế. – user2990654

+0

Chắc chắn, chúng vẫn có thể được thu nhỏ độc lập với ứng dụng, nhưng nó vẫn cần khởi động ứng dụng để thực hiện công việc của nó – DVG

Trả lời

1

Vì vậy, tôi biết một người chịu trách nhiệm về ứng dụng đường ray sử dụng công việc bị trì hoãn. Khi nó đến thời gian để dockerize cho biết ứng dụng, nó có một container cho mỗi. Cả hai container đều sử dụng cùng một codebase nhưng một container chạy giao diện người dùng và một công việc. Nó không phải là devops microservice-eriffic nhưng nó hoạt động.

Ngoài sự tách biệt hợp lý giữa hai, các thùng chứa docker được cho là chỉ có một quá trình duy nhất chạy bên trong. Có thể đã hack nó với nhau nhưng nó có vẻ sai để phá vỡ một docker cơ bản ra khỏi cổng.

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