Elastic ผู้พัฒนาโครงการโอเพ่นซอร์ส ELK Stack ประกาศปรับสถาปัตยกรรมของ Kibana ครั้งใหญ่ หลังจากที่เปิดตัวมาแล้วราว 5 ปี
Kibana เป็นเว็บเซิร์ฟเวอร์พร้อม UI สำหรับเสิร์ช, วิเคราะห์ข้อมูล และจัดการรายละเอียดต่าง ๆ ของ Elasticsearch ซึ่งภายใต้ Kibana คือโครงการ JavaScript ที่ใช้เทคโนโลยีหลากหลาย เช่น Angular.js, Express, RequireJS, Hapi.js
ปัญหาคือตอนนี้โค้ดของตัว Kibana เป็นรูปแบบ monolith ทำให้โครงการทำงานได้ช้าลง ทางโครงการเริ่มหันมาสนใจการพัฒนาในรูปแบบไมโครเซอร์วิสที่กำหนด scope ของทีมย่อย ๆ ให้แต่ละคนทำงานได้เร็วขึ้น และคุยกันในรูปแบบ API แทน
อย่างไรก็ดี Kibana ใช้ระบบติดตั้งเป็นไบนารีตัวเดียวมานาน การจะปรับเปลี่ยนไบนารีเป็นหลายตัวจะสร้างความซับซ้อนโดยไม่จำเป็น ทางโครงการจึงตัดสินใจเลือกใช้การ encapsulation เพื่อกำหนดสโคปการทำงานระหว่างส่วนต่าง ๆ ของ Kibana แทน จากเดิมที่ปล่อยให้ส่วนไหนทำอะไรก็ได้ เปลี่ยนมาเป็นให้แต่ละส่วนทำงานได้ในรูปแบบที่จำกัด เพื่อให้แต่ละทีมย่อยกำหนดสโคปงานของตัวเองได้ชัดเจนยิ่งขึ้น และที่สำคัญคือยังคงดีพลอยได้ด้วยไบนารีเพียงตัวเดียว
โครงสร้างใหม่ของ Kibana จะมีคอร์เป็นตัวหลักทั้งฝั่งเซิร์ฟเวอร์และไคลเอนท์ โดยคอร์ฝั่งเซิร์ฟเวอร์จะจัดการฟังก์ชันด้าน backend ส่วนคอร์ฝั่งไคลเอนท์จะจัดการฟังก์ชันฝั่ง frontend หน้าที่หลักของคอร์คือบู๊ตตัว Kibana, โหลดปลั๊กอิน, จัดการคอนฟิก, จัดหา API พื้นฐานในแต่ละช่วงเวลาของ system lifecycle (เช่น stop, start, setup) ซึ่งภายใต้ตัวคอร์ก็มีเซอร์วิสหลาย ๆ เซอร์วิส แต่ถูกครอบไว้เพื่อให้เรียกผ่าน API ที่ง่ายต่อการจัดการมากกว่า
คอร์ทั้งสองฝั่งจะมี API ที่ต่างกัน แต่เป้าหมายหลักเหมือนกัน และยังคงแชร์ดีไซน์ด้วยกัน ซึ่งจะง่ายต่อการพัฒนาปลั๊กอินบน Kibana มากขึ้น จากเดิมที่นักพัฒนาต้องใช้ทั้ง Hapi เพื่อพัฒนาปลั๊กอินบนฝั่งเซิร์ฟเวอร์ และ Angular เพื่อพัฒนาปลั๊กอินที่รันบนไคลเอนท์ มาเป็นการเขียนปลั๊กอินเรียก API ในแพทเทิร์นเดียวที่สามารถพอร์ตไปมาระหว่าง environment ทั้งสองได้
ตอนนี้ Kibana เริ่มไมเกรตปลั๊กอินไปสู่ API บนแพลตฟอร์มใหม่มาสักระยะหนึ่งแล้ว และในเวอร์ชัน 7.9.0 แอปทั้งหมดภายใต้ Kibana จะรันบนแพลตฟอร์มใหม่นี้ จุดเด่นที่จะได้จากการปรับสถาปัตยกรรมใหม่คือระบบจะเร็วขึ้นอย่างเห็นได้ชัด การสลับระหว่างแอปบนแท็บของ Kibana ไม่ต้องรอโหลดนาน ๆ อีกต่อไป
ส่วนนักพัฒนาปลั๊กอินสำหรับ Kibana ทางโครงการแนะนำให้เริ่มพัฒนาปลั๊กอินกับ Kibana 7.9 หรือใหม่กว่า ส่วนปลั๊กอินที่ติดกับ Kibana แบบเดิมจะเลิกซัพพอร์ตใน KIbana 7.11
ที่มา - Elastic