Sử dụng giấy phép cộng đồng MongoDB

Nov 12 2020

Khi MongoDB giới thiệu mô hình giấy phép phía máy chủ-công cộng của riêng họ cho phiên bản cộng đồng, tôi tự hỏi phiên bản cộng đồng được phép sử dụng trong trường hợp sử dụng nào trong phiên bản sản xuất.

Có các cuộc thảo luận khác nhau trên trang chính thức của mạng và mongodb cho thấy sự khác biệt giữa các phiên bản khác nhau (cộng đồng và doanh nghiệp), nhưng điều tôi nhớ là tuyên bố rõ ràng cho trường hợp sử dụng đơn giản của phiên bản cộng đồng bên cạnh việc thử và chơi với nó cục bộ cho mục đích học tập.

Phiên bản cộng đồng của MongoDB 4.x có thể được sử dụng trong sản xuất không? Có những cách giải thích rằng câu trả lời cho câu hỏi này là tiêu cực .

Nếu nó có thể được sử dụng trong sản xuất và thiết lập ứng dụng đơn giản hóa điển hình với cơ sở dữ liệu có thể trông như sau:

FrontEnd -> BackEnd -> Database

Cách hiểu đơn giản của tôi về giấy phép mới như sau:

  • nếu tôi để máy chủ MongoDB trực tiếp cho khách hàng, tôi sẽ cần xuất bản mã nguồn của toàn bộ thiết lập.
  • nếu tôi sử dụng MongoDB trong hình ảnh docker được tạo tùy chỉnh (với giải pháp sao lưu / kết xuất homebrew của tôi), trong thiết lập FE-> BE-MongoDB, trong môi trường đám mây & sản xuất và khách hàng của tôi đang sử dụng FE, điều đó không bắt buộc tôi phải xuất bản toàn bộ nguồn.

Điều này có chính xác hay tôi đã bỏ lỡ điều gì đó quan trọng? Cảm ơn

Trả lời

2 BartvanIngenSchenau Nov 12 2020 at 21:53

Hiểu biết của tôi về SSPL, dựa trên văn bản giấy phép và Câu hỏi thường gặp về MongoDB, là:

  • Nếu bạn sử dụng MongoDB hoặc phiên bản đã sửa đổi của nó trong một trang web / ứng dụng web không tắt dịch vụ lưu trữ dữ liệu cho người dùng, thì giấy phép SSPL hoạt động giống như giấy phép GPL. Bạn có thể sử dụng phiên bản cộng đồng mà không gặp vấn đề gì.

  • Nếu bạn làm dịch vụ phục vụ lưu trữ dữ liệu bằng cách sử dụng MongoDB Community Edition trong backend của bạn, sau đó các SSPL yêu cầu bạn cung cấp tất cả các mã nguồn cho tất cả các phần mềm cần thiết để xây dựng một dịch vụ trùng lặp và rằng mã nguồn phải được cung cấp theo giấy phép SSPL.

    Nếu bất kỳ mã nào bạn phải cung cấp theo cách này nằm trong giấy phép không tương thích với SSPL, bao gồm các giấy phép (L | A) GPL và hầu hết các giấy phép độc quyền, thì không thể đáp ứng yêu cầu này.

    Trong mọi trường hợp, điều đó có nghĩa là yếu tố khác biệt cho dịch vụ của bạn chỉ có thể nằm ở phần cứng mà bạn phải chạy nó, bởi vì mọi đối thủ cạnh tranh tiềm năng đều có quyền nhận một bản sao phần mềm đầy đủ tính năng của bạn để bắt đầu kinh doanh của họ.

nếu tôi để máy chủ MongoDB trực tiếp cho khách hàng, tôi sẽ cần xuất bản mã nguồn của toàn bộ thiết lập.

Nếu bạn hiển thị MongoDB trực tiếp với khách hàng, bạn đang cung cấp dịch vụ cạnh tranh cho các dịch vụ đám mây từ chính MongoDB hoặc về cơ bản bạn đã tạo một ứng dụng web chỉ giao diện người dùng.

Trong trường hợp đầu tiên, bạn chắc chắn phải xuất bản mã nguồn cho toàn bộ thiết lập theo giấy phép SSPL (giấy phép này có thể không được phép bởi giấy phép của các công cụ bạn đã sử dụng).

Trong trường hợp thứ hai, có thể bạn đang tiết lộ bí mật kinh doanh của mình cho người dùng, nhưng nếu bạn sử dụng cơ sở dữ liệu MongoDB đó chỉ để lưu trữ hàng tồn kho của webhop của mình, thì điều đó không kích hoạt các điều khoản trong s13 của SSPL.

nếu tôi sử dụng MongoDB trong hình ảnh docker được tạo tùy chỉnh (với giải pháp sao lưu / kết xuất homebrew của tôi), trong thiết lập FE-> BE-MongoDB, trong môi trường đám mây & sản xuất và khách hàng của tôi đang sử dụng FE, điều đó không bắt buộc tôi phải xuất bản toàn bộ nguồn.

Nó phụ thuộc vào những gì bạn đang cung cấp cho người dùng của mình thông qua FE đó. Ví dụ: nếu bạn đang cung cấp dịch vụ sao lưu cho các tệp của họ, thì tôi có thể thấy rằng một dịch vụ như vậy có thể kích hoạt điều khoản s13 của SSPL và yêu cầu bạn xuất bản mã nguồn cho toàn bộ thiết lập, bao gồm cả bản sao lưu tại nhà của bạn / giải pháp kết xuất và thậm chí có thể là docker.