เผยแพร่ครั้งแรกใน สิงหาคม 2562 ที่ ObjectRocket.com/blog
CockroachDB® เป็นส่วนหนึ่งของครอบครัวเทคโนโลยีฐานข้อมูลของ Rackspace ObjectRocket ความสามารถในการขยายของ CockroachDB น่าตื่นเต้น ด้วยการจำลองและกระจายข้อมูล (เพิ่ม high availability สูงสุด) การ rebalance ฐานข้อมูลอัตโนมัติ และ multi-geo data centers ที่รองรับ data-domiciling compliance เพื่อนำเพียงไม่กี่อย่าง และทั้งหมดนี้พร้อม high data integrity และ distributed ACID transactions เพราะ CockroachDB data resiliency เป็น must-have
เราต้องการแบ่งปัน highlight บางอย่างของการขยายกับ CockroachDB และกล่าวถึงสิ่งที่ Rackspace ObjectRocket DBaaS เสนอ โดยฐานนักพัฒนา เมื่อคุณใช้ CockroachDB บน managed-services platform ของเรา คุณสามารถโฟกัสที่การสร้างแอปพลิเคชันของคุณและไม่ใช่ความซับซ้อนของการรันฐานข้อมูล
วันนี้ Scaling เป็นเรื่องสำคัญที่สุด
ยี่สิบปีก่อน การจัดเก็บเป็นเรื่องที่มีค่าใช้จ่ายสูง และคำว่า Big Data ทำให้ชัดเจนว่าเราเผชิญกับความท้าทายใหญ่ เรามีข้อมูลปริมาณมากและไม่มีวิธีที่ดีในการวิเคราะห์หรือใช้ข้อมูลนั้น แต่ตอนนี้ เทคโนโลยีจัดการ Big Data และการบุกเบรกของคำขอและ transactions ที่ต่อเนื่องในโลกสมัยใหม่ของ e-commerce, financial software, research, business administration และ data mining ได้แล้ว เทคโนโลยีขอบเขตใหม่ Internet of Things เพิ่มจำนวนอุปกรณ์ที่สร้างข้อมูลและรัน transactions ออนไลน์ คุณสามารถเพิ่มกล้อง สวิตช์ไฟ และตู้เย็นเข้าไปในรายการยาวนานของอุปกรณ์ที่สร้างข้อมูลที่มีประโยชน์ออนไลน์
ในภูมิทัศน์นี้ การนำ scaling strategy ที่ตอบสนองความต้องการปัจจุบันบน data stores ของคุณ และยังอนุญาตให้การเติบโตที่จะมาถึงอย่างไม่หลีกเลี่ยงในข้อมูลและแหล่งข้อมูลและ transactions ใหม่ที่ยังไม่อาจจินตนาการได้ เป็นสิ่งสำคัญ
Scaling หมายถึงการเพิ่ม (หรือลด) ทรัพยากรฐานข้อมูลที่จำเป็นเพื่อจัดการ workload ปัจจุบันอย่างเหมาะสม Scale ด้วยวิธีต่อไปนี้:
- Vertical scaling: เพิ่ม (หรือลด) RAM, storage space และ CPU ให้กับ underlying nodes ภายในเคลสเตอร์
- Horizontal scaling: เพิ่มโหนดมากขึ้นเมื่อจำเป็นเพื่อจัดการ workload (แทนที่จะเพิ่มทรัพยากรให้โหนดเดียว)
Relational databases ส่วนใหญ่ใช้ vertical scaling อย่างไรก็ตาม distributed databases ส่วนใหญ่ (มัก non-relational) ใช้ horizontal scaling—ซึ่งดีกว่าสำหรับ heavy transactional loads, frequent queries, reads/writes และ resiliency requirements คุณสามารถ scale vertically ได้เพียงแค่ระดับหนึ่ง เนื่องจากขีดจำกัดทางเทคนิค (computational) ของฮาร์ดแวร์ชิ้นเดียว
อย่างไรก็ตาม การ scale horizontally ไม่ถูกจำกัดทาง computation และถูกจำกัดเพียงแค่ปริมาณฮาร์ดแวร์ที่มีอยู่และสิ่งที่ซอฟต์แวร์รองรับ สิ่งที่ทำให้ CockroachDB เป็นเอกลักษณ์คือมันให้โซลูชันที่ยอดเยี่ยมสำหรับการ scale horizontally relational databases (โดยทั่วไปไม่สามารถทำได้) ตอบสนองต่อ rapid, real-time reads และ writes ที่ inherent ใน distributed online transaction processing (OLTP) systems คุณยังสามารถ scale CockroachDB vertically ได้ แต่การ scale โดยการเพิ่มโหนดเป็นวิธีที่แนะนำ
อะไรทำให้ CockroachDB scaling พิเศษ?
ตาม Derek Johnson, Product Manager ที่ Rackspace ObjectRocket ด้านที่น่าตื่นเต้นที่สุดของการ scale ของ CockroachDB คือมันฉลาดแค่ไหน หลังจากคุณสร้างและกำหนดค่าโหนดแรก การเพิ่มโหนดต่อไปจะง่ายขึ้น ในสภาพแวดล้อม multi-node คุณสามารถใช้ประโยชน์จากคุณสมบัติอันทรงพลังของ CockroachDB ได้แก่ auto-scale, balance data และ self-managed geo-specific compliance requirements เพื่อรักษา data stores ของคุณให้น่าเชื่อถือ ปฏิบัติตาม และทำงานได้ดี ด้วยการกำหนดค่าที่เพิ่มประสิทธิภาพ คุณสามารถใช้ประโยชน์จากพลังจริงของ CockroachDB ตัวอย่างเช่น โดยใช้ flag —locality เพื่ออธิบาย region และ availability zone ของโหนด CockroachDB นำ geo-partitioning ไปใช้และเก็บข้อมูลภายใน region ที่ระบุโดยอัตโนมัติ
นี่คือการแยกบางส่วนของ highlight การขยาย:
Data integrity ขณะ data stores ของคุณขยาย
- Transactions เป็น ACID-compliant และคุณสามารถใช้ได้ในวิธีปกติ โดยใช้คำสั่ง SQL เช่น
BEGINหรือCOMMIT - CockroachDB แตกต่างจาก relational databases ระหว่างการ scale มันกระจาย reads และ writes ทั้งสองข้ามโหนดที่เกี่ยวข้องทั้งหมด แทนที่จะเป็น writes ทั้งหมดไปที่โหนดเดียว Multi-active availability นี้เป็นเวอร์ชัน HA ของ CockroachDB และอนุญาต geo-spanning
- CockroachDB ใช้ consensus replication โดยส่งคำขอ replication ไปอย่างน้อยสามโหนดที่แตกต่างกัน และรอ commit จนกว่าส่วนใหญ่ของโหนดจะรายงานว่าพวกเขาจำลองข้อมูลสำเร็จ
- Mediated transactions พร้อม intents และ records สำหรับแต่ละ write ป้องกัน transaction conflicts
- CockroachDB ใช้สองออบเจ็กต์ในการ mediate transactions ทั้งหมด: transaction record และ write intent ซึ่ง check-in กับกัน และหากจำเป็น restart transaction เพื่อให้แน่ใจว่ามัน commit ค่าล่าสุด
- CockroachDB ให้ balance ที่ดีระหว่างประสิทธิภาพและ data integrity เนื่องจาก data balance และ replication ของมัน
Geo-partitioning ช่วยชีวิต!
แทนที่จะสร้าง shards ที่ silo แบบ geographic แล้วปรับปรุง latency แต่ป้องกัน cross-geo queries CockroachDB ใช้การตั้งค่าที่ระดับ range เพื่อจำลองข้อมูลภายใน regions ที่กำหนด CockroachDB ให้ double-purpose value ด้วยความสามารถ geo-partitioning ที่เป็นเอกลักษณ์ โดยกำหนด region เฉพาะที่จะเก็บข้อมูล คุณบรรลุทั้ง application performance (data ใกล้กับแอปของผู้ใช้) และ GDPR data domiciling compliance
CockroachDB Admin UI มีการแสดงภูมิศาสตร์ที่น่าทึ่งชื่อ Node Map ซึ่งแสดงแผนที่โลกพร้อมไอคอนสำหรับโหนดทั้งหมดและรายละเอียดแต่ละโหนด การแสดงภาพนี้ช่วยในการวางแผนและ troubleshooting latency issues ระหว่าง data stores เมื่อเข้าถึง CockroachDB ของคุณผ่าน ObjectRocket Mission Control UI คุณสามารถลิงก์ไปยัง CockroachDB Admin UI เพื่อดู Node Map ได้ง่าย
การเพิ่มโหนดใหม่ด้วยตนพร้อมการกำหนดค่าที่เหมาะสมอนุญาตให้ smart และ rapid scale-outs
- หากคุณต้องการ spin up โหนดใหม่อย่าง proactive คุณสามารถใช้คำสั่งผ่าน CLI หรือ Admin UI เพื่อสร้างโหนดและตั้งค่า flags และการกำหนดค่าอื่นๆ ที่จำเป็น
- แม้คุณต้องหยุดและเริ่มฐานข้อมูลหลายตัวเพื่อ scale ด้วย CockroachDB คุณสามารถเพิ่มโหนดมากขึ้นได้ง่ายขณะที่ระบบอยู่ภายใต้โหลด
ด้วยการใช้ orchestration การ scale จัดการอัตโนมัติโดยไม่มี downtime
CockroachDB ให้ข้อได้เปรียบการ scale ต่อไปนี้:
- การ scale CockroachDB ผ่าน orchestration platform ทำให้ง่ายและอนุญาต automation อันทรงพลัง ตัวอย่างเช่น เมื่อคุณใช้ Kubernetes (เช่น ObjectRocket ทำ) คำสั่งเดียวสามารถ scale-out CockroachDB ได้ โดยจัดหาทรัพยากรใหม่และ spin up additional pods ตามที่จำเป็น
- Rebalancing ข้อมูลข้ามโหนดเกิดขึ้นโดยอัตโนมัติ แม้ระหว่าง data centers และ cloud providers ที่ต่างกัน
- Distributed transactions หมายความว่าไม่มีผลกระทบต่อ workload ไม่มี downtime และไม่มี latency เพิ่มขึ้น
- การเพิ่มประสิทธิภาพ server utilization อย่างสม่ำเสมอข้ามโหนดทั้งหมดเป็นผลลัพธ์ตามธรรมชาติของ auto-scaling ของ CockroachDB
รวมทั้งหมดเข้าด้วยกันใน managed service
ObjectRocket เสนอ managed services ครบวงจรสำหรับ CockroachDB data stores ของคุณโดยใช้ Kubernetes container-based architecture บริการรวม design และ deployment consulting, full technical support และทั้งหมดของ enterprise-licensed version ของ CockroachDB
คุณสมบัติหลักของ managed CockroachDB solution รวมถึง:
- Three-node High Availability (HA) clusters
- การเข้าถึง CockroachDB Admin UI ผ่าน ObjectRocket UI
- IP address whitelisting
- User authentication
- Transport Layer Security (TLS)
สิ่งนี้หมายความว่าคุณได้ relational, ACID-compliant data store พร้อม SQL interface ที่สะดวกและ PostgreSQL wire compatibility แต่พร้อม automatic HA, easy scalability และ geographic scaling
Managed CockroachDB ของ ObjectRocket ช่วยให้คุณเลือกตัวเลือกที่ดีที่สุดสำหรับความต้องการข้อมูลของคุณจาก node types ที่กำหนดไว้ล่วงหน้า และ scale horizontally โดยการเพิ่ม node type นั้นๆ อีกมากเท่าที่ต้อง Kubernetes-based platform ของเราแทนที่โหนดที่ล้มเหลวหรือมีปัญหาอย่างอัตโนมัติ เพื่อเราสามารถรับรองได้ว่าเคลสเตอร์ของคุณจะพร้อมใช้งานเสมอ
นี่เป็นเวลาที่ยอดเยี่ยมที่จะลอง CockroachDB และสิ่งที่ Rackspace ObjectRocket ให้กับ managed services ของเรา สำหรับข้อมูลเชิงลึกบางส่วนเกี่ยวกับ managed offering ของ CockroachDB อาจแก้ไขความต้องการ data store ของคุณได้อย่างไร อ่านบล็อก Top 5 Use Cases ของเรา Cockroach® มีเอกสารประกอบที่ยอดเยี่ยม และหากคุณสนใจมีการสนทนากับ CockroachDB หรืออยากเรียนรู้เพิ่มเติม ติดต่อเราที่นี่ที่ Rackspace
คลิกที่นี่เพื่อดู The Rackspace Cloud Terms of Service
ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถคลิก Sales Chat เพื่อแชททันทีและเริ่มสนทนาได้