Na początku było słowo… potem były dwa słowa, trzy, pierwsze zdanie, drugie zdanie i tak dalej. No a potem ktoś zapragnął w tym wszystkim wyszukiwać. Tak powstał Elasticsearch 🙂

Tak też zaczęła się przygoda firmy istniejącej dziś pod nazwą Elastic w budowanie czegoś co obecnie znamy jako Elastic Stack.

Zanim przejdziemy do dalszych zabaw z samym Elasticsearchem chciałbym w kilku słowach opowiedzieć co jeszcze znajduje się na tym stosie.

Co składa się na Elastic Stack?

To może po kolei.

Elasticsearch

Sercem całego stosu jest silnik wyszukiwania i analizowania danych Elasticsearch. Od niego wszystko się zaczęło. Początkowo firma Shaya Banona, twórcy projektu, nosiła nazwę Elasticsearch BV jednoznacznie wskazującą na ich jedyny wtedy produkt. W marcu 2015 roku zmieniła jednak nazwę na Elastic, żeby pokazać, że jej produkty wyszły już daleko poza samo wyszukiwanie.

Silnik został napisany w Javie i działa na jej maszynie wirtualnej. U jego podstaw leży biblioteka Apache Lucene. Tym czym szczyci się Elasticsearch jest szybkość (zaiste), skalowalność (równie łatwo jest go uruchomić na laptopie jak i na setkach serwerów), odporność na błędy i zapewnienie wysokiej dostępności oraz… elastyczność (stara się radzić sobie z każdym rodzajem przyjmowanych danych).

Przez te kilka lat istnienia Elasticsearch dorobił się imponującej liczby klientów wielu popularnych i mniej popularnych języków programowania. Część z nich jest wspierana przez firmę Elastic, ale lista tych utrzymywanych wyłącznie przez community robi jeszcze większe wrażenie.

Na tym zakończmy. W niniejszej serii to właśnie Elasticsearch jest głównym aktorem, więc informację na jego temat pojawią się jeszcze nie raz.

OK. W takim razie co takiego pojawiło się w stajni firmy, że ta postanowiła zmienić nazwę?

Logstash

Pierwszym z nowych produktów był Logstash (napisany po trochu w Ruby i Javie).

Logstash jest rurą 🙂 Rurą umożliwiającą konsumpcję danych z wielu źródeł jednocześnie, przetworzenie ich w dowolny sposób i wyplucie do swojego ulubionego składowiska. Jasne jest, że ulubionym składowiskiem w tym przypadku jest Elasticsearch, ale bynajmniej nie jedynym.

Listy możliwych źródeł wejścia, filtrowania jak i potencjalnych składowisk są niebywałe.

Kibana

Drugim dodanym do stosu produktem, który pojawił się praktycznie jednocześnie z Logstashem, była Kibana. Ta dla odmiany została napisana w JavaScript.

Kibana jest „oknem na Elastic Stack”, jak ładnie określają to jej twórcy. Pozwala zarówno badać i wizualizować dane znajdujące się w Elasticsearchu, jak i zarządzać całym stosem.

Wynikami analiz można dzielić się z innymi w formie przyjaznych dashboardów lub po prostu wyeksportować je do PDF, czy CSV.

Część administracyjna z kolei przypadnie do gustu każdemu, kto woli zarządzać systemami w bardziej okienkowy sposób, bez konieczności robienia wszystkiego z poziomu linii komend.

Świetną sprawą dla programistów chcących analizować zapytania Elasticsearcha (w tym również nas w kolejnych artykułach) są narzędzia deweloperskie dostarczane w Kibanie. Nie tylko podpowiadają składnie zapytań, ale również pomagają je profilować. Trochę więcej na ten temat napiszę w kolejnym artykule.

ELK

Używając pierwszych liter trzech powyższych produktów twórcy utworzyli sobie przyjemny akronim ELK, który w języku angielskim oznacza jelenia kanadyjskiego. Stąd też ten jelonek na obrazku tytułowym. Od tego momentu, wszystkie trzy projekty, które świetnie razem współgrają, zaczęto nazywać ELK Stack.

Beats

W 2015 roku, w odpowiedzi na potrzeby użytkowników, twórcy stosu ELK wypuścili na rynek zbiór lekkich aplikacji mających za zadanie przechwytywać zdarzenia dokonujące się na plikach, metrykach, czy pakietach sieciowych i wysyłające informacje o nich do Logstasha lub Elasticsearcha. Nazwano je Beats, a napisano w języku Go.

Oprócz wypuszczenia kilku własnych beatsów świetnym ruchem ze strony ludzi z Elastica było udostępnienie prostego sposobu na tworzenie ich samodzielnie i dzielenie się nimi z innymi. Zaowocowało to powstaniem całkiem pokaźnej listy beatsów rozwijanych przez społeczność. Co najfajniejsze – cały czas powstają nowe.

ELKB?

I tu pojawił się problem pojawiło się wyzwanie. Jak zaktualizować akronim, żeby uwzględniał również Beatsy? Postanowiono nie brnąć dalej w dodawanie kolejnych literek, bo to nie było ani trochę skalowalne i dylemat powróciłby przy następnym produkcie. Postawiono więc na nazwę Elastic Stack.

Elastic Stack

Elastic Stack

Cała ta historia została ładnie zobrazowania na jednej ze stron firmy Elastic.

…i jeszcze trochę

Oprócz tych czterech produktów składających się na Elastic Stack firma oferuje również kilka dodatkowych.

X-Pack

Pierwszym z nich jest X-Pack umożliwiający rozszerzenie funkcjonalności Elasticsearcha, Logstasha i Kibany. Zawiera m.in. rozszerzenia wprowadzające autoryzację, monitorowanie, raportowanie, czy uczenie maszynowe.

Przez długi czas X-Pack był rozwiązaniem zamkniętym dostępnym w modelu subskrypcyjnym, ale od wersji 6.3 postanowiono się z nim otworzyć.

Elasticsearch Service

Poza tym firma Elastic zarabia na swoim stosie dostarczając go w modelu as a service. Jeżeli nie chcemy sami zajmować się utrzymaniem infrastruktury to możemy skorzystać z hostowanego na AWS-ie lub Google Cloud Platform Elasticsearcha i Kibany (rozszerzonych o dodatki z X-Packa).

Elastic Cloud Enterprise

Jeżeli z kolei chcielibyśmy uruchomić pakiet podobny do tego udostępnionego w Elastic Cloud, ale wolelibyśmy zainstalować go na własnych serwerach, czy we własnej chmurze prywatnej, to możemy skorzystać z wersji enterprise.

Elastic [App|Site] Search Service

Absolutną świeżynką są tu dwa serwisy, które zaledwie kilka dni temu weszły w fazę GA. Elastic App Search ServiceElastic Site Search Service, bo o nich mowa pozwalają na podłączenie Elasticsearcha do naszej strony, czy aplikacji internetowej praktycznie bez żadnej wiedzy na temat tego co dzieje się pod spodem.

Open Source

Najfajniejszym w tym wszystkim jest fakt, że cały Elastic Stack jest udostępniony na licencjach open source, a kod znajduje się na GitHubie i jeżeli tylko chcesz, to w każdej chwili możesz dopisać do niego coś swojego 😉

Jak już jesteśmy przy kodzie, to warto zwrócić uwagę na jedną rzecz – różnorodność użytych tutaj języków programowania. Wielokrotnie słyszymy o wykorzystywaniu odpowiednich narzędzi do konkretnych zadań, a w praktyce, w dużej części przypadków wychodzi tak, że klepiemy wszystko w tym co najlepiej znamy. Fajnie jest zobaczyć, że ktoś nie tylko mówi, ale również stosuje tę zasadę w praktyce.

Kto tego używa?

Elastic Stack przez swoje kilka lat istnienia został już solidnie sprawdzony w boju. Wystarczy spojrzeć na przypadki użycia na stronie Elastica lub na angielską Wikipedię. Nie będę tu nikogo wymieniał, ale na liście znajdują się takie firmy, które rozpozna nawet moja mama pomijająca cały „programistyczny bełkot” czytając mojego bloga 😉

The End

Miało być kilka słów, a ostatecznie wpis wyszedł dłuższy niż się tego spodziewałem, chociaż w sumie jest to niezbędne minimum, żeby orientować się o co chodzi w Elastic Stacku. Obstawiam, że jeszcze jeden lub dwa wpisy będą także w tematyce wprowadzającej, a później przejdziemy do praktyki.

Do przeczytania! 🙂


Bądź na bieżąco!

Podobają Ci się treści publikowane na moim blogu? Nie chcesz niczego pominąć? Zachęcam Cię do subskrybowania kanału RSS, polubienia fanpage na Facebooku, zapisania się na listę mailingową:

Dołączając do newslettera #NoweRozdanie2 otrzymasz dostęp do dodatkowych materiałów:

  • PDF: „Jednoosobowa działalność gospodarcza krok po kroku” (do artykułu)
  • PDF: „FAQ: Jak pracuje się dla Roche/Sii?” (do artykułu)
  • PDF: „Jak zmniejszyć prawdopodobieństwo wystąpienia kontroli i co zrobić kiedy urzędnik zapuka do Twoich drzwi?” (do artykułu)

Powyższe dane są przechowywane w systemie Mailchimp i nie są udostępniane nikomu innemu. Więcej szczegółów znajdziesz na stronie polityki prywatności.

lub śledzenia mnie na Twitterze. Generalnie polecam wykonanie wszystkich tych czynności, bo często zdarza się tak, że daną treść wrzucam tylko w jedno miejsce. Zawsze możesz zrobić to na próbę, a jeśli Ci się nie spodoba – zrezygnować :)

Dołącz do grup na Facebooku

Chcesz więcej? W takim razie zapraszam Cię do dołączenia do powiązanych grup na Facebooku, gdzie znajdziesz dodatkowe informacje na poruszane tutaj tematy, możesz podzielić się własnymi doświadczeniami i przemyśleniami, a przede wszystkim poznasz ludzi interesujących się tą samą tematyką co Ty.

W grupie Programista Na Swoim znajdziesz wiele doświadczonych osób chętnych do porozmawiania na tematy krążące wokół samozatrudnienia i prowadzenia programistycznej działalności gospodarczej. Vademecum Juniora przeznaczone jest zaś do wymiany wiedzy i doświadczeń na temat życia, kariery i problemów (niekoniecznie młodego) programisty.

Wesprzyj mnie

Jeżeli znalezione tutaj treści sprawiły, że masz ochotę wesprzeć moją działalność online, to zobacz na ile różnych sposobów możesz to zrobić. Niezależnie od tego co wybierzesz, będę Ci za to ogromnie wdzięczny.

Postaw mi kawę na buycoffee.to

Na wsparciu możesz także samemu zyskać. Wystarczy, że rzucisz okiem na listę różnych narzędzi, które używam i polecam. Decydując się na skorzystanie z któregokolwiek linku referencyjnego otrzymasz bonus również dla siebie.

Picture Credits