Что код открытый нам готовит?

Логотип компании
Что код открытый нам готовит?
Популярность opensource не случайна: исходный код открыт, а дистрибутивы находятся в свободном доступе для скачивания и установки

С каждым годом технологии с открытым исходным кодом становятся все важнее для ИТ-сообщества. Если раньше гиганты индустрии делали упор на собственные технологии и решения, то сейчас многие их ключевые продукты базируются на проектах с открытым исходным кодом либо их модифицированных версиях. Одни предоставляют поддержку для популярных технологий, другие продают их облачные версии, третьи предлагают готовые протестированные сборки связанных продуктов, объединенные в единый дистрибутив.

Популярность opensource не случайна: исходный код открыт, а дистрибутивы находятся в свободном доступе для скачивания и установки. Помимо этого, они обладают рядом весомых преимуществ. Если продукт популярен, его развитие происходит намного быстрее, чем решений с проприетарным кодом. В оперативном порядке пользователи заводят запросы на доработку и дефекты, энтузиасты быстро исправляют наиболее критичные проблемы и предоставляют их в общий доступ, члены сообщества безотлагательно тестируют обновления и дают обратную связь о доработках и исправлениях.

Если же проект действительно серьезный, популярный и активно развивающийся, то чаще всего он оказывается под крылом крупных компаний. И хоть это не всегда идет на пользу проектам, но при удачном стечении обстоятельств развитие технологий становится быстрым и устойчивым – до шести крупных релизов в год.

Программное обеспечение с открытым исходным кодом может стать двигателем для вашего бизнеса. Благодаря своей доступности, разнообразию и высокой скорости развития оно позволяет решить практически любую задачу и быстро проверить вашу бизнес идею.

Opensource для проверки MVP

Одним из современных трендов крупных компаний стала проверка бизнес-идей с помощью создания MVP (minimum viable product) – минимально жизнеспособного продукта, который позволяет получить осмысленную обратную связь от пользователей и понять, какие его функции востребованы, а какие нет. При его создании производится пилотирование выбранных технологий, подхода к реализации и основных бизнес-функций решения. Использование для этих целей программного обеспечения с открытым исходным кодом дает много преимуществ.

Первое и достаточно важное – скорость внедрения. Вы можете быстро попробовать технологию на пригодность в конкретной ситуации. Скачал, применил – получил результат. Никакой возни с согласованием бюджетов, никаких лишних затрат. Не подошла – удалил и попробовал следующую. Подошла – остановился на полученном результате и переключился на очередную задачу.

Второе преимущество – доступность и гибкость. У вас есть возможность осуществить одну и ту же задачу на нескольких технологиях одновременно, протестировать реализацию и сравнить полученные результаты. Наиболее важным это становится при разработке микросервисов. На начальном этапе задача может быть решена с помощью технологии, позволяющей ввести функциональность в эксплуатацию наиболее быстро. Параллельно без спешки могут быть созданы оптимальные реализации той же задачи, проведено тестирование и выбрана наиболее подходящая версия.

Третье преимущество – сокращение времени разработки. Благодаря популяризации открытых технологий любой из участников команды может ознакомиться с исходниками и документацией выбранной технологии, найти множество примеров реализации и при необходимости разобраться с ее устройством изнутри. Желающие смогут развить свою экспертизу за счет обилия обучающих роликов, технической литературы и онлайн-курсов в Интернете. Помимо прочего, новые функции и исправления дефектов доступны в виде исходного кода на GitHub и могут быть использованы сразу после появления в репозитории. Это позволяет сократить время ожидания официального выпуска релиза.

Пара слов о рисках

Несмотря на ряд весомых преимуществ, использование программного обеспечения с открытым исходным кодом приводит к определенным рискам. Первый и очень существенный – отсутствие технологической поддержки. Если при использовании какого-либо открытого ПО возникнут проблемы с его функционалом или стабильностью работы, у вас не будет возможности обратиться к его производителю и гарантированно получить решение.

Компании, которые участвуют в управлении популярных opensource-проектов, берут на себя ответственность за их поддержку и развитие, внося значительный вклад в устранение дефектов и разработку новых возможностей. При таком подходе наиболее популярной моделью распространения решений становится продажа подписки на Enterprise-версию проекта с технической поддержкой и расширенным функционалом.

В случае использования свободно распространяемого программного обеспечения на проектах наших заказчиков мы, как правило, рекомендуем покупку аналогичных лицензий для наиболее критичных компонентов решения. Особенно это актуально для продуктивной среды, где стабильность работы и быстрое исправление дефектов чрезвычайно важны. В противном случае заказчик рискует в экстренной ситуации остаться один на один с документацией и сообществом. И тут уже все будет зависеть от конкретного случая и технологии. Наиболее зрелые и популярные проекты успели обзавестись солидными базами технической документации и информационными ресурсами, где всегда можно задать вопрос и получить адекватный ответ. Но это работает не во всех случаях.

Это и плюс, и минус одновременно – исходный код доступен и при должной квалификации можно быстро поправить проблемное место и собрать хотфикс. Либо обратиться к GitHub – вполне возможно, что ваш дефект успели найти и поправить, но не успели перенести в один из релизов. Тогда ничто не помешает вам скачать соответствующую ветку и собрать исправленную версию самостоятельно.

Еще один важный вопрос, которому необходимо уделить пристальное внимание в проектах с открытым исходным кодом, – обеспечение безопасности. Как правило, компании, занимающиеся активной поддержкой и развитием какого-либо открытого проекта, основной функционал по ее обеспечению реализуют в виде проприетарного кода Enterprise-версий. Поэтому часть заказчиков, принявших решение о реализации своих систем, например, в микросервисной архитектуре, предпочитают доплатить за уверенность в их будущей безопасности.

Следует заметить, что для многих проектов данные вопросы не остаются без внимания энтузиастов сообщества. Чаще всего можно найти свободные версии расширений для решения задач обеспечения безопасности. Также надо отдать должное многим компаниям, которые не выносят отдельно данную функциональность, ограничиваясь продажей поддержки и облачных версий.

Opensource на практике

Выполняя проекты разной степени сложности для организаций из различных отраслей, мы часто обращаемся к opensource-решениям. Так, разработчики Front-end-приложений и специалисты UI/UX активно применяют популярные фреймворки на базе NodeJS, такие как React, Angular и VUE. Специалисты по интеграции пишут сервисы на базе JBoss и Camel. Эксперты в области хранилищ данных и Data Science давно стали использовать для специализированных задач стек Hadoop, NOSQL БД и In Memory Data Grid вместо классических баз данных на основе SQL.

Также мы ведем разработку микросервисов на opensource-технологиях, которые оказываются незаменимыми на всех этапах цикла – от хранения исходного кода до запуска, управления и журналирования.

Кроме того, свободное программное обеспечение используется на проектах, реализованных с помощью технологий больших данных. Стек Hadoop, Kafka и прочие ключевые проекты давно перешли под крыло Apache Foundation и распространяются бесплатно. По опыту могу отметить, что большинство заказчиков предпочитают готовые дистрибутивы крупных компаний, таких как Cloudera и Hortonworks. В них поставляются стабильные наборы заранее сконфигурированных технологий, а также удобные интерфейсы для установки, настройки и масштабирования кластера. Модель распространения этих дистрибутивов довольно широка – есть открытые версии, Enterprise-версии с расширенным функционалом и поддержкой, облачные варианты предоставления инфраструктуры, а также готовые программно-аппаратные решения (например, Oracle Big Data Appliance) с предустановленным ПО и входящими в комплект лицензиями.

И еще одно направление – DevOps – также не обходится без применения opensource. Системы управления конфигурацией и обеспечения инфраструктуры как кода, такие как Chef и Ansible, открыты. Docker и Kubernetes – это проекты с открытым кодом и редко используемыми Enterprise-версиями. Средства обеспечения непрерывной интеграции и доставки, в том числе Jenkins и TeamCity, имеют Community-версии с функционалом, достаточным для большинства пользователей.

Но для того чтобы обеспечить простоту и более высокую управляемость, придется заплатить. Для многих из указанных технологий существуют специализированные средства, проектируемые ключевыми компаниями, вносящими вклад в их развитие, и предоставляющие удобные пользовательские интерфейсы для работы с консольно-ориентированными технологиями. Например, Ansible Tower позволяет команде администрирования управлять конфигурацией централизованно. Подобного эффекта можно добиться, интегрировав вместе ряд других свободных технологий, но результат будет не такой изящный и интуитивный.

Есть и уникальные решения, в частности DevOptics. Они позволяют интегрировать между собой ключевые DevOps инструменты, например Jira, Git и Jenkins, для создания качественно новой визуализации процесса разработки ПО. С его помощью можно обеспечить действительно прозрачный и удобный процесс разработки. Единственным минусом является его модель распространения – продукт доступен только в облачном варианте. Многие крупные российские компании не готовы выносить в облака свои данные и исходные коды. Им остается пользоваться имеющимися On Premise-решениями либо начинать пересматривать свою политику ведения бизнеса.

Технологии с открытым исходным кодом использовались при разработке собственных инновационных решений «Неофлекс», предназначенных для подготовки отчетности с помощью технологий больших данных, создания среды для визуальной разработки ETL-приложений в архитектуре Big Data, а также для разработки платформы, которая позволяет упростить создание приложений в микросервисной архитектуре и реализации концепции Open API. Такой подход позволяет заказчикам экономить на дорогостоящих лицензиях и ускорить процесс разработки. А при необходимости они могут приобрести дополнительные услуги по поддержке или расширенные опции для обеспечения безопасности.

Основываясь на вполне успешном опыте реализации проектов с использованием opensource, могу отметить, что при правильном подходе программное обеспечение с открытым кодом – реальный способ ускорить процесс разработки и сэкономить ИТ-бюджет без потери качества решений. 

Автор: Евгений Овчинцев, старший специалист компании «Неофлекс»

    

 

Опубликовано 07.04.2019

Похожие статьи