Software Development

Numer 1 z 2 milionów projektów Java. Fenomen Elasticsearch.

Kwiecień 27, 2016 0
Podziel się:

Co powoduje, że jest to najpopularniejszy projekt Java na GitHub?

Elasticsearch-github-highlights

Nawiasem mówiąc wyszukiwarka GitHub zrobiona jest właśnie na Elasticsearch!

Co powoduje, że twórcy sukcesów znanego projektu Java – Spring oraz firmy SpringSource teraz współtworzą markę Elastic?

Po pierwsze, rozwiązanie dobrze wpisuje się prawie we wszystkie modne nurty ostatnich lat. Adresuje potrzeby procesowania dużych ilości danych (Big Data), pozwala na automatyzacje instalacji i konfiguracji (Dev Ops), a także posiada cechy architektury rozproszonej skierowanej na usługi (Microservices) i nie jest oparte o bazę SQL (noSQL).

l2

Przede wszystkim Big Data.

Aktualnie za pomocą narzędzi Elastic można  kompleksowo obsłużyć duże ilości danych zaczynając od zbierania danych z różnych źródeł przez ich obróbkę, aż do wyszukiwania i analizy.

Elasticsearch rósł organicznie koncentrując się na dopracowaniu podstawowej funkcjonalność “search engine” oraz budowaniu społeczności i promowaniu projektów związanych z ES. W ten sposób wokół  Elasticsearch powstał ekosystem Elastic z dwoma najważniejszymi projektami Logstash i Kibana, wieloma pluginami oraz projektami open source.

Z tej perspektywy nie jest więc monolitem, ale zbiorem współpracujących komponentów  i doskonałym przykładem, jakie korzyści daje architektura Microservices. Komponenty mogą być wykorzystane osobno lub łącznie, co znakomicie zwiększa ilość potencjalnych zastosowań. Firmy trzecie dostają pole do popisu, co z kolei wpływa korzystnie na dalszy rozwój ekosystemu.

Z drugiej strony Elastic może swobodniej sterować rozwojem poszczególnych komponentów, dodawać całkiem nowe czy zastępować stare nowymi.

Dobrym przykładem jest Logstash. Powstał z myślą o zbieraniu, przetwarzaniu i dostarczaniu logów do Elasticsearch. Jego siłą napędową był trend Log As Data. Ktoś wreszcie spostrzegł, że  w logach systemowych zapisywane są ogromne ilości cennych i nie wykorzystywanych informacji. Podczas gdy rosły komercyjne rozwiązania jak Splunk, trójka ELK(ElasticSearch, Logstash, Kibana) była chyba jedyną solidną alternatywą open source.

Początkowo Logstash rozwijał ilość obsługiwanych źródeł danych, jednak szybko okazało się, że korzystniej jest wprowadzić nowy komponent specjalizujący się w zbieraniu danych. Dalszy rozwój Logstash skierowany został w stronę przetwarzania zdarzeń (Event Processing Pipeline), a w portfolio Elastic pojawiły się specjalizowane lekkie komponenty zbierające dane – Beats. Beats może lepiej niż Logstash obsłużyć urządzenia z ograniczonymi zasobami. Wtyczki Beats tworzone są w GO (Golang by Google). Łączą w sobie łatwość pisania znaną dla języków skryptowych oraz wydajność języków kompilowanych jak C++. Było to mistrzowskie posunięcie. Elastic znowu będzie “na Fali”, tym razem IoT.

Jest jeszcze jeden ważny aspekt decydujący o dużej popularności. Zamiast zamykać się w platformie JVM:

l3

http://turnoff.us/geek/java-family-crisis/

Elasticserach otwiera się (Rest API) na inne platformy i języki programowania.

Skoro w rodzinie Java przeważają talenty do nauk ścisłych, to dobre stosunki z prymusem na lekcjach plastyki będą nieocenione. Kibana stworzona jest w  AngularJS – numer 1 wśród 2 milionów projektów JavaScript na GitHub. W paczce znalazło się nawet miejsce dla Go. Mimo że nowy w klasie i jeszcze nie wszyscy go lubią, to dobrze dogaduje się ze starszymi wygami jak C++ i obraca się w środowiskach wbudowanych. No i wiadomo towarzyski Ruby. Tego wszyscy lubią. Logstash stworzony jest w Ruby, ale nie ma nic przeciwko uruchamianiu na JVM (JRuby).

Przyjazne stosunki z otoczeniem dotyczą także sąsiadów. Nawet tych z innej bajki. Dobrym przykładem jest serwis Stackoverflow zbudowany na .Net, którego wyszukiwarka działa na Elasticsearch.

Bierzmy więc przykład z najlepszych – otwartość na innych i elastyczność to ważne cechy!

3.3 / 5
Stoigniew Sztank
Autor: Stoigniew Sztank
Starszy Inżynier ds. Oprogramowania @Sii_Polska. Specjalizacje Java, Integracja, Oprogramowanie Dedykowane. Pracowałem w projektach dla Polkomtel, Raiffeisen Leasing, mBank, NC+, Pekao, GUS, Asseco.

Imię i nazwisko (wymagane)

Adres email (wymagane)

Temat

Treść wiadomości

Zostaw komentarz