Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

สถาปัตยกรรมแบบไม่มีฐานข้อมูล (DBless) คืออะไร—และเหตุใดจึงเป็นอนาคต

คุณอาจสงสัยว่า:ทำไมบริษัทฐานข้อมูลอย่าง Redis ถึงพูดถึงสถาปัตยกรรมแบบไม่มีฐานข้อมูล (DBless) และมันคืออะไร? นั่นเป็นเรื่องปกติ แต่ก่อนที่เราจะลงรายละเอียด เรามาดูวิธีคิดใหม่ที่อยู่เบื้องหลังสถาปัตยกรรมใหม่นี้กันก่อน

ในการทำเช่นนั้น ฉันต้องการใช้ทางอ้อมและพูดคุยเกี่ยวกับสิ่งที่เรียกว่าการคิดตามหลักการเบื้องต้น มันบังคับให้คุณต้องคิดเอง ไม่ใช่แค่ทำตามประเพณี แต่ให้ตั้งคำถามกับทุกสิ่ง

แก่นแท้ของหลักการแรกคือ เว้นแต่คุณจะดูกฎแห่งธรรมชาติ เช่น กฎแห่งแรงโน้มถ่วง ทุกระบบหรือแนวคิดนั้นสร้างขึ้นโดยมนุษย์และอาจมีความไร้ประสิทธิภาพ ยิ่งไปกว่านั้น เวลาหรือนวัตกรรมทางเทคโนโลยีสามารถพิสูจน์ได้ว่าแนวคิดนี้ล้าสมัย ซึ่งหมายความว่าคุณควรตั้งคำถามเกี่ยวกับระบบหรือแนวคิดแบบเดิมๆ และดูว่าคุณสามารถสร้างสิ่งที่ดีกว่าได้หรือไม่

เพื่อหาความไร้ประสิทธิภาพเหล่านั้น คุณต้องใช้วิธีการที่เป็นระบบและวิทยาศาสตร์ที่แยกส่วนย่อยๆ ออกเป็นชิ้นเล็ก ๆ เพื่อเข้าถึงความจริงพื้นฐาน จากนั้นดูว่ากาลเวลาหรือการประดิษฐ์เทคโนโลยีใหม่ทำให้ชิ้นส่วนเหล่านี้ล้าสมัยหรือไม่ หากเป็นเช่นนั้น ดูเหมือนว่าคุณจะมีโอกาสสร้างระบบที่ใหม่และดีกว่า

โดยพื้นฐานแล้ว ไม่ว่าผู้คนจะทราบหรือไม่ก็ตาม การเปลี่ยนแปลงทางสังคม เทคนิค และเศรษฐกิจส่วนใหญ่เกิดขึ้นเพราะคนที่คิดด้วยหลักการแรกและท้าทายประเพณี

สถาปัตยกรรมแบบไม่มีฐานข้อมูล (DBless) คืออะไร—และเหตุใดจึงเป็นอนาคต

ในวิดีโอด้านบน Elon Musk อธิบายว่าเขาตรวจสอบวัตถุดิบของแบตเตอรี่อย่างไรและสามารถลดต้นทุนของแบตเตอรี่จาก 700 ดอลลาร์เหลือ 70 ดอลลาร์ได้

มาดูอีกตัวอย่างหนึ่งของหลักการคิดข้อแรกเพราะอธิบายง่ายกว่ากัน รถยนต์เบนซินกับรถยนต์ไฟฟ้า

รถยนต์เบนซินกับรถยนต์ไฟฟ้า

เราทุกคนรู้ดีว่าคุณสามารถใช้แบตเตอรี่ไฟฟ้าในการขับเคลื่อนรถยนต์ได้

แต่ในขณะที่รถเบนซินมีแบตเตอรี่ แต่ไม่ได้ใช้สำหรับการวิ่งรถ ใช้แบตเตอรี่ในการสตาร์ทเครื่องยนต์ แอร์ เครื่องเสียง ไฟ เซ็นเซอร์ ล็อค และอื่นๆ แต่ไม่สามารถใช้กับรถได้ แต่จะอาศัยเครื่องยนต์สันดาปภายใน (ICE) เพื่อควบคุมรถแทน

ปรากฎว่ารถยนต์ ICE นั้นไม่มีประสิทธิภาพมาก มีเพียง 16% ถึง 25% ของกำลังที่สร้างขึ้นจริงเท่านั้นที่ทำให้มันกลายเป็นล้อ ในทางกลับกัน รถยนต์ไฟฟ้าให้กำลังกับล้อประมาณ 90%! รถยนต์ไฟฟ้ายังมีข้อได้เปรียบที่สำคัญในด้านสิ่งแวดล้อม ค่าซ่อม และอื่นๆ

หากคุณกำลังมองสิ่งนี้จากมุมมองของหลักการแรก แม้ว่ารถยนต์ส่วนใหญ่ที่สร้างขึ้นมาจนถึงทุกวันนี้จะเป็นรถยนต์ที่ใช้น้ำมันเบนซิน ความจริงพื้นฐานก็คือพวกเขาใช้ระบบที่ไม่มีประสิทธิภาพ

ตอนนี้ ถ้าคุณดูที่รถยนต์ไฟฟ้า มันจะขจัดความไร้ประสิทธิภาพนี้ออกไปเพื่อสร้างรถยนต์ประเภทใหม่ ในกรณีนี้ มันเพียงแค่กำจัดเครื่องยนต์ที่ซับซ้อนและไร้ประสิทธิภาพ และแทนที่ด้วยแบตเตอรี่ขนาดใหญ่และมอเตอร์เพื่อหมุนล้อโดยตรง

สถาปัตยกรรมแบบไม่มีฐานข้อมูล (DBless) คืออะไร—และเหตุใดจึงเป็นอนาคต

คุณจะได้เห็นว่าการคิดของ First Principles นำไปสู่การระบุความไร้ประสิทธิภาพและสร้างระบบที่ใหม่กว่าและดีกว่าได้อย่างไร

เมื่อพิจารณาจากแนวคิดเหล่านี้แล้ว หากคุณกำลังจะก่อตั้งบริษัทรถยนต์ใหม่ คุณจะสร้างรถยนต์ที่ใช้น้ำมันเบนซินหรือรถยนต์ไฟฟ้าหรือไม่

มาเปลี่ยนเกียร์และเปลี่ยนไปใช้โลกของฐานข้อมูลเพื่อดูว่าเราจะนำแนวคิดหลักแบบเดียวกันไปใช้กับภาคส่วนนั้นได้หรือไม่

สถาปัตยกรรมแบบดั้งเดิมกับสถาปัตยกรรม DBless

มาดูสถาปัตยกรรมดั้งเดิมกันก่อน

สถาปัตยกรรมแบบไม่มีฐานข้อมูล (DBless) คืออะไร—และเหตุใดจึงเป็นอนาคต

ในสถาปัตยกรรมแบบดั้งเดิม คุณมีฐานข้อมูลหลัก (Postgres, MongoDB เป็นต้น) และฐานข้อมูลรองหรือแคช (เช่น Redis หรือ Memcached) ฐานข้อมูลหลักใช้เพื่อเก็บข้อมูลทั้งหมดและสนับสนุนการดำเนินการ CRUD ฐานข้อมูลแคชใช้สำหรับแคช พื้นที่จัดเก็บเซสชัน การจำกัดอัตรา รายการที่อนุญาตพิเศษของ IP Pub/Sub การจัดคิว และอื่นๆ อีกมากมาย

หากคุณคิดเกี่ยวกับมัน แม้ว่าจะมีการพบแคช เราก็กำลังใช้ฐานข้อมูลสำรองสำหรับส่วนหนึ่งของการดำเนินการ CRUD และเรายังไม่ได้ใช้ประโยชน์อย่างเต็มที่เป็นฐานข้อมูลหลัก

สิ่งนี้เตือนคุณถึงปัญหาของรถยนต์ที่ใช้น้ำมันเบนซินหรือไม่? เช่นเดียวกับที่พวกเขาพกแบตเตอรี่เพื่อจ่ายไฟให้กับสิ่งต่างๆ มากมาย ยกเว้นการเคลื่อนย้ายรถ สถาปัตยกรรมแบบดั้งเดิมนั้นใช้ Redis กับทุกสิ่ง ยกเว้นเป็นฐานข้อมูลหลัก

คุณเห็นความคล้ายคลึงกันไหม

จะเกิดอะไรขึ้นถ้าเราใช้ First Principles ในการคิดแบบที่รถยนต์ไฟฟ้าทำ? เช่นเดียวกับที่ EVs กำจัดเครื่องยนต์ จะเป็นอย่างไรถ้าเรากำจัดฐานข้อมูลหลักที่ช้าและไม่มีประสิทธิภาพ และใช้แคชฐานข้อมูลเป็นฐานข้อมูลหลักล่ะ

ทักทายกับสถาปัตยกรรมแบบไม่มีฐานข้อมูล (DBless)

สถาปัตยกรรมแบบไม่มีฐานข้อมูล (DBless):

ในสถาปัตยกรรมนี้ คุณจะกำจัด DB หลัก ดังนั้นชื่อ DBless คุณใช้ฐานข้อมูลรอง/แคชเดิมเป็นฐานข้อมูลหลักใหม่แทน

สมมติว่าเราเริ่มใช้ Redis หรือฐานข้อมูลแคชอื่นๆ ที่คล้ายกันเป็นฐานข้อมูลหลัก และกำจัดฐานข้อมูลหลัก (เช่น Postgres, Mysql, MongoDB เป็นต้น) โดยสิ้นเชิง

สถาปัตยกรรมแบบไม่มีฐานข้อมูล (DBless) คืออะไร—และเหตุใดจึงเป็นอนาคต

หมายเหตุสำคัญ: นี่เป็นเพียงการอภิปรายทางสถาปัตยกรรม สถาปัตยกรรม DBLess ไม่ใช่สถาปัตยกรรมที่เป็นกรรมสิทธิ์ซึ่งจำกัดเฉพาะ Redis หรือ Redis Enterprise และจะทำงานร่วมกับระบบที่คล้ายกับ Redis นอกจากนี้ โปรดจำไว้ว่า Redis เป็นโปรเจ็กต์ OSS ดังนั้นคุณสามารถสร้างสิ่งนี้ได้ด้วยตัวเองหรือบนผู้ให้บริการระบบคลาวด์ที่โฮสต์ Redis อื่น ๆ

มีใครใช้สถาปัตยกรรมนี้บ้าง

ใช่แน่นอน. อย่างที่คุณจินตนาการได้ เราทำงานกับลูกค้าหลายพันรายในแต่ละวัน และถึงแม้ว่า Redis จะยังคงใช้เป็นฐานข้อมูลสำรองเป็นหลัก แต่เราเริ่มเห็นสถาปัตยกรรม DBless ใหม่นี้ปรากฏขึ้นในช่วงสองสามปีที่ผ่านมา มันเริ่มมีโมเมนตัมมากขึ้นเมื่อ Redis นั้นมีฟีเจอร์มากมาย ทรงพลัง และเมื่อผู้คนประสบความสำเร็จมากขึ้น หลายคนที่ไม่ใช่ลูกค้าของเรา เช่น Request Metrics ได้สร้างการเริ่มต้นใช้งานทั้งหมดบนสถาปัตยกรรมนี้ และพบว่ามันประสบความสำเร็จอย่างไม่น่าเชื่อ

สถาปัตยกรรมแบบไม่มีฐานข้อมูล (DBless) คืออะไร—และเหตุใดจึงเป็นอนาคต

ตอนนี้คุณรู้ว่ามันเป็นเรื่องจริงแล้ว มาดูกันว่าอะไรทำให้สิ่งนี้เกิดขึ้นได้

ในทางเทคนิค เปรียบเทียบกับ DB หลักแบบเดิมอย่างไร

ลองใช้ Redis Enterprise เป็นตัวอย่างและเปรียบเทียบกับฐานข้อมูลหลักแบบเดิม

สถาปัตยกรรมแบบไม่มีฐานข้อมูล (DBless) คืออะไร—และเหตุใดจึงเป็นอนาคต

อย่างที่คุณเห็น คำตอบสั้นๆ ก็คือมันใช้งานได้ดีมาก และที่จริงแล้ว มันสามารถดีกว่าฐานข้อมูลหลักแบบเดิมบางตัวด้วยซ้ำ

เพื่อเป็นการเตือนความจำ คุณสามารถใช้สถาปัตยกรรมนี้ได้โดยใช้ Redis OSS หรือคู่แข่ง Redis อื่นๆ คุณเพียงแค่ต้องใช้ตารางเปรียบเทียบที่คล้ายกันเพื่อดูว่ามันใช้งานได้ดีเพียงใด

แต่ Redis ทำสิ่งนี้ได้จริงหรือ ฉันคิดว่ามันเป็นแค่แคชใช่ไหม

คุณถูก. มันเริ่มต้นจากการเป็นที่เก็บแคชเมื่อประมาณทศวรรษที่แล้วและยังคงยอดเยี่ยมสำหรับจุดประสงค์นั้น

อย่างไรก็ตาม Redis และ Redis Enterprise ได้ขยายตัวอย่างมีนัยสำคัญในช่วงหลายปีที่ผ่านมาโดยผสมผสานคุณลักษณะแทบทั้งหมดของ DB แบบเดิม—และมีระบบนิเวศของโมดูลที่ทำงานโดยกำเนิดด้วย Redis หลัก

ใช้ RedisJSON (เร็วกว่าผู้นำตลาด 10 เท่า) คุณสามารถใช้มันและโดยพื้นฐานแล้วจะมีฐานข้อมูลเหมือนเอกสารแบบเรียลไทม์ หรือใช้โมดูล RediSearch (เร็วกว่า 4 เท่าถึง 100 เท่า) และใช้การค้นหาข้อความแบบเต็มแบบเรียลไทม์ เช่น Elastic Search หรือ Algolia

และคุณสามารถใช้โมดูลเหล่านี้เป็นส่วนหนึ่งของ Redis OSS และโฮสต์ได้เอง

นี่คืออนาคตจริงๆหรือ?

เราเชื่อมั่นอย่างยิ่งว่าสถาปัตยกรรมนี้คืออนาคตในแง่เดียวกับที่รถยนต์ไฟฟ้าคืออนาคต และแม้ว่ารถยนต์ไฟฟ้าจะมีสัดส่วนไม่ถึง 1% ของรถยนต์ทั้งหมด แต่ก็เป็นอนาคต เราคิดว่านี่เป็นเพียงวิวัฒนาการตามธรรมชาติของเทคโนโลยี เมื่อเห็นความสำเร็จของลูกค้าหลายๆ ราย เราคิดว่ายิ่งมีคนเรียนรู้เกี่ยวกับมันมากเท่าไร ผู้คนก็จะยิ่งพยายามปรับใช้สิ่งนี้มากขึ้นเท่านั้น

ชื่ออะไรคะ

เรียกว่า DBless เนื่องจากเรากำลังกำจัด DB หลัก และเราคิดว่าชื่อนี้สนุกและแปลกไปจากคำว่า "ไร้สัญชาติ" "ไร้เซิร์ฟเวอร์" "NoSQL" และ "ไม่มีซอฟต์แวร์"

เริ่มต้นอย่างไร?

หากคุณเป็นหนึ่งในผู้ใช้ Redis หลายแสนราย คุณโชคดี—คุณสามารถพิสูจน์แนวคิดอย่างรวดเร็วได้แล้ววันนี้! เราไม่ได้ขอให้คุณเพิ่มสิ่งใหม่ แต่ให้กำจัดสิ่งที่ไม่มีประสิทธิภาพออกไป

และนี่คือวิธีการดำเนินการ

หากคุณกำลังสร้างระบบใหม่หรือคุณลักษณะใหม่ ก็ตรงไปตรงมาเพียงแค่เริ่มใช้สถาปัตยกรรมนี้ หรืออย่างน้อยก็สร้าง Proof-of-Concept และดูว่าเหมาะกับคุณหรือไม่

หากคุณมีฐานข้อมูลหลักอยู่แล้ว ให้ทำในสิ่งที่ลูกค้าหลายคนทำและใช้วิธีการแบบไฮบริด พวกเขายังคงใช้สถาปัตยกรรมแบบดั้งเดิม แต่ย้ายส่วนต่างๆ ของผลิตภัณฑ์ไปยังสถาปัตยกรรมที่ใหม่กว่า เช่น สถานที่ที่พวกเขาใช้ Redis หรือคุณลักษณะที่ใหม่กว่าอยู่แล้ว และช้าแต่ชัวร์ พวกเขาย้ายฟีเจอร์ทั้งหมดจนกว่าจะมีการย้ายข้อมูลทั้งหมด

สรุป:เป็นนักคิดหลักเบื้องต้น

เราขอให้คุณเป็นนักคิดในหลักการแรก เพียงเพราะว่าบางสิ่งถูกใช้ตามธรรมเนียม ไม่ได้หมายความว่ามันสมบูรณ์แบบและคุณควรทำตามอย่างสุ่มสี่สุ่มห้า เราขอให้คุณตั้งคำถามกับการคิดแบบดั้งเดิม ตรวจสอบอย่างมีวิจารณญาณ และลองใช้ทางเลือกอื่น และเมื่อคุณทำเช่นนั้น คุณอาจแค่คิดค้นสิ่งที่มีประโยชน์สำหรับตัวคุณเองและผู้อื่น

สถาปัตยกรรม DBless เป็นทางเลือกแทนการคิดแบบเดิมๆ แทนที่จะสงสัยว่าจะใช้ได้ผลหรือไม่ ให้ลองใช้ Proof-of-Concept มันอาจทำให้คุณประหลาดใจ!

ข้อมูลอ้างอิง

  1. Elon Musk เกี่ยวกับหลักการแรก