Chúng tôi hiện đang trong quá trình thiết kế kiến trúc của thiết lập đám mây Apache Mesos mới của chúng tôi. Mục tiêu là để thống nhất các hệ thống của chúng tôi bằng cách di chuyển các ngăn xếp khác nhau trên cùng một kiến trúc. Khối lượng công việc chính là các phân tích dữ liệu lớn bằng Apache Spark và cơ sở hạ tầng công ty của chúng tôi bao gồm máy chủ web, máy chủ thư, v.v.
Ý tưởng là để chạy các dịch vụ web của chúng tôi trong các container Docker chạy trên một trong những lịch trình có sẵn cho Mesos (Marathon / Chronos, Aurora hoặc Singularity). Do đó, đây sẽ là nhóm khung Mesos đầu tiên. Bên cạnh nó, chúng ta sẽ có khung công tác Spark Spark và một số khung cơ sở dữ liệu để lưu trữ dữ liệu. Đây sẽ là nhóm thứ hai của khung Mesos. Chúng tôi sẽ chọn các chi tiết cụ thể sau khi chạy tất cả chúng song song để thử nghiệm.
Chúng tôi gặp khó khăn khi quyết định, tuy nhiên, trên cơ sở nào để điều hành Mesos. Lý tưởng nhất, chúng tôi muốn chạy nó càng gần kim loại càng tốt. Chúng tôi cũng muốn sử dụng giải pháp phối hợp để đảm bảo rằng các trình nền của Mesos & framework luôn chạy / khởi động lại khi không thành công. Các tùy chọn chúng tôi đang xem xét như sau:
1) Chạy Mesos & các khung làm bộ chứa docker trong một hệ điều hành tối thiểu. Về mặt này, chúng tôi hiện đang nghiêng về CoreOS và Hạm đội.
2) Chạy Mesos & các khung trực tiếp trên các máy chủ Ubuntu / Debian. Đối với tùy chọn này, chúng tôi đang nghiêng về Foreman và Puppet.
Đối với câu hỏi, chúng tôi đang tìm cách xác định giải pháp theo thứ tự quan trọng:
- là ít phức tạp nhất để cấu hình
- là cách dễ nhất để duy trì và cập nhật
- có ít chi phí nhất
Chúng tôi chưa từng làm việc với CoreOS trước đây, nhưng đó là tùy chọn mà chúng tôi dường như đang hướng tới. Một vấn đề lớn (chủ quan) tôi gặp phải đó là chúng tôi chạy Mesos trên các container Docker và sau đó chúng tôi chạy các container Docker trên Mesos. Điều này có vẻ "ô uế" và sai đối với tôi. Là sự cân nhắc này mà không có công đức?
Một suy nghĩ tương tự liên quan đến sự dư thừa giữa các lớp. Để giải thích tôi đến từ đâu, tôi thích hơn nếu Mesos là một hệ điều hành thực sự chỉ chạy đúng trên kim loại. Dường như cho dù bạn sử dụng cơ sở nào, cuối cùng bạn cũng có chức năng dự định tương tự trên nhiều lớp kiến trúc (ví dụ CoreOS & Fleet & SystemD == Mesos & Marathon & Chronos). Đây có phải là điều không thể tránh khỏi?
Có những lựa chọn tốt khác để chạy lớp bên dưới Mesos mà chúng tôi không xem xét, ghi nhớ các tiêu chí của chúng tôi?