- แก้ปัญหา ความซับซ้อนและความล่าช้าของการพัฒนาแบ็กเอนด์ข้อมูลแบบเดิม ช่วยให้พัฒนาแบ็กเอนด์สำหรับการวิเคราะห์ข้อมูลได้อย่างรวดเร็วด้วย TypeScript หรือ Python
- มาพร้อม สแตกที่มีให้ในตัว (ClickHouse, Redpanda, Temporal) และมีแผนขยายไปยังแพลตฟอร์มคลาวด์ที่หลากหลายในอนาคต
- ทำให้การพัฒนาแบบโลคัลง่ายขึ้น รองรับการทดสอบที่รวดเร็วและ hot reload ได้ทันที
- เหมาะสำหรับ การสร้างแอปพลิเคชันที่ใช้ข้อมูลเข้มข้นหลากหลายรูปแบบ และสามารถนำไปใช้กับงานวิเคราะห์แบบเรียลไทม์, การย้ายข้อมูล, การสตรีมเหตุการณ์ เป็นต้น
Moose
- Moose เป็นเฟรมเวิร์กที่ช่วยให้สร้างแบ็กเอนด์เชิงวิเคราะห์ข้อมูลได้ด้วยโค้ด TypeScript หรือ Python เพียงอย่างเดียว
- มีขึ้นเพื่อแก้ปัญหาที่เครื่องมือสำหรับพัฒนาแบ็กเอนด์ข้อมูลแบบเดิมทั้งช้าและซับซ้อน
-
ปัญหาในการสร้างแบ็กเอนด์เชิงวิเคราะห์ด้วยทูลในปัจจุบัน
- ปัญหาความกระจัดกระจายของเครื่องมือ
ต้องเสียเวลาไปกับการผสานบริการจำนวนมาก เช่น Kafka, ClickHouse, Postgres, dbt, Airflow
- ปัญหาความไม่สอดคล้องของสคีมา
โมเดลในโค้ด, สคีมาฐานข้อมูล, การตรวจสอบ API และรูปแบบข้อความอาจไม่ตรงกันเมื่อเวลาผ่านไป
- ความยากของเวิร์กโฟลว์การพัฒนา
การไม่มีการทดสอบบนเครื่องโลคัล, รอบการดีพลอยที่ยาวนาน และการสลับบริบทบ่อยครั้ง ทำให้ประสิทธิภาพการพัฒนาลดลง
- การประมวลผลที่ยึด SQL เป็นหลัก
มีความไม่สะดวกจากการต้องใช้แต่ SQL แทนภาษาการเขียนโปรแกรมที่คุ้นเคย
-
ปัญหาที่เกิดขึ้นเมื่อสร้างระบบเอง
- แม้แต่การเพิ่มฟิลด์ง่าย ๆ ก็ยังต้องทำงานต่อไปนี้ด้วยตนเองทั้งหมด
- แก้ไขโมเดลโค้ด TypeScript/Python
- แก้ไขสคีมาฐานข้อมูล
- อัปเดต Kafka topic
- อัปเดตการตรวจสอบขณะรันไทม์
- อัปเดตการแปลงข้อมูลและคิวรี
- ต้องใช้เวลาและแรงอย่างมากทุกครั้งเพื่อทดสอบการเปลี่ยนแปลงทั้งหมดให้ปลอดภัย
วิธีที่ Moose ใช้แก้ปัญหา
-
สิ่งที่ Moose มอบให้
- โค้ด TypeScript หรือ Python เองทำหน้าที่เป็นแหล่งอ้างอิงเดียวของทั้งลอจิกแอปข้อมูลและโครงสร้างพื้นฐาน
- บนพื้นฐานของโค้ด จะช่วยรับประกันสิ่งต่อไปนี้
- ความปลอดภัยของชนิดข้อมูลและการตรวจสอบอย่างครบถ้วน
- ลดโค้ด boilerplate
- พบข้อผิดพลาดได้ตั้งแต่ขั้นตอนพัฒนา
-
ลดการสลับบริบท
- ไม่ต้องกังวลเรื่องกฎการตั้งชื่อตารางฐานข้อมูล, การซิงก์ฟิลด์ระหว่างโมเดล/ตาราง หรือการกำหนดว่า field ใดเป็น Nullable
-
การพัฒนาแบบโลคัล
- รันได้ในคลิกเดียว
สามารถรันโครงสร้างพื้นฐานข้อมูลทั้งหมดบนเครื่องโลคัลได้ด้วยคำสั่งเดียว
- ไม่ต้องตั้งค่า
ทุกคอมโพเนนต์ถูกตั้งค่ามาให้ล่วงหน้าแล้ว จึงไม่ต้องเซ็ตอัปเพิ่มเติม
- โครงสร้างเดียวกับสภาพแวดล้อมโปรดักชัน
ใช้เทคโนโลยีสแตกเดียวกับสภาพแวดล้อมที่ดีพลอยจริง
- ฟีดแบ็กแบบเรียลไทม์
การเปลี่ยนแปลงจะสะท้อนไปยังทั้งสแตกทันที
-
เวิร์กโฟลว์การพัฒนาทั่วไป
- เมื่อเพิ่มหรือแก้ไขโมเดล เพียงบันทึกก็จะ hot reload ไปยังโครงสร้างพื้นฐานบนเครื่องโลคัลทันที
- เมื่อเพิ่มฟิลด์ใหม่ ระบบจะนำไปใช้กับ API, สตรีม และฐานข้อมูลทันที
- การทดสอบไปป์ไลน์ก็ตรวจสอบได้ทันทีเช่นกัน โดยส่งข้อมูลตัวอย่างไปยัง local ingest API
-
เวิร์กโฟลว์ hot reloading
- หลังแก้ไขโมเดล เพียงบันทึก การเปลี่ยนแปลงก็จะถูกนำไปใช้โดยอัตโนมัติ
- ฟิลด์ที่เพิ่มเข้ามาจะถูกนำไปใช้กับการตรวจสอบ API, สคีมาฐานข้อมูล และสตรีมโดยอัตโนมัติ
-
ความเป็นโมดูลาร์
- สามารถเลือกใช้และจัดองค์ประกอบเฉพาะคอมโพเนนต์ที่ต้องการได้
สแตก Moose ที่มีให้ในตัว
- ClickHouse
ฐานข้อมูล OLAP ที่เปิดใช้งานเป็นค่าเริ่มต้น
- Redpanda
แพลตฟอร์ม event streaming ที่เข้ากันได้กับ Kafka (สามารถปิดการใช้งานได้)
- Temporal
เครื่องมือ orchestration สำหรับเวิร์กโฟลว์ (สามารถปิดการใช้งานได้)
-
แผนการขยายในอนาคต
- Snowflake, Databricks, BigQuery
มีแผนรองรับคลาวด์ดาต้าแวร์เฮาส์
- Kafka, Kinesis, Pulsar
มีแผนรองรับแพลตฟอร์ม event streaming ที่เข้ากันได้กับ Kafka ที่หลากหลาย
สิ่งที่สร้างได้ด้วย Moose
- การวิเคราะห์แบบเรียลไทม์สำหรับผู้ใช้
ผสาน leaderboard, chart, metric และองค์ประกอบอื่น ๆ เข้ากับเว็บ/แอปมือถือ
- BI และดาต้าแวร์เฮาส์
รวบรวมข้อมูลจากหลายแหล่งเพื่อสร้างฐานข้อมูลเชิงวิเคราะห์และสร้างรายงาน
- การย้ายข้อมูล
ย้ายข้อมูลจากระบบเลกาซีไปยังแบ็กเอนด์ข้อมูลสมัยใหม่
- Event streaming
ประมวลผลเหตุการณ์แบบเรียลไทม์บนแพลตฟอร์มสตรีมมิงอย่าง Kafka, Redpanda เป็นต้น
- งาน ETL
รวบรวมข้อมูลจากหลายแหล่งเป็นระยะ และโหลดเข้าสู่สภาพแวดล้อมสำหรับการวิเคราะห์
ยังไม่มีความคิดเห็น