NebulaCB: การจัดการ Couchbase ระดับองค์กรที่ช่วยคุณได้ทั้งวัน
การควบคุมภารกิจสำหรับการอัปเกรด XDCR การตรวจสอบ และการดำเนินการที่ได้รับความช่วยเหลือจาก AI
เหตุใดทีม Couchbase ระดับองค์กรจึงต้องมีการควบคุมภารกิจ
Couchbase ขับเคลื่อนปริมาณงานด้านธุรกรรมและการวิเคราะห์ที่สำคัญ การอัปเกรดแบบต่อเนื่อง การจำลองแบบข้ามศูนย์ข้อมูล (XDCR) ตัวดำเนินการ Kubernetes และเหตุการณ์เฟลโอเวอร์ล้วนเป็นการดำเนินการที่มีเดิมพันสูง เมื่อเครื่องมือกระจัดกระจาย ทีมต่างๆ จะต้องอาศัยสคริปต์เฉพาะกิจ ห้องควบคุมที่ช้า และการมองเห็นที่ไม่สมบูรณ์ ซึ่งเป็นช่วงที่ข้อมูลสูญหายและการหยุดทำงานที่ขยายเวลาสร้างความเสียหายมากที่สุด
NebulaCBเป็นแพลตฟอร์มการจัดการ Couchbase แบบโอเพ่นซอร์ส Kubernetes ดั้งเดิม ซึ่งวางตำแหน่งเป็นการควบคุมภารกิจ: จัดการการอัพเกรด ตรวจสอบความสมบูรณ์ของ XDCR ตรวจสอบความสมบูรณ์ของหลายคลัสเตอร์ และใช้การวิเคราะห์สาเหตุที่แท้จริงที่ได้รับความช่วยเหลือจาก AI จากแดชบอร์ดสไตล์ห้องนักบินเดียว
สิ่งที่ NebulaCB มอบให้ (โดยสรุป)
ตามคำบรรยายผลิตภัณฑ์บนnebulacb.orgNebulaCB เน้นย้ำถึงผลลัพธ์พาดหัวข่าวสามประการสำหรับผู้ปฏิบัติงาน:อัปเกรดอย่างไม่เกรงกลัว,ตรวจสอบทุกสิ่งและไม่สูญเสียอะไรเลย. ภายใต้ขอบเขตนั้น ระบบจะรวมการทำงานอัตโนมัติ การพิสูจน์ความสมบูรณ์ของข้อมูลอย่างต่อเนื่อง และตัวเลือก AI ในพื้นที่ เพื่อให้การวัดและส่งข้อมูลทางไกลที่ละเอียดอ่อนสามารถคงอยู่บนเครือข่ายของคุณได้
- โอเพ่นซอร์สและการรับรู้ Kubernetes:เหมาะกับ GitOps และแนวปฏิบัติด้านวิศวกรรมแพลตฟอร์ม ผสานรวมกับ Couchbase Autonomous Operator และเวิร์กโฟลว์ที่ใช้ Helm
- ศูนย์ความคิดเรื่องการสูญเสียข้อมูล:ไทม์ไลน์การนับเอกสาร การสุ่มตัวอย่างแฮช การตรวจจับช่องว่างของลำดับ และเวิร์กโฟลว์การตรวจสอบเพื่อเป็นหลักฐานว่าแบบจำลองมีความสอดคล้องตลอดการเปลี่ยนแปลง
- XDCR ในสปอตไลท์: การตรวจสอบการจำลองแบบสองทิศทาง, การควบคุมไปป์ไลน์, การมองเห็นความล่าช้าและโทโพโลยี และการรับรู้ความล่าช้าของ GOXDCR ซึ่งเป็นปัญหาที่พบบ่อยในระหว่างการอัปเกรดและเหตุการณ์ในภูมิภาค
- AI โดยไม่ต้องใช้คลาวด์คีย์: การผสานรวมOllamaภายในสำหรับการวินิจฉัยแบบแชทและการวิเคราะห์สาเหตุเชิงโครงสร้าง พร้อมผู้ให้บริการคลาวด์เสริมเมื่อนโยบายอนุญาต
สิ่งที่cmd/nebulacbเชื่อมต่อเข้าด้วยกัน
จุดเข้า Go (github.com/balinderwalia/nebulacb/cmd/nebulacb) โหลด--config(ค่าเริ่มต้นconfig.json) ถอยกลับไปเป็นค่าเริ่มต้นที่มีเหตุผลหากไฟล์หายไป สร้างตัวรวบรวมตัวชี้วัด ทางเลือกเริ่มต้นการจัดการพอร์ตส่งต่อkubectl เมื่อมี kubeconfig อยู่ (รวมถึงการตรวจสอบสภาพเป็นระยะเพื่อเชื่อมต่อการส่งต่อที่ไม่ทำงานอีกครั้ง) และเชื่อมต่อทุกคลัสเตอร์ที่ลงทะเบียนผ่านCouchbase ClientPoolจากนั้นจะสร้างอินสแตนซ์ Storm, ผู้ดำเนินการอัปเกรด, กลไก XDCR, เครื่องมือตรวจสอบ, กลไกการรายงาน, การตรวจสอบหลายคลัสเตอร์ (สำรวจตามลำดับทุกๆ สองวินาที) พร้อมด้วย AI ที่เป็นตัวเลือก, การสำรองข้อมูล, การเฟลโอเวอร์, การโยกย้าย, ภูมิภาค และผู้จัดการ Docker ทุกอย่างให้บริการผ่านWebSocket hubและ HTTP API ที่ใช้ร่วมกัน ซึ่งเป็นพื้นผิวเดียวกับที่ React UI และnebulacb-cliใช้
React พื้นที่ทำงานแดชบอร์ด
UI ที่จัดส่งภายใต้web/nebulacb-uiเปิดเผยแท็บพื้นที่ทำงานหลายแท็บ -ห้องนักบิน(ตารางควบคุมภารกิจสไตล์ NASA เริ่มต้น),แดชบอร์ดดั้งเดิม,ถาม AIRCA,ความรู้,Insights,Pod Logs,Events,Operator(CouchbaseCluster CR health) และRunbooks—ทั้งหมดได้รับการสนับสนุนจากการอัปเดต WebSocket แบบสด
โทโพโลยีอ้างอิง (ท้องถิ่น + k3s)
สำหรับภาพที่เป็นรูปธรรมของวิธีที่เซิร์ฟเวอร์ การทดสอบการจัดตำแหน่ง dev UI, CLI, Couchbase คลัสเตอร์ และการทดสอบโหลด XDCR ที่เป็นตัวเลือก โปรดดูแผนภาพด้านล่าง
การอัปเกรดแบบ Rolling ที่ตรงกับวิธีที่ทีม SRE ทำงานจริง
NebulaCB อธิบายการอัปเกรดแบบ Rolling ที่ใช้ Helm โดยมีการหยุดชั่วคราว ดำเนินการต่อ ยกเลิก และย้อนกลับรวมถึงการแพตช์อิมเมจทรัพยากรที่กำหนดเอง CouchbaseCluster การดูการโรลโอเวอร์ของพ็อด และการติดตามการปรับสมดุลให้เสร็จสมบูรณ์ ความคืบหน้าทีละโหนดและเส้นทางดาวน์เกรดที่ชัดเจนช่วยลดความเสี่ยง "เราเริ่มการอัปเกรดและไม่สามารถคลายออกได้" ซึ่งทำให้องค์กรจำนวนมากใช้ Couchbase บิลด์แบบเก่า
XDCR และความสมบูรณ์ของการจำลอง
สำหรับรูปแบบหลายภูมิภาคและที่ใช้งานอยู่ NebulaCB เน้นการตรวจสอบ XDCR แบบเรียลไทม์: ความล่าช้าในการจำลอง การรีสตาร์ทไปป์ไลน์ การเปลี่ยนแปลงโทโพโลยีระหว่างการอัพเกรด และเครื่องมือเพื่อหยุดชั่วคราว ดำเนินการต่อ รีสตาร์ท หรือหยุดไปป์ไลน์ ความลึกในการปฏิบัติงานนั้นมีความสำคัญเมื่อไปป์ไลน์เดียวที่ติดอยู่ปิดบังการซิงโครไนซ์บางส่วนซึ่งจะแสดงภายใต้การโหลดเท่านั้น
การตรวจสอบความสมบูรณ์ของข้อมูล (พิสูจน์ ไม่ต้องสันนิษฐาน)
นอกเหนือจากแผนภูมิความล่าช้า NebulaCB โฆษณาSHA-256 การสุ่มตัวอย่างแฮช,การตรวจจับช่องว่างลำดับการตรวจสอบจำนวนเอกสารอย่างต่อเนื่อง และการตรวจสอบเต็มรูปแบบตามความต้องการ ความสามารถเหล่านั้นสนับสนุนทีมที่คำนึงถึงการปฏิบัติตามกฎระเบียบซึ่งจะต้องแสดงหลักฐาน ไม่ใช่เกร็ดเล็กเกร็ดน้อย ว่าการอัปเกรดและการฝึกซ้อมเมื่อเกิดข้อผิดพลาดไม่ได้แยกข้อมูลออกไปอย่างเงียบๆ
ตัวสร้างโหลด Storm และการฝึกซ้อมแบบการผลิต
แพลตฟอร์มประกอบด้วยตัวสร้างโหลดที่กำหนดค่าได้ (เขียน อ่าน ลบ ระเบิด ปุ่มลัด) พร้อมเปอร์เซ็นไทล์เวลาในการตอบสนอง รวมถึงเส้นทางทดสอบโหลดคลัสเตอร์คู่แบบสแตนด์อโลน เมื่อใช้ร่วมกับแผงความสมบูรณ์ ทีมสามารถซ้อมการอัปเกรดภายใต้การรับส่งข้อมูลที่สมจริง แทนที่จะค้นหาปัญหาเฉพาะในช่วงสุดสัปดาห์ที่เริ่มใช้งานจริงเท่านั้น
HA, การเฟลโอเวอร์, การสำรองข้อมูล และการย้ายข้อมูล
NebulaCB ยังแสดงการกำหนดค่าการเฟลโอเวอร์แบบอัตโนมัติ การเฟลโอเวอร์แบบแมนนวลและแบบเกรซฟูล ไทม์ไลน์ของเหตุการณ์ การสำรองข้อมูลตามกำหนดเวลาพร้อมตัวเลือกการเก็บรักษาและการเข้ารหัส และการโยกย้ายกับผู้ปฏิบัติงานแบบขนานและการตรวจสอบหลังรัน เมื่อรวมกันแล้ว สิ่งเหล่านี้จะเปลี่ยนแดชบอร์ดให้เป็นคอนโซลวงจรการใช้งานแทนที่จะเป็นหน้าเมทริกแบบอ่านอย่างเดียว
การวิเคราะห์ที่ขับเคลื่อนด้วย AI พร้อม Ollama
ในพื้นที่ คุณสมบัติที่แสดงบนเว็บไซต์ ได้แก่ ภาษาธรรมชาติถาม AIบนบริบทของคลัสเตอร์, รายงานRCAที่มีโครงสร้างพร้อมขั้นตอนการแก้ไข, ฐานความรู้ในตัวของปัญหา Couchbase ทั่วไป และการบูรณาการกับOllamaดังนั้นรุ่นต่างๆ เช่น Llama 3 จึงสามารถทำงานภายในองค์กรได้ทั้งหมด เซิร์ฟเวอร์ยังรองรับผู้ให้บริการรายอื่น (เช่น Anthropic หรือ OpenAI) ผ่านการกำหนดค่าและตัวแปรสภาพแวดล้อมเมื่อนโยบายอนุญาต การออกแบบดังกล่าวสนับสนุนอุตสาหกรรมที่ได้รับการควบคุม ซึ่งการส่งบันทึกไปยัง API สาธารณะนั้นไม่ใช่แบบเริ่มต้น พื้นผิว
CLI และ API
bin/nebulacb-cliเป็นไคลเอนต์ HTTP สำหรับเซิร์ฟเวอร์ที่ทำงานอยู่ โดยตั้งค่าNEBULACB_URL,NEBULACB_USERและNEBULACB_PASS(หรืออาศัยค่าเริ่มต้นจากทางลัด Makefile) คำสั่งที่ใช้บ่อย ได้แก่status,start-load/pause-load/resume-load/stop-load,start-upgrade/abort-upgrade,restart-xdcr,run-audit,inject-failure,alerts,health,config, และreport. ตำแหน่งข้อมูล
REST ได้รับการกำหนดเนมสเปซภายใต้/api/v1(สแน็ปช็อตแดชบอร์ด การดำเนินการคำสั่ง การแจ้งเตือน การกำหนดค่า คลัสเตอร์ การสำรองข้อมูล การโยกย้าย เฟลโอเวอร์ การวิเคราะห์ AI โปรดดูอัปสตรีม README สำหรับเมทริกซ์แบบเต็ม) โดยทั่วไปการตรวจสอบความสดจะเรียกGET /api/v1/healthในขณะที่แดชบอร์ดสมัครรับws://<host>:<port>/wsสำหรับการสตรีมการวัดและส่งข้อมูลทางไกล
การซ้อมอัพเกรดทั่วไป
- เปิดใช้
bin/nebulacb --config config.jsonและเปิดแดชบอร์ดบนพอร์ตที่กำหนดค่าไว้ (8899 เป็นค่าเริ่มต้นทั่วไป) - วอร์มคลัสเตอร์ด้วย Storm หรือ
nebulacb-cli start-load; เลือกรันgo run ./cmd/xdcr-loadtest/สำหรับการรับส่งข้อมูลแบบคลัสเตอร์คู่ในขณะที่คุณเปลี่ยนโทโพโลยี - ดำเนินการอัปเกรดทีละส่วนจากห้องนักบินหรือผ่าน
start-upgradeดูความล่าช้าของ XDCR ไทล์ความสมบูรณ์ และเหตุการณ์ Kubernetes พร้อมกัน - หลังจากที่โหนดปรับสมดุลแล้ว ให้รัน
run-auditเพื่อพิสูจน์แฮช จำนวนเอกสาร และลำดับที่เรียงกัน - บันทึกหลักฐานด้วย
reportสำหรับคณะกรรมการที่ปรึกษาการเปลี่ยนแปลง
วิธีนี้จะช่วยประหยัดเวลาสำหรับองค์กรได้อย่างไร
- อัปเกรดได้รวดเร็วและปลอดภัยยิ่งขึ้น:orchestration plus rollback ช่วยลดระยะเวลาการบำรุงรักษาและลดความเสี่ยง Sev-1
- การตรวจพบการเบี่ยงเบนของการจำลองแบบก่อนหน้านี้: สัญญาณความสมบูรณ์อย่างต่อเนื่องของจับปัญหา XDCR ก่อนที่จะกลายเป็นจุดบกพร่องของข้อมูลที่ลูกค้ามองเห็นได้
- ลดเวลาเฉลี่ยในการแก้ปัญหา:แดชบอร์ดที่สนับสนุน WebSocket, RCA และ Playbooks ที่ดูแลจัดการจะบีบอัดรอบเหตุการณ์
- การจัดแนวตามความเป็นจริงของ Kubernetes:โฟลว์ที่รับรู้โดยผู้ปฏิบัติงานตรงกับจำนวนองค์กรจำนวนมากที่ใช้งาน Couchbase อยู่แล้ว
- ต้นทุนและอธิปไตย: แกนโอเพ่นซอร์สและ AI ท้องถิ่นเสริม หลีกเลี่ยงการผูกมัดผู้ขายในทุกข้อมูลเชิงลึก
จะไปที่ไหนต่อไป
สำรวจไซต์โครงการที่https://nebulacb.org/เพื่อดูเส้นทางการติดตั้ง (แหล่งที่มา, Docker Compose, Helm), ไดอะแกรมสถาปัตยกรรม และลิงก์ GitHub หากคุณต้องการความช่วยเหลือในการออกแบบ Couchbase บน Kubernetes, XDCR หลายภูมิภาค หรือบูรณาการความสามารถในการสังเกตและระบบอัตโนมัติเข้ากับแพลตฟอร์มของคุณ โปรดติดต่อ Workstation ที่info@workstation.co.uk— เราออกแบบและจัดส่งแพลตฟอร์มข้อมูลการผลิตผ่านระบบคลาวด์และ Edge