Чтобы ответить на этот вопрос, необходимо прежде всего отметить крайне размытое определение этого понятия. Изначально Open Source — это программное обеспечение, которое поставляется для конечного пользователя с открытым исходным кодом c лицензиями GNU/Linux, MIT и др. Но сегодня Open Source называют уже целый стек технологий - набор определенных программ, которые традиционно используются вместе. Одним из примеров может быть связка Kubernetes, Prometheus и Grafana. Как так получилось, что вдруг появилось многофункциональное бесплатное ПО, платные аналоги которого стоят дорого? Как говорится, откуда бесплатный сыр?
Согласно статистике 2021 года более 75% компаний, использующих кластеризацию, работают на Kubernetes. Интересно, сколько из них знают, что данное ПО было написано компанией Google прежде всего для управления своими собственными ресурсами? Это важно, ведь Kubernetes можно смело назвать ядром современного Open Source. Став массовым продуктом, «кубер» начал активно развиваться, появились важные дополнения. Получается, внедряя такой Open Source, мы изначально берём продукт, заточенный не под наши задачи, который расширен (или наоборот упрощен) в разных редакциях и адаптирован к массовому использованию. В этом заключается одно из ключевых отличий свободного ПО от классического платного софта.
И всё же, несмотря на то что рост популярности контейнеризации продолжается на протяжении многих лет, около 60% компаний, согласно исследованиям Sysdig, используют всего 1 кластер, а компаний, имеющих хотя бы 2 кластера, набирается всего 19%. Дальше ещё меньше. Таким образом контейнеризация на Open Source входит в нашу жизнь крайне осторожно.
С лицензиями тоже не всё так просто. Необходимо отметить, что согласно 8 пункту лицензии GNU при нарушении условий распространения ПО, ваши права по ней автоматически прекращаются. Во-вторых, согласно пункту 15, на использование Open Source отсутствует какая-бы то ни было гарантия, что согласитесь, выглядит неприятно. По факту вы используете ПО на свой страх и риск, никто не будет отвечать за последствия. Здесь вспоминается отличный пример с сертификатами: в то время как сторонники бесплатного ПО используют знаменитый Let’s Encrypt, платные сертификаты стоят от 1500$ именно из-за включенной гарантии\страховки на случай взлома. Возможно поэтому платные сертификаты никак не могут взломать.
Переход на бесплатное ПО – это тоже деньги. Например, Мюнхену такой переход на ОС «LiMux» стоил сначала 30 миллионов евро, а потом ещё 50 миллионов за возврат к системе Microsoft Windows. Этот пример показателен как с точки зрения проблем, которые могут последовать за переходом на Open Source, так и с точки зрения успешности ПО с открытым кодом, ведь если дело дошло до столь масштабных миграций, значит польза в переходе определенно просматривалась.
И да, большая часть разработчиков, формирующих сегодня повестку дня в ИТ, однозначно высказываются в пользу открытых технологий, открытого кода и бесплатного ПО. А учитывая, что рост разработки ПО продолжает увеличиваться год от года, именно сообщество разработчиков определяет, что будет востребовано в новом году. Однако помимо разработчиков огромный штат системных администраторов, инженеров и DevOps’ов должны поддерживать ПО с открытым кодом, что зачастую приводит к внутренним конфликтам в ИТ отделах. Оно и понятно, следуя главному принципу Open Source и конкретно принципу Linux «Делай что-то одно, но хорошо», это что-то одно потом необходимо будет интегрировать с другим софтом, который тоже делает хорошо что-то одно.
Изменения от версии к версии приводит к необходимости учитывать разницу в релизах всего ПО, участвующего в ИТ-стеке компании. Например, обновление кластера Kubernetes может потребовать повторного развёртывания прикладного ПО или базы данных с учётом корректировок под новую версию кластера. В противовес Open Source проприетарное ПО, наоборот, стремится сохранять совместимость с более ранними версиями, жертвуя при этом функциональностью, если необходимо. Хорошо известен пример Windows Server – система позволяет использовать в сети компании версии 2000-х годов одновременно с последними. При этом одна из главных операционных систем для Open Source, Centos 7, после появления восьмой версии изменилась настолько, что в сообществе DevOps все чаще стали звучать идеи об отказе апгрейда и о переходе на Debian и другие версии ОС.
Резюме: Open Source можно считать набор настроенного между собой отдельного бесплатного софта, разработанного разными компаниями без гарантии совместимости между собой. Тут важно отметить, что любой из компонентов Open Source стека у вас может резко прекратить дальнейшее развитие производителем, как это происходит сейчас с docker’ом - его поддержка прекращается в скором времени, что повлечет необходимость повторного развертывания вашего продукта и тестирования всех компонентов стека с заменителем docker’a (вероятно containerd).
Закончить эту статью хотелось бы ещё одним важным фактом. Первыми, кто подготовился к Open Source временам, стали как раз самые сильные его противники – мировые ИТ гиганты, быстро развернувшие облачные PaaS сервисы для работы с контейнеризацией и Open Source. Большая тройка: Amazon, Google и Microsoft предложили использовать бесплатное ПО внутри платных облаков. При этом, по данным Datalog, 75% компаний, использующих контейнеризацию на Kubernetes, работают именно в облаках этих компаний. Не это ли ответ на вопрос о будущем Open Source?