คุณอาจสงสัย: ทำไมบริษัทฐานข้อมูลอย่าง Redis ถึงพูดถึงสถาปัตยกรรม Databaseless (DBLess)? และมันคืออะไร? นั่นเป็นเรื่องปกติ แต่ก่อนจะลงลึกรายละเอียด มาดูวิธีคิดใหม่ๆ ที่อยู่เบื้องหลังสถาปัตยกรรมใหม่ชนิดนี้
เพื่อทำเช่นนั้น ฉันอยากเลี้ยวไปพูดถึงสิ่งที่เรียกว่า First Principles thinking (การคิดแบบหลักการพื้นฐาน) มันบังคับให้คุณคิดด้วยตัวเอง ไม่ได้แค่ปฏิบัติตามประเพณี แต่สอบถามทุกอย่าง
หัวใจของ First Principles คือ เว้นแต่คุณจะดูกฎของธรรมชาติ เช่น กฎแรงโน้มถ่วง ทุกระบบหรือแนวคิดเป็นของมนุษย์สร้างขึ้นและอาจมีความไม่มีประสิทธิภาพ เพิ่มเติมคือ ระยะเวลาหรือนวัตกรรมทางเทคโนโลยีอาจทำให้แนวคิดนั้นล้าสมัย หมายความว่าคุณควรสอบถามระบบหรือแนวคิดดั้งเดิมเป็นประจำ และดูว่าสามารถสร้างสิ่งที่ดีกว่าได้ไหม
เพื่อหาความไม่มีประสิทธิภาพเหล่านั้น คุณต้องใช้วิธีการเป็นระบบและวิทยาศาสตร์ที่แยกมันเป็นชิ้นเล็กๆ เพื่อไปถึงความจริงพื้นฐาน แล้วดูว่าการผ่านเวลาหรือการประดิษฐ์เทคโนโลยีใหม่ทำให้ชิ้นส่วนไหนล้าสมัย ถ้าใช่ ดูเหมือนคุณมีโอกาสสร้างระบบใหม่ที่ดีกว่า
อย่างพื้นฐาน ไม่ว่าจะรู้หรือไม่ กว่าส่วนใหญ่ของการเปลี่ยนแปลงทางสังคม เทคนิค และเศรษฐกิจ เกิดขึ้นเพราะผู้คนคิดแบบ First Principles และท้าทายประเพณี
ในวิดีโอด้านบน Elon Musk อธิบายว่าเขาดูวัตถุดิบของแบตเตอรี่และลดต้นทุนจาก $700 เหลือ $70
มาดูตัวอย่าง First Principles thinking อีกอย่าง เพราะง่ายกว่าอธิบาย: รถยนต์น้ำมัน vs รถยนต์ไฟฟ้า
รถยนต์น้ำมัน vs รถยนต์ไฟฟ้า
เราทราบดีว่าสามารถใช้แบตเตอรี่ไฟฟ้าขับรถได้
แต่รถยนต์น้ำมัน มีแบตเตอรี่ แต่ไม่ได้ใช้ขับรถ มันใช้แบตเตอรี่สำหรับสตาร์ทเครื่องยนต์ แอร์ เสียง สไลต์ เซนเซอร์ ล็อก ฯลฯ แต่ไม่ได้ใช้ขับรถ แทนที่จะพึ่งพา internal combustion engine (ICE) เพื่อขับรถ
เกิดว่า รถ ICE ไม่มีประสิทธิภาพมาก เพียง 16% ถึง 25% ของพลังงานที่สร้างขึ้นจริงๆ ที่ไปถึงล้อ ส่วนรถไฟฟ้าให้พลังงานไปยังล้อประมาณ 90%! รถไฟฟ้ายังมีข้อได้เปรียบใหญ่ด้านสิ่งแวดล้อม ค่าซ่อม และอื่นๆ
ถ้าคุณมองจากมุมมอง First Principles แม้รถส่วนใหญ่ที่สร้างขึ้นถึง اليوم ก็ยังเป็นรถน้ำมัน แต่นิยมพื้นฐานคือพวกมันใช้ระบบที่ไม่มีประสิทธิภาพ
ตอนมองรถไฟฟ้า มันกำจัดความไม่มีประสิทธิภาพเพื่อสร้างรถประเภทใหม่ ในกรณีนี้ มันแค่กำจัดเครื่องยนต์ที่ซับซ้อนและไม่มีประสิทธิภาพ และแทนที่ด้วยแบตเตอรี่ใหญ่และมอเตอร์เพื่อหมุนล้อโดยตรง
ดังนั้นคุณเห็นได้ว่า First Principles thinking นำไปสู่การระบุความไม่มีประสิทธิภาพและสร้างระบบใหม่ที่ดีกว่า
ตอนนี้มองที่แนวคิดเหล่านี้ ถ้าคุณจะเริ่มบริษัทรถยนต์ใหม่ คุณจะสร้างรถน้ำมันหรือรถไฟฟ้า?
มาเปลี่ยนเกียร์ไปสู่โลกฐานข้อมูล เพื่อดูว่าเราสามารถนำ First Principles thinking เดียวกันไปใช้ในภาคส่วนนี้ได้ไหม
สถาปัตยกรรมดั้งเดิม vs สถาปัตยกรรม DBLess
มาดูสถาปัตยกรรมดั้งเดิมก่อน
ในสถาปัตยกรรมดั้งเดิม คุณมี primary database (Postgres, MongoDB ฯลฯ) และ secondary database หรือ cache (เช่น Redis หรือ Memcached) Primary DB ใช้จัดเก็บทุกข้อมูลและรองรับ CRUD operations Caching DB ใช้สำหรับ caching, session storage, rate-limiting, IP-whitelisting, Pub/Sub, queuing และอีกมากมาย
ถ้าคุณคิดดู แม้จะมี cache-hit เราก็ยังใช้ secondary DB สำหรับส่วนหนึ่งของ CRUD operations และเรายังไม่ได้ใช้ประโยชน์จากมันเต็มที่เป็น primary database
สิ่งนี้ทำคุณนึกถึงปัญหาของรถน้ำมันไหม? เหมือนกับที่พวกมันพกแบตเตอรี่ไปเพื่อจ่ายไฟหลายอย่าง ยกเว้นการขับรถ สถาปัตยกรรมดั้งเดิมใช้ Redis สำหรับทุกอย่าง ยกเว้นเป็น main DB
คุณเห็นความคล้ายคลึงไหม?
ถ้าเราใช้ First Principles thinking ทำสิ่งที่รถไฟฟ้าทำ? เหมือนกับที่ EV กำจัดเครื่องยนต์ ถ้าเรากำจัด primary database ที่ช้าและไม่มีประสิทธิภาพ และแค่ใช้ cache DB เป็น main database แทน?
ทักทายสถาปัตยกรรม Databaseless (DBLess)
สถาปัตยกรรม Databaseless (DBLess):
ในสถาปัตยกรรมนี้ คุณกำจัด primary DB ดังนั้นจึงชื่อ DBLess แทนที่คุณใช้ secondary/cache DB เดิมเป็น primary database ใหม่
ลองจินตนาการว่าเราเริ่มใช้ Redis หรือฐานข้อมูลแคชคล้าย Redis เป็น primary database และกำจัด primary DB (อย่าง Postgres, MySQL, MongoDB ฯลฯ) ออกไปหมด
หมายเหตุสำคัญ: นี่เป็นเพียงการอภิปรายสถาปัตยกรรม สถาปัตยกรรม DBLess ไม่ใช่สถาปัตยกรรมเฉพาะที่จำกัดให้ Redis หรือ Redis Enterprise และจะทำงานกับระบบคล้าย Redis ใดๆ ได้ ยังจำได้ไหมว่า Redis เป็นโครงการ OSS ดังนั้นคุณสามารถสร้างเองได้หรือบนผู้ให้บริการคลาวด Redis ใดๆ
มีใครใช้สถาปัตยกรรมนี้ไหม?
ใช่ แน่นอน เหมือนคุณจินตนาการ เราทำงานกับลูกค้าพันๆ รายทุกวัน และแม้ Redis จะยังถูกใช้เป็น secondary database หลัก แต่เราเริ่มเห็นสถาปัตยกรรม DBLess ใหม่นี้โผล่มาในช่วง 2-3 ปีที่ผ่านมา มันเริ่มได้ momentum มากขึ้นเมื่อ Redis เองมีฟีเจอร์มากขึ้น ทรงพลังขึ้น และผู้คนมากขึ้นพบความสำเร็จ หลายคนที่ไม่ใช่ลูกค้าของเรา เช่น Request Metrics สร้างสตาร์ทอัพทั้งหมดบนสถาปัตยกรรมนี้และพบว่าประสบความสำเร็จอย่างยิ่ง
ตอนนี้คุณรู้ว่ามันจริง มาดูว่าอะไรทำให้มันเป็นไปได้
ทางเทคนิค แล้วมันเปรียบเทียบกับ primary DB ดั้งเดิมอย่างไร?
มาใช้ Redis Enterprise เป็นตัวอย่างและเปรียบเทียบกับ primary DB ดั้งเดิม
เห็นได้ว่าคำตอบสั้นๆ คือ มันทำได้ดีมาก และจริงๆ แล้วอาจดีกว่า primary DB ดั้งเดิมบางตัว
โดยการเตือน คุณสามารถใช้สถาปัตยกรรมนี้โดยแค่ใช้ Redis OSS หรือคู่แข่ง Redis อื่นๆ คุณแค่ต้องมาสร้างตารางเปรียบเทียบคล้ายๆ นี้เพื่อดูว่ามันทำงานได้ดีแค่ไหน
แต่ Redis ทำได้จริงไหม? ฉันคิดว่ามันแค่แคช?
คุณถูกต้อง มันเริ่มต้นเป็นแคชสตอร์ประมาณทศวรรษที่แล้ว และยังคงดีสำหรับวัตถุประสงค์นั้น
อย่างไรก็ตาม Redis และ Redis Enterprise ขยายตัวอย่างมีนัยสำคัญตลอดปี โดยนำฟีเจอร์เกือบทั้งหมดของ traditional DBs มารวม และมี module ecosystem ที่รัน native กับ core Redis
เช่น RedisJSON (เร็วกว่าตัวนำตลาด 10 เท่า) คุณสามารถใช้มันและมี document-like database แบบเรียลไทม์ได้ หรือใช้โมดูล RediSearch (เร็วกว่า 4x ถึง 100x) และนำ full-text search แบบเรียลไทม์มาใช้เหมือน Elastic Search หรือ Algolia
และคุณสามารถใช้โมดูลเหล่านี้เป็นส่วนหนึ่งของ Redis OSS และโฮสต์เองได้
นี่เป็นอนาคตจริงไหม?
เราเชื่ออย่างมั่นใจว่าสถาปัตยกรรมนี้คืออนาคต ในความหมายเดียวกับที่รถไฟฟ้าคืออนาคต และแม้รถไฟฟ้าจะคิดเป็นน้อยกว่า 1% ของรถทั้งหมด พวกมันก็คืออนาคต เราคิดว่านี่คือวิวัฒนาการตามธรรมชาติของเทคโนโลยี การเห็นความสำเร็จของลูกค้าหลายคน เราคิดว่ายิ่งคนมากรู้จัก ยิ่งคนมากจะลองและนำไปใช้
ชื่อมีความหมายอะไร?
เรียกว่า DBLess เพราะเรากำจัด primary DB และเราคิดว่ามันเป็นชื่อที่สนุกและน่าสนใจ เหมือน "stateless," "serverless," "NoSQL," และ "No Software"
เริ่มต้นอย่างไร?
ถ้าคุณเป็นหนึ่งในหลายแสนผู้ใช้ Redis คุณโชคดี—คุณสามารถทำ proof-of-concept รวดเร็ววันนี้! เราไม่ขอให้คุณเพิ่มสิ่งใหม่ แต่ขอให้กำจัดสิ่งที่ไม่มีประสิทธิภาพ
และนี่คือวิธีทำ
ถ้าคุณกำลังสร้างระบบใหม่หรือฟีเจอร์ใหม่ แล้วตรงไปตรงมา แค่เริ่มใช้สถาปัตยกรรมนี้—หรืออย่างน้อยก็ทำ Proof-of-Concept และดูว่ามันทำงานสำหรับคุณได้ไหม
ถ้าคุณมี primary DB อยู่แล้ว ทำอย่างที่ลูกค้าหลายคนของเราทำ และใช้ hybrid approach พวกเขายังคงใช้สถาปัตยกรรมดั้งเดิม แต่ย้ายส่วนของผลิตภัณฑ์เข้าไปในสถาปัตยกรรมใหม่ เช่น ที่พวกเขาพึ่งพา Redis อยู่แล้ว หรือฟีเจอร์ใหม่ๆ และช้าๆ แต่น่าจะย้ายฟีเจอร์ทั้งหมดจนย้ายครบ
สรุป: เป็น First Principles thinker
เราขอให้คุณเป็น First Principles thinker แค่เพราะสิ่ง gìถูกใช้โดยประเพณี ไม่ได้หมายความว่ามันสมบูรณ์แบบ และคุณควรปฏิบัติตามอย่างโมฆะ เราขอให้คุณสอบถามการคิดดั้งเดิม ตรวจสอบอย่างมีวิจารณญาณ และลองทางเลือก และเมื่อคุณทำ คุณอาจประดิษฐ์สิ่งที่มีประโยชน์ต่อตัวเองและผู้อื่น
สถาปัตยกรรม DBLess ให้ทางเลือกสำหรับการคิดดั้งเดิม แทนที่จะสงสัยว่าจะทำงานหรือไม่ ลอง Proof-of-Concept มันอาจทำให้คุณประหลาดใจ!
อ้างอิง
- Elon Musk on First Principles