ข่าวไอที Blognone » โครงการ Infisical รายงานการย้ายจาก MongoDB ไป PostgreSQL ชี้ เซ็ตอัพและหาคนดูแงง่ายกว่า ประหยัดค่าใช้จ่าย

โครงการ Infisical รายงานการย้ายจาก MongoDB ไป PostgreSQL ชี้ เซ็ตอัพและหาคนดูแงง่ายกว่า ประหยัดค่าใช้จ่าย

31 มีนาคม 2024
13   0

Infisical โครงการแพลตฟอร์มเก็บความลับ (secret management platform) แบบโอเพนซอร์ส รายงานถึงการย้ายระบบฐานข้อมูลจาก MongoDB มาเป็น PostgreSQL ว่าประสบความสำเร็จดีและทำให้การเซ็ตอัพโครงการใช้งานเองทำได้ง่ายขึ้น

ทางโครงการระบุว่าเลือก MongoDB พร้อมกับ Mongoose ORM เพราะทีมงานเคยชินกับ stack นี้ที่สุด และตอนแรกไม่ได้คิดว่าจะมีผู้ใช้พยายามติดตั้งแพลตฟอร์มใช้งานเองมากนัก แต่หลังจากโครงการได้รับความนิยม MongoDB กลับเป็นคอขวดเนื่องจากฟีเจอร์สำคัญคือการทำ transaction จำเป็นต้องติดตั้งแบบคลัสเตอร์แบบโปรดักชั่นและคนที่เชี่ยวชาญการเซ็ตอัพ MongoDB ก็หาได้ยากกว่า ขณะที่ฝั่งนักพัฒนาเองหลายครั้งก็อยากได้ฟีเจอร์ฝั่ง SQL เช่น CASCADE ที่สามารถลบข้อมูลที่เกี่ยวข้องออกไปพร้อมกันทีเดียวได้

ปัญหาอีกอย่างหนึ่งของ MongoDB คือการเปลี่ยนไลเซนส์ไปเป็น SSPL ทำให้ผู้ให้บริการคลาวด์ไม่สามารถอัพเกรดไปใช้เวอร์ชั่นล่าสุดได้ ทำให้ผู้ใช้ของ Infisical ไม่สามารถใช้บริการฐานข้อมูลคลาวด์ได้อิสระ

ทาง Infisical เลือกระหว่างการใช้ฐานข้อมูลภายใน เช่น SQLite กับฐานข้อมูลภายนอกอย่าง PostgreSQL และตัดสินใจเลือก PostgreSQL เพราะเมื่อต้องการขยายแอปพลิเคชั่นเป็นคลัสเตอร์ไม่ต้องอิมพลีเมนต์ด้วยตัวเอง สำหรับระบบ ORM นั้นโครงการเลือก Knex.js ที่เป็น query builder แทนที่จะเป็น ORM เต็มรูปแบบ เพราะต้องการควบคุมคิวรีสุดท้ายได้ แต่ยังดูแลง่ายกว่าการเขียนคิวรีเองตรงๆ

กระบวนการย้ายฐานข้อมูลของ Infisical Cloud กินเวลา 6 ชั่วโมงที่ระบบจะเปิดให้ลูกค้าอ่านข้อมูลได้เท่านั้นแต่เขียนไม่ได้ ระบบจะย้ายข้อมูลไปยัง PostgreSQL แล้วตรวจสอบข้อมูลว่ายังอยู่ครบ หลังจากนั้นจึงชี้ DNS ไปยังเซิร์ฟเวอร์ใหม่ โดยรวมมีปัญหาเพียงไม่กี่รายการ และแก้ไขได้หมดภายใน 36 ชั่วโมงหลังการย้าย และเมื่อย้ายมาแล้วแอปพลิเคชั่นเสีย overhead น้อยลงทำให้ค่าใช้จ่ายฐานข้อมูลลดลง 50% ขณะที่ตัวแอปพลิเคชั่นมีการตรวจสอบข้อมูลทีี่ระดับฐานข้อมูลละเอียดขึ้น ตัดปัญหาชนิดข้อมูลไม่ตรงกันเพราะเดิมชนิดข้อมูลนั้นไปบังคับที่ระดับ Mongoose

โดยรวมโครงการย้ายออกจาก MongoDB ครั้งนี้กินเวลา 3-4 เดือน และทีมงานพอใจกับการย้ายอย่างมาก แต่แนะนำว่าหากใครจะทำตามให้คิดอย่างระมัดระวังก่อนย้าย

ที่มา - Infisical

[source: https://www.blognone.com/node/138994]