elasticsearch-opendistro https://opendistro.github.io/for-elasticsearch/faq.htmlhttps://github.com/linuxvn/about/blob/master/Notes-2019.md#elasticsearch-opendistro
Xài
elasticsearch bực nhất là nhiều thứ rất cơ bản chỉ được bật lên sau khi trả mớ tiền. Ví dụ, phân quyền không cho ai xóa nhầm. Gần đây, x-pack mới được mở ra tí xíu, cho bà con xài ké vài thứ miễn phí. Chẳng nhẽ các công ty to có tiền thì có quyền an toàn, những chú start-up cỏn con thì có quyền bị xóa nhầm sao :@@ Toshi nghe đâu viết bằng
Rust để cạnh tranh với elasticsearch, nhưng chắc còn lâu lắm mới được tiếp nhận phổ biến. Trong khi chờ đợi thì aws coi như phá lệ, khởi động bản phân phối theo giấy phép apache 2.0 cho elasticsearch cùng nhiều đồ chơi gói sẵn (và tất nhiên, dựa trên elasticsearch, bản 6.5.4). Động cơ của việc này như sau 1.
elasticsearch được dùng phổ biến (và do đó trở nên quan trọng) trong việc xử lý dữ liệu phát sinh; 2. Nhiều
plugin cho elasticsearch được phát triển mới nhưng với giấy phép đóng, ngăn cản sự tiếp cận của đại chúng (à, chính xác là của những người thích xài đồ chùa ;) Việc này tất nhiên sẽ có lợi cho cộng đồng, và làm công ty đứng sau
elasticsearch chột dạ. Về kỹ thuật, tính năng thì ban đầu sẽ chưa có gì khác biệt mới, nhưng bạn sẽ tiết kiệm được rất nhiều thời gian bằng cách dùng một bộ cài đặt có sẵn nhiều thứ. Ví dụ, công cụ phân tích performance của bộ cài đặt https://opendistro.github.io/for-elasticsearch/features/analyzer.html
(Ở trên, nói `aws` phá lệ vì `aws` nổi tiếng đóng cửa bảo nhau, ít khi cở mởi các dự án của họ, như cách làm của `microsoft`, `google`, `linkedin`, ...;)
-- f56c7c4d (Ky-Anh Huynh 2019-03-12 03:06:03 +0700 7) at https://github.com/linuxvn/about/blob/master/Notes-2019.md#elasticsearch-opendistro
lucene-war-part-1 tags: #lucene #apache #elasticsearch #apache #solr
Nhân dịp có tranh cãi về
opendistro vs elasticsearch, thử tìm hiểu về Lucene là thư viện cốt lõi dựng lên elasticsearch và apache solr. Đây là phần 1, viết sơ lược. Các phần sau cũng sơ lược nốt vì tác giả cũng không rành lắm đâu nhé:) Nếu bạn thấy bối rối khi có nhiều tên vậy, thì đây là so sánh quen thuộc với người dùng Linux:
Lucene như là phần nhân (kernel), Apache Solr là Debian linux còn ElasticSearch là Ubuntu, trong khi Opendistro có thể là phiên bản Linux Mint. Tất nhiên, chẳng có cái nào trong số chúng là Mac cả. Để hiểu bài toán
Lucene giải quyết, bạn có thể tưởng tượng đang bước chân vào thư viện của trường đại học, và cùng lúc phân thân ở một nhà sách to nhất nhì ở quận 1. Muốn tìm cuốn sách ở một trong hai nơi này, theo bạn nơi nào sẽ ra kết quả nhanh hơn? Nhớ rằng ở thư viện thường chỉ có một vài thủ thư khá thờ ơ, thậm chí còn không quan tâm bạn là ai nhé. Trong thư viện có một hệ thống rất hay là chỉ mục,
index, để phân loại sách theo các tiêu chí và và cuối cùng là theo tên ABC. Nó cũng giống như Mục lục sách, ở mục đích giúp bạn tìm ra điều cần tìm nhanh nhất có thể. Các sách khoa học kỹ thuật nước ngoài nếu bạn có dịp mua về thì nhớ mở ngay những trang cuối cùng, rất hay có một phần Index dài lê thê gồm các từ khóa. Chỉ cần nhớ từ khóa thì có ngay liệt kê vài trang liên quan. Quay lại
Lucene: bài toán gốc đơn giản là làm sao tìm kiếm cho nhanh và chính xác một phần bất kỳ trong kho lưu trữ dữ liệu. Có rất nhiều cách tiếp cận khác nhau, và Lucene là một trong số đó thôi. Tài liệu -- [index]
--> Lưu vào kho
--> Tìm lại cho nhanh/chính xác
<--- Lucene ---->
Lucene đặt ra các nguyên tắc cho quá trình thu nhận, phân loại (phân rã), tạo ra phần chỉ mục (index), lưu trữ tài liệu, lưu trữ chỉ mục, và các nguyên tắc để tìm kiếm lại các phần nhỏ bất kỳ trong tài liệu ban đầu nhanh và chính xác nhất có thể. Lucene là trái tim, phần khó nhất, của một cỗ máy tìm kiếm (search engine). Apache Lucene chỉ cung cấp những API ở dạng thô nhất, và hơn nữa nó cũng chỉ có ích cho các ứng dụng Java thôi. Vẫn có PyLucene nhưng phát triển chậm hơn tí, là giao diện Lucene cho Python. Và bạn biết rồi, để đi một chiếc xe đạp thì hầu hết chúng ta không quan tâm và cũng không thể bắt đầu bằng việc xây dựng một nhà máy luyện thép. Cứ việc đến cửa hàng xe và mua xe thôi.
Apache Solr cung cấp giao diện đơn giản hơn, dễ dàng hơn cho người viết ứng dụng. Để né tránh chuyện Java, Solr chạy dịch vụ cung cấp REST~ API cho ứng dụng cuối. Như vậy dùng bạn viết bằng Python, Golang hay gì thì vẫn xài được thư viện cuối là Lucene: Ứng dụng Ruby -- [Người thông dịch Solr] --> [Lucene/Java]
Đại khái
Apache Solr như anh chàng Debian Linux với nhân Linux. Ngạo nghễ, oai phong cho tới khi trai đẹp ElasticSearch xuất hiện thì gái làng cả xóm nhao nhao. ElasticSearch giới thiệu giao diện tìm kiếm (Search), Kibana, Logstash, giống như là anh ta có sẵn nhà, sẵn xe hơi, sẵn mọi thứ đều cho đám cưới; cô nào chả mê nhỉ. Chính nhờ sự tiện lợi này mà nhiều người tiếp cận với ElasticSearch nhanh chóng, hiệu quả. Và thế là nhiều người quên luôn
Apache Solr:) ElasticSearch gần như đồng nghĩa với ELK, nhưng từ sâu thẳm thì Solr và ElasticSearch cũng không khác lắm nhau đâu nhỉ ^.^ Không có Lucene thì lấy đâu ra cả hai chứ. Điều thú vị là
Elastic mua lại `Kibana` và Logstash (thiếu nguồn) để phát triển nên bộ ELK. Thôi tạm dừng ở đây, quay trở lại một vấn đề thực tế hơn, là nếu có 2000 cuốn sách như Pê xê định, thì xài
Solr, ElasticSearch kiểu gì đây. Mua sách về, đọc, cất vô tủ, khi cần tìm đoạn văn nào thì làm sao cho lẹ. Thế kỷ 21 rồi, nhiều người dùng sách điện tử là vậy, có lẽ là ngay cả ElasticSearch cũng không thể nào index nổi đống sách đó của Pê xê định. Old habits die hard. Haha. -- 09291aa1 (Ky-Anh Huynh 2019-03-18 06:24:03 +0700 7) at https://github.com/linuxvn/about/blob/master/Notes-2019.md#lucene-war-part-1
🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞
elasticsearch-workshop-observability https://github.com/linuxvn/about/blob/master/Notes-2019.md#elasticsearch-workshop-observability
tags: #elasticsearch #observability #berlin
Hôm đầu tháng 10 mình có dịp tham gia workshop do công ty Elasticsearch tổ chức. Từ khóa của sự kiện là
observability. Workshop này hoàn toàn miễn phí, tổ chức ở một khách sạn lớn, có đồ ăn uống sáng, trưa ngon lành, nhưng có lẽ... xa nên phòng hơi vắng. Mình gặp nói chuyện với một anh chàng gốc Bắc Âu ở Berlin, nói rằng đi xem thế nào, tại lên chức lâu rồi nên không còn nhanh tay lẹ mắt cài đặt gì nữa :) Có thể, vì nhiều người lên chức quá, nên mới có Elasticsearch bản cloud, cài đặt tích hợp sẵn mọi thứ từ APM, Log, Metrics, rồi Machine Learning, nhìn cái menu mà choáng ngợp, nghĩ ngay mình còn phải học thêm 10 năm nữa chưa xong cái nghề ops này :) Bản cloud đúng khỏe, cài đặt cấu hình gì cũng có sẵn rồi, rẹt rẹt. Làm mình bồi hồi nhớ lại thuở ngồi kỳ cọ mấy cái cấu hình sao cho mấy node ES nối nhau. Khổ gì đâu.
observability là gì? Nghe thấy lạ, khó đọc (dù sao, cũng dễ đọc hơn high availability), giải thích thì loằng ngoằng như ở đây https://www.elastic.co/blog/observability-with-the-elastic-stack . Tóm tùm lum lại, là một chỗ chung để theo dõi toàn bộ hệ thống, ở góc độ lớn hơn của người làm ops, của developer hay quản lý.... Nói chung, ý tưởng thì hay, còn thực hiện thì đấy, có ES lo rồi. Mới đây N26 công ty start-up về tài chính ngân hàng cũng có workshop về observability, nhưng hỏng biết có gì ở trong đấy. Từ khóa này cũng khá là hot trong sự kiện mà O'Reilly tổ chức (tóm tắt của mình: https://gist.github.com/icy/d32c504eb1d41adea11cff4ba0865808.) Có mấy cái lặt vặt như
filebeat, kibana,... mình nghĩ nhiều bạn biết rồi. Trong khi thực hiện bài lab, thì có điều hài hước là nhiều người gõ ngay vi/vim rồi đứng hình, lý do trình duyệt không hỗ trợ, trong khi về cơ bản nano vẫn chạy ổn. Thật chớt quớt, nhưng lượm lặt lớn nhất của buổi workshop này chính là, mình tin rằng lựa chọn dùng nano là hợp lý, đúng đắn. Mình bồi hồi nhớ lại cách đây mấy năm khi mới vào ai đá tao, mấy bạn trong team hỏi thế chú xài gì, vim hay Emacs, xong có vẻ vô cùng thất vọng vì có một thằng trời đánh nó trả lời là ... nano :)) À, ngoài ra còn
filebeat, tuy được quảng bá rầm rộ nhưng trong buổi workshop bà con cài lên xuống muốn xỉu lơ luôn. Và mình cũng mất đâu gần gần hai buổi cho nó, đơn giản là muốn nó hỗ trợ k8s thì xài bản mới, mà xài bản mới thì nó không thèm nói chuyện với logstash hay es cũ. Ơ hay, rảnh quá ha. Chưa kể xài mem/cpu gì nhiều. Thôi, goodbye! Còn mấy cái cao siêu như
observability thì để dành lại cho các bạn tự tìm hiểu thôi; mình có biết gì đâu. Nếu cần thì mình chỉ đơn giản bỏ devops mà chuyển qua opssex thôi, đổi job title, đổi lương, công việc vẫn như cũ.^^ PS: Nhờ workshop mà mình còn gặp bạn T. cũng ở Sài gòn qua Bá linh tìm ngoại tệ . Rồi từ đó phát hiện nguyên băng Lazada bên này luôn. Điều này làm mình có chút cảm hứng để viết tiếp một chút về Bá linh, mà bạn sẽ được đọc thêm sau.
-- 195d3db1 (Ky-Anh Huynh 2019-11-22 15:02:35 +0100 47) at https://github.com/linuxvn/about/blob/master/Notes-2019.md#elasticsearch-workshop-observability
🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞