SSPLv1
SSPLv1 (Server Side Public License, версия 1) — это лицензия на программное обеспечение с открытым исходным кодом, созданная компанией MongoDB Inc. в 2018 году. Она относится к категории копилефт-лицензий, но существенно ограничивает коммерческое использование, особенно в облачных средах, что делает её спорной с точки зрения традиционных определений открытого ПО (Open Source). SSPLv1 не одобрена Open Source Initiative (OSI) как соответствующая определению открытого исходного кода.
История создания
SSPLv1 была разработана компанией MongoDB Inc. (США) как ответ на проблему, известную как «паразитирование на облаке» (cloud provider lock-in). Традиционные лицензии с открытым исходным кодом, такие как GNU General Public License (GPL) или Apache License, позволяли крупным облачным провайдерам (например, Amazon Web Services, Google Cloud, Microsoft Azure) предоставлять управляемые версии популярных баз данных (включая MongoDB) как услугу (DBaaS), не делясь при этом доходами и не внося существенного вклада в развитие проекта. MongoDB, будучи одним из лидеров рынка NoSQL-баз данных, столкнулась с тем, что её продукт активно использовался облачными гигантами, которые получали прибыль, не поддерживая разработку.
В октябре 2018 года MongoDB Inc. объявила о переходе с GNU Affero General Public License (AGPLv3) на новую лицензию SSPLv1 для всех новых версий своей базы данных MongoDB (начиная с версии 4.0). Этот шаг вызвал широкую дискуссию в сообществе разработчиков открытого ПО. Критики заявили, что SSPLv1 нарушает принципы открытости, поскольку её условия фактически запрещают предоставление ПО как услуги без открытия всей инфраструктуры. Сторонники же утверждали, что это необходимая мера для защиты бизнеса разработчиков.
Основные положения лицензии
SSPLv1 основана на AGPLv3, но содержит ключевое дополнение — Раздел 13 (Section 13), который кардинально меняет условия распространения.
Раздел 13: Условие предоставления как услуги
Этот раздел гласит, что если вы предоставляете программное обеспечение, лицензированное по SSPLv1, третьим лицам в качестве сетевой услуги (например, как облачный сервис, база данных как услуга, платформа как услуга), то вы обязаны распространять весь исходный код программного обеспечения, используемого для предоставления этой услуги. Это включает в себя:
- Само программное обеспечение, лицензированное по SSPLv1.
- Все модификации и производные работы.
- Всё программное обеспечение, которое взаимодействует с пользователем через сеть и является частью «системы управления» (management system) или «инфраструктуры» (infrastructure), необходимой для предоставления услуги.
Фактически, это означает, что если компания, например, Amazon, запускает MongoDB как управляемый сервис, она должна открыть исходный код не только самой MongoDB, но и всего своего стека управления, мониторинга, балансировки нагрузки, резервного копирования и других компонентов, которые используются для предоставления этой услуги. Для крупных облачных провайдеров это практически невозможно, так как их инфраструктура является коммерческой тайной и ключевым активом.
Другие ключевые положения
- Копилефт: SSPLv1 является строгой копилефт-лицензией. Любые производные работы (derivative works) или модификации также должны распространяться под SSPLv1.
- Совместимость: SSPLv1 несовместима с большинством других лицензий, включая GPLv3, AGPLv3 и Apache 2.0. Это означает, что код под SSPLv1 нельзя смешивать с кодом под этими лицензиями в одном проекте без нарушения условий.
- Патентные права: Как и AGPLv3, SSPLv1 включает явный грант патентных прав от участников к пользователям, а также защиту от патентных исков.
- Авторское право: Все права на код остаются у авторов. Лицензия предоставляет разрешение на копирование, модификацию и распространение при соблюдении условий.
Критика и споры
SSPLv1 вызвала значительную критику со стороны сообщества открытого ПО и организаций, занимающихся его продвижением.
Несоответствие определению Open Source
Open Source Initiative (OSI) — организация, определяющая, что такое «открытый исходный код», — не одобрила SSPLv1. Основная причина — нарушение пункта 9 «Определения открытого исходного кода» (Open Source Definition), который требует, чтобы лицензия не ограничивала другое программное обеспечение. Раздел 13 SSPLv1, по мнению OSI, накладывает чрезмерные ограничения на то, как можно использовать программное обеспечение, фактически запрещая его коммерческое использование в облачных средах без раскрытия всей сопутствующей инфраструктуры. Это делает SSPLv1 «не-свободной» лицензией в терминологии OSI.
Мнение Фонда свободного программного обеспечения
Фонд свободного программного обеспечения (FSF) также раскритиковал SSPLv1. Хотя FSF признаёт, что проблема «облачного паразитирования» реальна, они считают, что SSPLv1 является «не-свободной» лицензией, поскольку она создаёт неравные условия для разных способов распространения. FSF заявил, что SSPLv1 несовместима с GNU GPL и не является лицензией свободного программного обеспечения. Они призвали сообщество не использовать SSPLv1.
Реакция сообщества и компаний
- MongoDB Inc. защищала SSPLv1, утверждая, что это единственный способ защитить бизнес-модель компании и стимулировать облачных провайдеров к сотрудничеству. Они также заявили, что лицензия не запрещает использование MongoDB в коммерческих целях, а только ограничивает предоставление её как услуги.
- Крупные облачные провайдеры, такие как Amazon Web Services (AWS), отреагировали созданием собственных форков (ответвлений) MongoDB, лицензированных под AGPLv3, чтобы обойти ограничения SSPLv1. Например, AWS запустила DocumentDB, которая является совместимой с MongoDB альтернативой, но не использует код MongoDB напрямую.
- Другие проекты последовали примеру MongoDB. Например, компания Elastic N.V. (США) в 2021 году перевела свои продукты Elasticsearch и Kibana с Apache 2.0 на SSPLv1 и Elastic License, что вызвало аналогичную критику и привело к созданию форков (OpenSearch).
Применение и распространение
SSPLv1 используется в основном для баз данных и инфраструктурного программного обеспечения, где проблема «облачного паразитирования» стоит наиболее остро. Наиболее известные проекты, использующие SSPLv1:
- MongoDB (начиная с версии 4.0) — одна из самых популярных NoSQL-баз данных.
- Elasticsearch (начиная с версии 7.11) — поисковая система и аналитическая платформа.
- Kibana (начиная с версии 7.11) — инструмент визуализации для Elasticsearch.
- CockroachDB — распределённая SQL-база данных (использует собственную лицензию, основанную на SSPL, но с некоторыми отличиями).
Альтернативы
Для проектов, которые хотят защитить свой бизнес от облачных провайдеров, но при этом оставаться в рамках открытого ПО, существуют альтернативные лицензии:
- AGPLv3 — более мягкая, но всё же копилефт-лицензия, которая требует раскрытия исходного кода при сетевом использовании, но не затрагивает инфраструктуру.
- Elastic License — не является лицензией с открытым исходным кодом, но позволяет использование, модификацию и распространение с ограничениями на предоставление как услуги.
- Business Source License (BSL) — лицензия, которая со временем (обычно через 3-4 года) автоматически становится лицензией с открытым исходным кодом (например, Apache 2.0).
Источники
- Текст лицензии SSPLv1 на официальном сайте MongoDB.
- Определение открытого исходного кода (Open Source Definition) от Open Source Initiative.
- Заявление Фонда свободного программного обеспечения о SSPLv1.
- Статья «MongoDB switches to SSPL, sparking open-source community backlash» (TechCrunch, 2018).
- Статья «Elastic changes license to SSPL, sparking controversy» (The Register, 2021).
- Документация по лицензированию проектов Elasticsearch и Kibana.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →