طوبولوجيا السحب المتعددة
1) عندما يكون هناك ما يبرر السحابة المتعددة
السائقون:- الموثوقية/التوافر: مناطق فشل مستقلة على مستوى مقدمي الخدمات.
- السيادة/الامتثال: التخزين/المعالجة حسب الولايات القضائية (إقامة البيانات).
- إدارة المخاطر: الحد من عوامل الشراء/الأسعار لدى البائعين.
- الجغرافيا/الأداء: أقرب إلى المستخدم ومصادر البيانات.
- الخدمات الخاصة: الوصول إلى أفضل القدرات «المتخصصة» لمختلف السحب.
- التعقيد الكبير الذي تتسم به القدرة على الرصد/العمليات.
- النمو في قيمة الخروج والكمون بين مقدمي الخدمة.
- → نماذج/حصص/حدود مختلفة للإدارة المتكاملة للمواد/الشبكات المزيد من المخاطر التشغيلية.
2) الأنماط الطوبولوجية
3) طبقة الشبكة والتوجيه
3. 1 تسجيل الدخول العالمي
GSLB/DNS routing: latency-/health-based; TTLs قصيرة إلى نوافذ الهجرة.
Anycast + L7 proxy: IP واحد، التوجيه الصحي الإقليمي.
السياسات حسب الولاية القضائية: حركة المرور بالحجب الجغرافي/التثبيت الجغرافي.
python def pick_cluster(client, intent):
вход: ip, geo, tenant, feature allowed = filter_by_compliance(client. geo) # sovereignty healthy = [c for c in allowed if sdo (c). ok and slo(c). ok]
return argmin(healthy, key=lambda c: latency_estimate(client, c))
3. 2 الاتصال بين السحابة
'1' القنوات الخاصة/التحديق حيثما أمكن ذلك ؛ خلاف ذلك - TLS + mTLS عبر الإنترنت.
التحكم بالخروج: التجميع/الضغط، المخابئ/المجمعات المحلية.
الشبكات كرمز: Terraform/Blueprints وسياسات CIDR والطرق وبوابات الخروج.
4) البيانات والاتساق
4. 1 نماذج
نادرًا ما يكون الاتساق القوي عالميًا بين السحابة واقعيًا (زمن الوصول/الشبكات/التكلفة).
حدث براغماتي: مركز السيطرة على الأمراض ثنائي الاتجاه (التقاط بيانات التغيير) مع حل النزاعات.
CRDT/idempotency: للعدادات/المجموعات/السجلات - الهياكل التبادلية.
4. 2 أنماط
ازدواج الكتابة مع outbox: تسجيل حدث المعاملات → الوسيط → تكرار إلى سحابة مجاورة.
اقرأ محليًا/اكتب إلى المنزل: يكتب إلى منطقة/سحابة «المنزل»، ويقرأ - محليًا (مع الإصدارات والسياسات القديمة).
حماية الدماغ المنقسم: الكشف عن الاختلاف، «التعويض» (ملحمة)، التحكيم اليدوي للثوابت النقدية.
DB → Debezium/stream → Events(topic@vN) → Cross-cloud relay → Apply w/ resolver resolver: prefer_higher_version prefer_home business_rule()
4. 3 تخزين الكائنات
تكرار غير متزامن للدلاء، التجزئة/البيانات، التخلص.
سياسات ILM (الساخنة/الدافئة/الباردة) مستقلة عن السحب.
قواعد السيادة: «PII لا تترك UA/EEA» - يتم التحقق من صحتها كرمز.
5) الهوية والأسرار والمفاتيح
اتحاد الهوية: بطاقة هوية واحدة، رموز قصيرة العمر، صندوق OIDC على خطوط الأنابيب.
الأسرار: KMS/HSM لكل تجريد من فئة السحابة + Vault ؛ المفتاح المزدوج للتناوب/المفاتيح.
PoLP/ABAC: الحقوق القائمة على السمات (السحابة، المنطقة، env، data_class).
مجالات التشفير: مفاتيح الجذر المختلفة للولايات القضائية → محو التشفير حسب النطاق.
6) البيئة التنفيذية: المجموعات والشبكات
الرقاقات المتعددة (K8s): مجموعة واحدة لكل سحابة/منطقة ؛ السيطرة على الأسطول عبر GitOps (ArgoCD/Fleet).
Сервис - меш: mTLS, referities, circuit-breakers, failover policies cross-group.
- الخدمات الثابتة → في مكانها
- → واجهات برمجة التطبيقات التفاعلية في كل سحابة (Active/Active).
- دفعة/ETL → نوافذ «خضراء »/منطقة رخيصة (مدركة للكربون/التكلفة).
rego package placement
allow[cloud] {
input. service. pii == false cloud:= input. clouds[_]
cloud. features. contains("cheap_gpu")
}
deny["PII outside allowed region"] {
input. service. pii == true not input. target_region in {"eu-central","eu-north","eu-west"}
}
7) إمكانية الرصد و SLO في السحابة المتعددة
ملصقات متعددة الإيجارات: «سحابة»، «منطقة»، «مستأجر»، «بيانات _ نطاق».
SLI/SLO لكل سحابة وعلى مستوى العالم: «متاح عالميًا إذا كانت السحابة ≥1 متاحة».
جمع القياس عن بعد: محليًا + التجميع مع التحكم في الخروج.
الآثار: المعرف الضئيل العالمي، انتشار السياق، أخذ العينات القائمة على الذيل بواسطة الذيول.
لوحات معلومات المقارنة: A مقابل B لكل نقطة نهاية/p99/حرق ميزانية الخطأ.
8) SDLC/IaC و «السياسات كمدونة»
دليل أحادي واحد لـ IaC: وحدات/أكوام المزود، ثوابت (علامات، شبكات، تشفير).
GitOps: بيانات إعلانية، اكتشاف الانجراف، البيئات الترويجية.
اختبارات المطابقة: عقود واجهة برمجة التطبيقات/الأحداث، جزر الكناري لكلا السحابين.
بوابات الإصدار: كتلة معرضة لخطر انتهاك SLO في سحابة واحدة (توقعات معدل الحرق)، في حالة عدم وجود مطابقات للسيادة.
yaml gate: multi-cloud-slo-and-compliance checks:
- slo_burn_rate(global) < 1. 0
- slo_burn_rate(cloud:A) < 2. 0
- compliance_rule("pii_in_region") == pass
- egress_forecast < budget on_fail: block_release
9) التكلفة والكربون (FinOps/GreenOps)
مقاييس الوحدة: "$/req"، "$/GB-ext'،" gCO₂e/req ".
توجيه التكلفة/الكربون للدفعة غير الحرجة: الساعات/المناطق الرخيصة/الخضراء.
سقف الخروج: ميزانية لحركة المرور بين السحابة ؛ المخبأ/التجميع/الضغط/TTL.
RI/SP/الاستخدام الملتزم في كل سحابة + «طبقة مرنة» على الفور/قابلة للتفريغ.
10) فشل الاختبار والتمارين
أيام اللعبة: «إطفاء السحابة A»، «إبطاء قاعدة البيانات»، «اختراق حدود الخروج».
نقاط التحقق: RTO/RPO، وقت تقارب DNS، لفة ميزة العلم، سلوك ذاكرة التخزين المؤقت.
الفوضى تدخن في الإطلاقات: لا ينبغي أن يؤدي تدهور التبعيات إلى سلسلة من عمليات إعادة التدوير.
11) الأمن والخصوصية والامتثال
Zero-Trust: mTLS بين الخدمات/السحب، توقيع القطع الأثرية، SBOM.
DPA/السيادة: كتالوجات مجموعة البيانات، قواعد التوطين، Legal Hold على قمة ILM.
الأسرار والمفاتيح: مجلة التناوب، وكتب اللعب تساوم/تبديل القتل.
خطوط الويب والتكامل الخارجي: التوقيع، ومكافحة إعادة التشغيل، ونقاط النهاية الإقليمية.
12) نماذج تكامل البيانات/الأحداث
12. 1 جسر كافكا ثنائي الاتجاه (فكرة):
cloudA. topicX ⇄ relayA→B ⇄ cloudB. topicX cleanup. policy=compact,delete key-based routing idempotent producer
12. 2 جدول خارجي وترحيل:
sql
-- outbox id uuid pk, aggregate_id, type, payload jsonb, version int, created_at timestamptz
-- transactional insertion with domain table change
بعد ذلك، يقرأ الموصل صندوق الخروج وينشر الحدث إلى الوسيط المحلي + التتابع.
12. استراتيجية الصراع 3 (زائفة):
python def resolve(local, remote):
if local. version > remote. version: return local if remote. version > local. version: return remote equal versions: domain rules return business_tiebreak (local, remote)
13) الأنماط المضادة
"اسحب كل شيء كما هو إلى سحابين. "ضاعف الصعوبة دون الفوز.
المعاملات المتزامنة بين السحابة على المسار الساخن.
مفتاح تشفير عالمي واحد لجميع السحب/المناطق.
سجلات/مسارات مع مؤشر الاستثمار الدولي دون إخفاء ودون قواعد تحديد المواقع.
لا توجد قياسات خارجية (التوافر الحقيقي مرئي فقط في صفحة حالة مقدم الخدمة).
لا توجد كتب لعب/تدريبات - لا يعمل DR في الوقت الحالي X.
سلسلة من عمليات إعادة التدوير أثناء تحلل سحابة واحدة (بدون محددات/تظليل/قواطع).
الفواتير غير المتوقعة غير محسوبة للخروج.
14) قائمة مراجعة المهندس المعماري
1. محركات متعددة السحب مصاغة (SLO/DR/sovereignity/cost) ؟
2. النمط المختار (AA/AP/DR-ONLY/Poly-Service) و RTO/RPO الملتزم به ؟
3. خطة الشبكة: GSLB/Anycast، عينات صحية، غطاء خروج، قنوات خاصة ؟
4. البيانات: CDC/CRDT/ثنائي الكتابة، قواعد حل النزاعات، صندوق الخروج ؟
5. السيادة: خريطة البيانات/المناطق، والسياسيون كرمز وبواباتهم ؟
6. IAM/الأسرار: الاتحاد، الرموز القصيرة العمر، KMS حسب المجال ؟
7. المجموعات/الشبكة: استراتيجية الفشل، الحدود/الفواصل/المهلات ؟
8. إمكانية الملاحظة: الملصقات «السحابة/المنطقة»، SLO لكل سحابة وعلى مستوى العالم، المواد الاصطناعية الخارجية ؟
9. SDLC/IaC/GitOps: كتالوج واحد، اختبارات المطابقة، بوابات الإطلاق ؟
10. FinOps/GreenOps: مقاييس الوحدة، ميزانية الخروج، نوافذ الدفعة «الخضراء» ؟
11. التدريبات: أيام اللعبة العادية والبروتوكولات وإعادة الاختبارات ؟
12. خطة الخروج: تصدير البيانات/الأشكال/المواعيد النهائية، المصدر الثاني للخدمات الرئيسية ؟
15) تكوينات عينات صغيرة
15. 1 سياسة توجيه الولاية القضائية (YAML الزائفة):
yaml route:
pii:
allowed_regions: ["eu-central","eu-north","eu-west"]
deny_cross_cloud: false analytics:
allowed_regions: ["eu-","us-"]
prefer_low_carbon: true weights:
eu-central@cloudA: 60 eu-central@cloudB: 40
15. 2 عينة صحية لـ GSLB:
http
GET /healthz
200 OK x-region: eu-central x-slo: ok at-risk breach
15. 3 Failover-feature-flag (pseudocode):
python if slo_at_risk("cloudA", "payments"):
route. weight["cloudA"] -= 20 route. weight["cloudB"] += 20 enable_stale_rates(ttl=1560)
استنتاج
السحابة المتعددة هي تخصص هندسي وليست تسمية. إنه يتطلب دوافع واضحة، واختيارًا واعيًا للطوبولوجيا، وعملًا مدروسًا مع البيانات، وأتمتة قوية وسياسات صارمة. إذا قمت بقياس المخاطر والتكلفة، وبناء الشبكات والبيانات «وفقًا للكتاب المدرسي»، وتدريب الإطارات والتوجه نحو البساطة، فإن النظام الأساسي متعدد السحابة سيمنحك الاستقرار والمرونة والحرية - دون مفاجآت في الفواتير ودون المساومة على تجربة المستخدم.