การซื้อบัญชี Azure Microsoft Cloud ในนามของการเรียกเก็บเงินเพื่อพูดคุยเกี่ยวกับฐานข้อมูลแบบกระจายทั่วโลก: ฉันใช้ Cosmos DB เพื่อดึงการดำเนินการและการบำรุงรักษาออกจาก "หลุมไฟ" ได้อย่างไร

Cloud 2026-10-20 阅读 2
1

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

เมื่อเวลา03.00น. ตามเวลาปักกิ่งโทรศัพท์มือถือสั่นอย่างรุนแรงและระบบตรวจสอบส่งเสียงเตือนระดับสูงสุด-"ความล่าช้าในการเข้าถึงของผู้ใช้ในยุโรปเพิ่มสูงขึ้น", "ความขัดแย้งที่รุนแรงในการซิงโครไนซ์ข้อมูลข้ามภูมิภาค", "CPU ฐานข้อมูลหลักทะยานขึ้น100% โดยไม่ตอบสนอง" ในตอนนี้คุณลุกขึ้นมาพร้อมกับรอยคล้ำเชื่อมต่อกับ VPN และเริ่มเผชิญกับกลยุทธ์การแบ่งไลบรารีและตารางที่น่าตื่นตาความล่าช้าในการซิงโครไนซ์ต้นแบบและทาสการสูญเสีย Binlog และดัชนีที่ไม่ถูกต้องตลอดกาล

บริการซื้อและเติมเงินบัญชีคลาวด์ Azure ของ Microsoft

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

เมื่อไม่นานมานี้ฉันได้ดื่มกับเพื่อนเก่าสองสามคนที่ทำงานด้านสถาปัตยกรรมทุกคนยังคงบ่นว่า: "จะมีฐานข้อมูลเมื่อใดซึ่งสามารถซิงโครไนซ์ข้อมูลไปทั่วทุกมุมโลกได้โดยไม่ต้องกังวลเกี่ยวกับการแบ่งส่วนการขยายและการล็อกทุกวันขัดแย้ง?” ในความเป็นจริงในช่วงไม่กี่ปีที่ผ่านมาทุกคนได้ลองใช้โซลูชันต่างๆในสภาพแวดล้อมการผลิตตั้งแต่คลัสเตอร์ MySQL/PostgreSQL ที่สร้างขึ้นเองไปจนถึง NoSQL แบบกระจายโอเพ่นซอร์สต่างๆและในที่สุดก็พบว่าหากคุณต้องการรวม "การกระจายทั่วโลก" และ "การดำเนินการและการบำรุงรักษาที่รวดเร็ว" คำนี้ลงจอดจริงๆ

Azure Cosmos DB

ถือได้ว่าเป็นการดำรงอยู่ในระดับมาตรฐานที่ไม่สามารถหลีกเลี่ยงได้

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

1.ความเจ็บปวดจากการกระจายทั่วโลกแบบดั้งเดิม: ทำไมคุณถึงทำงานล่วงเวลาตอนดึกเสมอ?

ก่อนที่จะพูดถึง Cosmos DB เรามาดูจุดเจ็บปวดของโซลูชันแบบเดิมกันก่อน

บริการซื้อและเติมเงินบัญชีคลาวด์ Azure ของ Microsoft

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

ความล่าช้าและความขัดแย้งในการซิงโครไนซ์ข้อมูล (Split-Brain): ความล่าช้าทางกายภาพของสายเคเบิลออปติคอลข้ามชาติมีอยู่อย่างเป็นกลางหากผู้ใช้ในสหรัฐอเมริกาและผู้ใช้ในยุโรปแก้ไขข้อมูลเดียวกันในเวลาเดียวกันคุณจะแก้ไขข้อขัดแย้งได้อย่างไรจะเขียนทับตามเวลาประทับหรือไม่? หรือเขียนตรรกะค่าตอบแทนทางธุรกิจที่ซับซ้อน?

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

หลุมดำของการตรวจสอบการดำเนินงานและการบำรุงรักษา: หากมีโหนดมากขึ้นพื้นผิวการดำเนินงานและการบำรุงรักษาจะแตกดิสก์โหนดใดเต็มเครือข่ายที่โหนดใดเกิดความผันผวน? เจ้าหน้าที่ปฏิบัติการและบำรุงรักษาหมดแรงเพียงแค่มองไปที่ตลาดการตรวจสอบต่างๆทุกวัน

สิ่งที่เราต้องการไม่ใช่พารามิเตอร์การกำหนดค่าเพิ่มเติมแต่

นอกกรอบขนาดทั่วโลกและประสบการณ์ "ไม่ใช้งานและบำรุงรักษา (Serverless/Managed)" ที่แท้จริง

.

ประการที่สองการถอด Azure Cosmos DB: ทำไมมันสามารถบรรลุ "การทำงานและการบำรุงรักษาที่รวดเร็ว

”?

ผู้ที่ได้สัมผัสกับ Azure Cosmos DB เป็นครั้งแรกมักจะตกใจกับคุณสมบัติหลักหลายประการเมื่อรวมประสบการณ์การลงจอดจริงของเราในช่วงไม่กี่ปีที่ผ่านมามีนักฆ่าหลายคนในการดำเนินการและการบำรุงรักษา:

1."คลิกเมาส์ที่ไหนข้อมูลอยู่ที่ไหน" ที่แท้จริง: การถ่ายทอดสดทั่วโลกและการคัดลอกด้วยคลิกเดียว

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

และในพอร์ทัล Azure (Portal) ของ Cosmos DB สิ่งต่างๆจะรุนแรงและสง่างามมาก:

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

Multi-Master: ไม่เพียงแต่รองรับการอ่านมากขึ้นทั่วโลกแต่ยังรองรับการเขียนมากขึ้นทั่วโลกซึ่งหมายความว่าผู้ใช้ในอเมริกาเหนือเขียนโหนดในสหรัฐอเมริกาผู้ใช้ในยุโรปเขียนโหนดในยุโรปและชั้นล่างสุดจะช่วยคุณโดยอัตโนมัติผ่านการควบคุมพร้อมกันหลายเวอร์ชัน (MVCC) และกลยุทธ์การแก้ไขข้อขัดแย้ง

การปลดปล่อยการดำเนินงานและการบำรุงรักษา: คุณไม่จำเป็นต้องเขียนสคริปต์เพื่อตรวจสอบความล่าช้าของ master-slave และคุณไม่ต้องกังวลว่าโหนดในบางพื้นที่จะหยุดทำงานและทำให้ธุรกิจหยุดชะงักมาพร้อมกับ SLA ที่มีความพร้อมใช้งานสูง (เช่นการรับประกันความพร้อมใช้งาน99.999%) วิธีการกู้คืนระบบและวิธีการสร้างความซ้ำซ้อนของข้อมูลผู้ให้บริการระบบคลาวด์จะรวมทุกอย่างไว้ด้วย

2.อำลาฝันร้ายของ DBA: ดัชนีอัตโนมัติ (Automatic Index)

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

บริการซื้อและเติมเงินบัญชีคลาวด์ Azure ของ Microsoft

NoSQL แบบดั้งเดิมมักต้องการ DBA เพื่อวิเคราะห์คำสั่งแบบสอบถามด้วยตนเองและออกแบบดัชนีรองและดัชนีคอมโพสิตอย่างรอบคอบ

Cosmos DB ทำสิ่งที่ "โหดร้าย" แต่เป็นมิตรกับการพัฒนาและการดำเนินงานและการบำรุงรักษา:

ข้อมูลทั้งหมดจะถูกจัดทำดัชนีโดยอัตโนมัติโดยค่าเริ่มต้น (Schema-agnostic Index)

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

การดำเนินการและการบำรุงรักษา: ไม่จำเป็นต้องปรับดัชนี B-Tree ให้เหมาะสมแม้ว่าจะใช้พื้นที่จัดเก็บข้อมูลจำนวนหนึ่งในพื้นหลังเพื่อรักษาดัชนีแต่สำหรับเจ้าหน้าที่ปฏิบัติการและบำรุงรักษาการขาดสัญญาณเตือนที่เกิดจาก "การสร้างดัชนีที่ขาดหายไป" หมายความว่าจะมีอายุการใช้งานน้อยกว่าสิบปี

3.ระดับมิลลิวินาทีสามารถคาดการณ์ประสิทธิภาพ: การควบคุมที่ดีของ RU/s (หน่วยการร้องขอ)

ในยุคคลาวด์ความสมดุลของต้นทุนและประสิทธิภาพเป็น KPI หลักของการดำเนินการและการบำรุงรักษาเสมอ Cosmos DB แนะนำ

RU/วินาที (หน่วยคำขอ)

แนวคิด.

ไม่ว่าข้อความค้นหาของคุณจะอ่านคีย์-Value อย่างง่ายหรือทำการสืบค้นร่วม SQL ที่ซับซ้อนก็สามารถใช้ RU ได้อย่างแม่นยำ

คุณสามารถสำหรับแต่ละภาชนะ (C

Ontainer) และแม้แต่ฐานข้อมูลทั้งหมดก็ตั้งค่าทรูพุตไม่เพียงแต่รองรับการปรับด้วยตนเองเท่านั้นแต่ยังรองรับการซูมอัตโนมัติ (Autoscale)-RU จะเต็มโดยอัตโนมัติในช่วงที่มีธุรกิจสูงสุดและจะลดลงโดยอัตโนมัติในช่วงที่ตกต่ำในช่วงดึกและใบเรียกเก็บเงินจะไม่สูญเปล่า

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

3.คำแนะนำในการหลีกเลี่ยงหลุมในสภาพแวดล้อมการผลิต: การแลกเปลี่ยนเบื้องหลังการดำเนินการและการบำรุงรักษาที่รวดเร็ว

แม้ว่า Cosmos DB จะประสบความสำเร็จสูงสุดในประสบการณ์การใช้งานและการบำรุงรักษาในฐานะทหารผ่านศึกที่คลานอยู่ในหลุมหลายครั้งฉันอยากจะเตือนทุกคน:

ไม่มีสถาปัตยกรรมที่สมบูรณ์แบบมีเพียงฉากที่เหมาะสมที่สุดเท่านั้น

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

1.ตัวเลือกของระดับความสอดคล้อง (Consistency Levels) เป็นประตูศิลปะ

กฎทางกายภาพที่ใหญ่ที่สุดของฐานข้อมูลแบบกระจายคือ

ทฤษฎีบท CAP

.Cosmos DB มี5ระดับที่แตกต่างกันตั้งแต่ Strong ไปจนถึง Eventual

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

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

บริการซื้อและเติมเงินบัญชีคลาวด์ Azure ของ Microsoft

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

2.การออกแบบที่สำคัญพาร์ทิชัน (Partition Key) กำหนดชีวิตและความตาย

ในโลก NoSQL คีย์พาร์ติชันคือประตูชีวิตของคุณหากเลือกคีย์พาร์ติชันไม่ดี (เช่นกด "ประเทศ" และ90% ของผู้ใช้อยู่ในประเทศจีน) จะทำให้เกิด

ฮอตสปอตพาร์ทิชัน (Hot Spotting)

: CPU และ RU ของพาร์ติชันทางกายภาพพื้นฐานบางพาร์ติชันเต็มในขณะที่พาร์ติชันอื่นๆไม่ได้ใช้งาน

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

ประการที่สี่เขียนไว้ในตอนท้าย

เมื่อมองย้อนกลับไปคนรุ่นของเราที่ทำคลาวด์คอมพิวติ้งและการใช้งานระบบและการบำรุงรักษาโชคดีมาก

ในอดีตพลังงานส่วนใหญ่ของเราใช้ไปกับการทำงานและการบำรุงรักษาของเครื่องพื้นฐานการขยายดิสก์และวิธีการซ่อมแซม "งานสกปรก" ด้วยตนเองด้วยการซิงโครไนซ์หลักและทาสคุณค่าหลักของฐานข้อมูล NoSQL แบบกระจายทั่วโลกบนคลาวด์เช่น Azure Cosmos DB อยู่ที่ความซับซ้อนของการดำเนินการและการบำรุงรักษาฐานข้อมูลแบบดั้งเดิม

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

เทคโนโลยีที่ซับซ้อนที่ทีมงานสามารถจัดการได้นั้นห่อหุ้มไว้ในปุ่มง่ายๆและ API ที่ใช้งานง่าย

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

บริการซื้อและเติมเงินบัญชีคลาวด์ Azure ของ Microsoft

1
← 返回新闻中心