Поскольку OpenSearch возник как форк от Elasticsearch, эти две базы данных могут показаться практически идентичными для незнакомых людей. Однако они уникальны и становятся все более уникальными с каждым новым обновлением.
Здесь мы обсудим сравнение этих двух поисковых систем с точки зрения безопасности, лицензирования, основных функций, документации, поддержки сообщества, дашбордов, машинного обучения, инструментов, плагинов и услуг/поддержки.
Безопасность из коробки
Компании больше всего заинтересованы в контроле над тем, кто может войти в систему/получить доступ к API и какие данные каждый пользователь может просматривать и изменять. Это критические потребности для подавляющего большинства случаев использования.
Бесплатная версия Elasticsearch поддерживает контроль доступа только для учетных записей пользователей, существующих в Elasticsearch. Это ограничение затрудняет внедрение для большинства компаний, поскольку они используют централизованную систему управления пользователями, такую как LDAP или OpenID.
OpenSearch включает контроль доступа для централизованного управления пользователями, включая LDAP и OpenID. В Elasticsearch для получения этой важной функции необходимо оплатить премиум-лицензию.
В принципе, полный набор функций безопасности, которые вам, скорее всего, понадобятся, доступен на премиум-уровне Elasticsearch. В то время как в OpenSearch вы получаете их бесплатно.
Следует отметить еще несколько функций безопасности.
Премиум-версии Elasticsearch включают IP-фильтрацию, безопасность на уровне документов, шифрование в состоянии покоя, обнаружение аномалий с помощью машинного обучения и защиту от вымогательства.
OpenSearch предоставляет полный набор средств безопасности с помощью плагина OpenSearch Security, который поставляется в комплекте с дистрибутивом OpenSearch. Он включает ряд функций для аутентификации, контроля доступа и ведения журналов аудита/соответствия.
Кроме того, OpenSearch имеет второй плагин безопасности (также бесплатный и с открытым исходным кодом) под названием Security Analytics Plugin. Это решение для управления информацией о безопасности и событиями (SIEM), созданное специально для OpenSearch. Его можно использовать для "расследования, обнаружения, анализа и реагирования на угрозы безопасности".
Лицензирование
При лицензировании необходимо учитывать два аспекта: экстренную экспертную поддержку и лицензионные ограничения.
Экстренная поддержка.
Компании хотят иметь кого-то, кому можно позвонить, когда что-то пойдет не так - кластер выйдет из строя, они потеряют данные, произойдет нарушение и т.д.
Премиум-лицензия Elasticsearch обеспечивает такую поддержку.
Но такой же уровень поддержки доступен и для бесплатных инструментов - бесплатного Elasticsearch, бесплатного OpenSearch с открытым исходным кодом и других - через сторонние консалтинговые компании или через AWS OpenSearch.
На странице OpenSearch есть страница "Партнеры", где перечислены несколько консалтинговых компаний, включая страницу поддержки OpenSearch компании Dattell, которые предоставляют поддержку 24×7.
Лицензионные ограничения.
Было много сказано о разочаровании, вызванном переходом Elasticsearch с открытой лицензии Apache License, версия 2.0 на ELv2 и SSPL. Elastic, компания, которая раньше была убежденной сторонницей открытого кода, теперь использует лицензии, не сертифицированные Open Source Initiative (OSI).
OpenSearch, с другой стороны, свободен в соответствии с лицензией Apache License, версия 2.0. Эта лицензия является чрезвычайно свободной лицензией, по которой пользователи могут изменять, распространять и сублицензировать исходный код. На исходный код не накладывается никаких ограничений, за исключением того, что авторы исходного кода не могут быть привлечены к ответственности конечными пользователями по какой-либо причине.
Другими словами, вы можете свободно создавать любой продукт на основе лицензии Apache, не опасаясь, что ваш продукт нарушает лицензионные соглашения.
С ELv2 и SSPL вам нужно быть осторожным в том, что делает ваш продукт. Например, SSPL гласит: "Если вы предоставляете функциональность Программы или ее модифицированной версии третьим лицам в качестве услуги, вы должны сделать исходный код услуги доступным через сетевую загрузку для всех бесплатно...". Это реальная проблема для компаний, использующих Elasticsearch как часть своего продукта (продуктов).
Вот ссылки на страницы FAQ по ELv2, SSPL и Apache License, Version 2.0 для получения дополнительной информации.
Функции
OpenSearch включает следующие возможности, не предлагаемые бесплатным Elasticsearch:
- Централизованные учетные записи пользователей / контроль доступа
- Межкластерная репликация
- IP-фильтрация
- Настраиваемый период хранения
- Обнаружение аномалий
- Коннектор Tableau
- JDBC драйвер
- Драйвер ODBC
- Функции машинного обучения, такие как регрессия и классификация
Другими словами, при использовании OpenSearch вы получаете эти функции бесплатно, а не платите за премиум Elasticsearch.
В премиум Elasticsearch есть несколько функций, которые в настоящее время не включены в OpenSearch.
Например, Elasticsearch имеет дополнительные функции агрегации, такие как агрегация геоформ и агрегация геогексгрид. Премиум Elasticsearch также включает дополнительные функции панелей для Kibana, включая Canvas (инструмент для презентации) и Lens (интеллектуальные предложения для визуализации данных).
Некоторые функции OpenSearch поставляются в виде плагинов. Например, оповещение об обнаружении аномалий встроено в премиум Elasticsearch. Пользователям OpenSearch, с другой стороны, необходимо установить два плагина для достижения той же функциональности: плагин обнаружения аномалий и плагин оповещения.
Плагины входят в комплект поставки OpenSearch, поэтому их установка достаточно проста. Однако помните, что если вы переходите на OpenSearch, изучение нового инструмента всегда требует дополнительных усилий.
Полный список функций, включенных в бесплатный, платиновый и корпоративный уровни Elasticsearch, можно найти здесь. Когда мы говорим о "премиальном Elasticsearch", мы имеем в виду уровни Platinum и Enterprise.
Документация
Документация Elastic очень обширна. У них есть статьи в блоге, руководства по продуктам, обучающие видео, вебинары, дискуссионные форумы, канал Slack, канал YouTube, информационный бюллетень, и список можно продолжать. Если вы используете Elasticsearch и у вас есть общий вопрос, у вас есть много мест, куда можно обратиться за немедленным ответом.
Документация по OpenSearch находится в зачаточном состоянии, как и следовало ожидать для технологии с открытым исходным кодом. В настоящее время в документации есть пробелы.
Со своей стороны OpenSearch делает большие успехи в заполнении этих пробелов и проводит встречи сообщества два раза в месяц, где пользователи могут задавать вопросы и предлагать необходимую документацию.
На сайте OpenSearch также есть растущий список партнеров, которые предлагают консультационную поддержку OpenSearch и управляемые услуги. Эти сторонние эксперты OpenSearch могут обучить новых пользователей и привнести опыт из первых рук в реализацию и оптимизацию поисковой системы.
Поскольку OpenSearch - это недавний форк Elasticsearch, пользователи также могут обращаться к документации Elasticsearch для решения большинства вопросов. Установите в документации Elasticsearch версию 7.10, и все будет применимо к OpenSearch (но не к плагинам OpenSearch).
Сообщество
Роль сообщества различна для двух технологий.
OpenSearch поощряет вклад сообщества. Такой подход позволяет OpenSearch быстро добавлять новые функции с помощью членов сообщества. Пользователи могут отправлять запросы на исправление, открывать новые проблемы или оставлять отзывы в репозиториях OpenSearch GitHub.
OpenSearch также имеет активный форум, который включает широкий спектр тем для объявлений, общих отзывов, сообщества, безопасности, плагинов и других.
Вышеупомянутые встречи сообщества, проводимые раз в две недели, проходят в режиме онлайн, что способствует широкому участию. А первый в истории OpenSearchCon прошел в Сиэтле в сентябре 2022 года.
Elastic позволяет членам сообщества вносить свой вклад через репозиторий Elastic GitHub. Однако Elastic разрешает вносить изменения только сотрудникам. Недостатком такого подхода является то, что изменения будут приоритетными в зависимости от того, что принесет наибольшую пользу Elastic, а не сообществу / пользователям.
Elastic также проводит широкий спектр мероприятий, как виртуальных, так и личных. И, наконец, Elastic располагает большой библиотекой видеозаписей с прошедших мероприятий и вебинаров.
Дашборды (Приборные панели)
В Kibana есть некоторые функциональные возможности, не включенные в OpenSearch Dashboards (также иногда просто называемые Dashboards). Например, Canvas и Lens позволяют использовать режим презентации и визуализации с перетаскиванием.
Кроме того, Kibana Maps облегчает визуализацию и анализ геопространственных данных. Будут ли эти функции полезны, зависит от вашего случая использования.
OpenSearch Dashboards включает все возможности визуализации, доступные в Kibana версии 7.10.2. Кроме того, OpenSearch считает, что их инструмент для создания приборных панелей движется в уникальном направлении, а не повторяет возможности Elastic.
Для пользователей очень приятно, что Kibana и OpenSearch начинают выглядеть как уникальные продукты, а не просто подражатели. С опциями приходит реальный прогресс.
Например, Grafana - это форк от Kibana, и вместо того, чтобы быть дублирующим сервисом, он предлагает уникальные преимущества. Аналогично, OpenSearch Dashboards движется в направлении превращения в отдельный инструмент, отличный от OpenSearch. Таким образом, он будет полезен как дополнение к OpenSearch, так и наряду с другими базами данных.
Кроме того, в OpenSearch появятся новые функции, такие как возможность добавлять и удалять расширения на лету, не выводя кластер из строя.
Машинное обучение
В настоящее время возможности машинного обучения (ML) в OpenSearch и Elasticsearch ограничены использованием CPU.
Для любых серьезных проектов лучше использовать инструменты, специально созданные для ML, такие как TensorFlow или Pytorch, поскольку они используют графические процессоры и специально созданы для ML.
Для пользователей, которые хотят выполнять ML в базе данных, следует выделить несколько особенностей. В последних версиях OpenSearch упростил для пользователей запуск и добавление ML-моделей через ML Commons. Поддерживаются модели K-Means и Random Cut Forest (RCF).
Elasticsearch предлагает машинное обучение для обнаружения аномалий, а также для составления прогнозов на будущее. Большинство инструментов машинного обучения доступны только в премиум-версиях Elasticsearch.
Если вы решите использовать OpenSearch или Elasticsearch для ML, создайте отдельные экземпляры ML, чтобы предотвратить конкуренцию процессоров.
Набор инструментов для сбора и агрегации журналов
Сопутствующие инструменты Elasticsearch представляют собой сложившуюся экосистему. Logstash принимает и преобразует данные. Он может добавлять структуру к неструктурированным данным, анонимизировать отдельные поля и расшифровывать местоположение по IP-адресам. Beats - это одноцелевые отправители данных, которые передают данные с тысяч машин в Logstash или Elasticsearch.
OpenSearch может поддерживаться рядом инструментов, включая Logstash и Beats. Другие инструменты включают Fluentd, Fluent Bit, OpenTelemetry Collector и Data Prepper.
Data Prepper - это проект OpenSearch для приема, фильтрации, преобразования, обогащения и маршрутизации данных. В настоящее время Data Prepper может обрабатывать данные распределенной трассировки и входить в журнал. В будущих релизах будет реализована поддержка метрических данных.
Обе технологии хорошо работают с Apache Kafka, платформой потоковой обработки, которая может обрабатывать большие объемы данных (триллионы событий в день) и гарантирует доставку всех данных.
Плагины
Плагины позволяют пользователям расширить функциональность базы данных. Elasticsearch и OpenSearch имеют набор плагинов. Список плагинов Elasticsearch доступен здесь, а список плагинов OpenSearch - здесь.
OpenSearch имеет множество плагинов, в том числе для обеспечения безопасности, межкластерной репликации, оповещения и планирования.
Elasticsearch имеет плагины, которые помогают настроить Elasticsearch для конкретных случаев использования. К ним относятся модули для отображения, анализа, скриптовых движков и обнаружения.
Услуги и поддержка
OpenSearch был превращен в предложение услуг от Oracle и, конечно же, AWS. На сайте OpenSearch указан ряд партнеров по управляемым услугам и консультационной поддержке (https://opensearch.org/partners), включая компанию Dattell.
Из-за лицензирования Elastic новые версии Elasticsearch не могут предоставляться в виде пакетных услуг никакими другими сторонами, кроме самой Elastic. Однако все еще существуют сторонние консалтинговые компании, которые предлагают услуги по профилактическому обслуживанию и поддержке.
У Elastic также есть страница для партнеров. Она создана скорее как канал реселлеров, чем как консалтинговое подразделение организации.
Подводя итоги по сравнению OpenSearch с Elasticsearch
В целом, OpenSearch полностью бесплатен и поставляется с полным набором функций безопасности. Ему не хватает некоторой документации и у него меньшее сообщество, но многие компании последовательно работают над устранением этих пробелов.
Премиум-предложения Elasticsearch имеют больше возможностей, особенно для визуализации, и Elastic имеет отличную библиотеку документации и учебников. Однако Elasticsearch премиум-класса может стоить очень дорого, а изменения в лицензировании вызывают реальную озабоченность.
Если у вашей компании есть лишние деньги (а речь может идти о сотнях тысяч или миллионах в зависимости от размера кластера и т.д.), то использование Elasticsearch может быть более простым подходом в ближайшей перспективе.
Если вы хотите сэкономить бюджет, то используйте OpenSearch вместо бесплатного Elasticsearch, потому что OpenSearch поставляется с дополнительными функциями, в частности, с полным набором функций безопасности. Вначале потребуется дополнительное обучение и поддержка, но окупаемость инвестиций будет выдающейся.