OpenSearch vs. Elasticsearch

OpenSearch erschien 2021 unter der Apache License 2.0 als Fork von Elasticsearch v7.10.2. Die OpenSearch-Entwicklung wird von Amazon AWS angeführt. Stand 2023-11-09 liegt OpenSearch in v2.11.0 vor, Elasticsearch in den Versionen 7.17.14 und 8.11.0. OpenSearch und Elasticsearch entwickeln sich seit dem Fork auseinander (was besonders im Interesse von elastic liegt). Software-Produkte wie Graylog können beide unterstützen, verweisen dann aber auf explizit einzusetzende Versionen, um eine gewisse Kompatibilität sicherzustellen.

EOL-Dates:

Features:

  • Da beide Suchmaschinen auf Lucene basieren, wird alles von der Indizierung und Zusammenführung von Dokumenten bis hin zu Ähnlichkeiten und Filter-Caches unterstützt. Wenn beide auf neuere Versionen von Lucene aktualisieren, werden beide auch die gleichen Verbesserungen und Bug-Fixes übernehmen. Neben Lucene gibt es gemeinsame Funktionen von Elasticsearch 7.10.2, auf dem OpenSearch ursprünglich basiert. Da sich beide Suchmaschinen jedoch getrennt voneinander weiterentwickeln, wird immer mehr von diesem Code durch neue Entwicklungen ersetzt.

  • Funktionen wie Authentifizierung und Autorisierung, Indexverwaltung, Alarmierung etc. waren in Elasticsearch proprietär, weshalb OpenSearch Open-Source-Alternativen implementiert hat. Während Elasticsearch beispielsweise über Index Lifecycle Management verfügt, bietet OpenSearch Index State Management. Im Grossen und Ganzen tun sie das Gleiche, der Unterschied liegt in den (sich häufiger ändernden) Details. Nicht alle Funktionen in Elasticsearch sind frei, d.h. durch die Basic-Lizenz abgedeckt. Zum Beispiel ist das Index Lifecycle Management kostenlos, aber Cross-Cluster Replication oder LDAP/OpenID/SAML-Authentication nicht (siehe Subscriptions Page) - was besonders im Unternehmensumfeld interessant ist. Andere Funktionen, die in OpenSearch kostenlos enthalten sind, bei Elasticsearch aber nicht sind IP filtering, Configurable retention period, Anomaly detection, Tableau Connector, JDBC-Treiber, ODBC-Treiber oder Machine Learning-Features.

  • Elasticsearch als auch OpenSearch bieten inzwischen unterschiedliche Funktionen. So verfügt Elasticsearch beispielsweise über Zeitreihendatenströme, während OpenSearch die Segmentreplikation (wieder) eingeführt hat.

  • „Searchable Snapshots“ sind in Elasticsearch schon länger und in OpenSearch seit v.2.7 produktiv: Die Möglichkeit, eine „Offline“-Suchfunktion zu bieten und damit die für den Betrieb älteren, weniger häufig abgerufenen Daten erforderliche Hardware erheblich zu reduzieren. In Elasticsearch kostet das Feature, in OpenSearch ist es for free enthalten.

  • Aktuelle Elastic-Komponenten wie Logstash, Beats und Client-Bibliotheken prüfen, ob das Ziel ein Elasticsearch ist und verweigern die Zusammenarbeit mit OpenSearch. Man kann also aktuelle Versionen von Logstash oder Beats nicht mit OpenSearch nutzen. OpenSearch stellt sich dem mit Eigentwicklungen im Projekt Data Prepper entgegen.

Security:

  • OpenSearch bietet die gleichen Security-Features wie Elasticsearch’s Premium-Level, aber komplett frei. Das Security-Modul von OpenSearch wird vollständig offen entwickelt und verfügt über alle erforderlichen Funktionen: Active Directory und LDAP, SAML, OpenID, Zugriffskontrollfunktionen einschliesslich Maskierung und Sicherheit auf Feldebene, Audit-Protokolle, Verschlüsselungsunterstützung und mehr. Darüber hinaus bietet OpenSearch ein zweites Sicherheits-Plugin namens Security Analytics Plugin. Dabei handelt es sich um eine SIEM-Lösung (Security Information and Event Management), die speziell für OpenSearch entwickelt wurde („to investigate, detect, analyze, and respond to security threats“). Hier hat OpenSearch die Nase vorn.

Community:

  • Die Anzahl der Git-Commits lässt sich zwischen den beiden Projekten nicht vergleichen, da beide ihre Repos unterschiedlich strukturieren. Beide Projekte sind stark aktiv.

  • Die Anzahl der Forum Posts lässt sich auch nicht vergleichen, das Elastic ein grosses Forum für alles aus dem ELK-Stack hat, OpenSearch dagegen mit getrennten Kategorien arbeitet, z.B. OpenSearch und OpenSearch Dashboards (dem Kibana-Fork).

  • Google Trends: In der Schweiz halten sich beide Suchmaschinen die Waage, in Deutschland nimmt das Interesse für Elasticsearch ab und das für OpenSearch massiv zu - und liegt deutlich über dem von Elasticsearch.

Lizenz:

  • Die Elasticsearch-Lizenz ist nicht von der Open Source Initiative (OSI) zertifiziert.

  • OpenSearch steht unter der Apache-Lizenz, d.h. dem kommerziellen Einsatz steht nichts im Weg. Elasticsearch steht unter der Elastic License, die unter anderem den Einsatz als as-a-Service untersagt.

Open Source:

  • Meinung 1: Amazon hat die Marke Elasticsearch missbraucht, während Elastic sich für die Open-Source-Gemeinschaft eingesetzt und AWS gezwungen hat, die angebotene Software tatsächlich zu pflegen.

  • Meinung 2: Elastic hat das Vertrauen von Benutzern und Mitwirkenden missbraucht, während AWS das Elasticsearch-Projekt durch den Fork gerettet und fortgeführt hat.

  • Meinung 3: Beide Unternehmen leisten einen Beitrag zur Gemeinschaft, müssen aber auch ihre eigenen Interessen verfolgen, die manchmal mit den Ansichten anderer kollidieren.

Empfehlung:

  • OpenSearch: Für Unternehmen, die eine flexible, Open-Source-Lösung suchen, bei der die Gefahr eines Vendor-Lock-ins geringer ist, und die Security-Features out-of-the-Box bietet. Wer lizenzseitig den Zero-Risk-Ansatz fährt und nichts spezielles von Elasticsearch benötigt, ist mit OpenSearch gut bedient.

  • Elasticsearch: Für Unternehmen, die spezielle Elasticsearch-Funktionen benötigen und bereit sind, dafür zu bezahlen.

  • Graylog: Ab Graylog v5.0 wird OpenSearch v2.x unterstützt. Elasticsearch wird nur in Version 7.10 supportet - Graylog empfiehlt, auf OpenSearch zu wechseln.

  • ELK: Wer den ELK-Stack (inkl. Beats) einsetzt, sollte auf Elasticsearch setzen, da auch Logstash und Kibana von Elastic entwickelt werden.

Built on 2024-04-18