צירים אזוריים
(סעיף: מערכת אקולוגית ורשת)
1) מדוע יש צורך בבקתות אזוריות
מרכז אזורי הוא מקבץ מקומי של מחשוב, אחסון ושערי רשת המיוטבים עבור:- Latency ו ־ UX: קרבה למשתמש (RTT authory, TTI/TTF AtTF).
- ציות ותושבות: אחסון/עיבוד נתונים בתחום השיפוט.
- יציבות ויכולת: פריקת הליבה הגלובלית, עבודה עם בידוד חלקי של האזור.
- כלכלה: ירידה בתעבורה הבין-אזורית, CDN/caches מקומיים, תעריפי IX/מציץ מועדפים.
2) תפקידים מרכזיים אזוריים
1. Edge/Gateway - שכבת קלט (HTTP/2/3, gRPC, WebSocket, QUIC), קצב הגבלה, QOS, WAF.
2. קורא/API - RPC, אינדקסים, שירותי חיפוש, תצוגות ממשיות מקומיות.
3. חישוב/זרם - עיבוד אירועים, צבירה, מסננים נגד הונאה.
4. Data Plane - TSDB/Tore Showcases, איחסון אובייקטים עבור נתונים ”חמים”.
5. ציות/KYC/KYB - שילוב מקומי עם ספקים וקטלוגים של סנקציות.
6. תשלומים/PSP - שיטות תשלום מקומיות ורמפות on/off.
7. גשר/ממסר (Bridge/Relay) הוא מסוף הודעות מתחלף עם חוצץ דק מקומי.
8. יכולת תצפית - מדדים/רישומים/שבילים, דגימות סינתטיות.
9. מינהל/גישה - ספריות של תפקידים, מפתחות ומגבלות למשתתפים אזוריים.
3) טופולוגיות פריסה
Hub-and-Speak: ”מרכז ראשי” + השרצה אזורית עם אוטונומיה חלקית.
Active-Active (Multi-Primary): פעולה סימטרית של מספר מטבעות עם שכפול נטול קונפליקטים (CRDT/leading logs).
אקטיבי-פסיבי: שמורה חמה עם שכפול תקופתי ורולובר DR.
Edge-Tiered: צמתים בעלי קצה דק (CDN, WebSocket Funder out).
הבחירה תלויה בדרישות סיום/עקביות, עלויות ערוץ ואילוצים רגולטוריים.
4) מדיניות גיאומרשרוטיזציה ותושבות
GeoDNS/Anycast + Latency-Aware LB: אנו שולחים בקשות למרכז הבריא הקרוב ביותר.
תחום השיפוט Routing: נתונים של נושאים (EU/UK/TR, וכו ') נשארים במרכז המתאים; העברות בין-זמניות, רק ברשימות הלבנות.
Cock SOR (ניתוב סדר חכם) עבור אזורים: לוקח בחשבון RTT, עלות ערוץ, דגלי תאימות, עומס מכסות ו-SLO.
כשל במקום: כאשר קישורים חיצוניים מושבתים, הרכזת ממשיכה לשרת בקשות ”סופיות בלבד” ופעולות מקומיות.
5) נתונים: ספריות, שכפולים, שיעורי אחסון
שיעורי נתונים:- p0 - תשלומים/גשר/זיהוי (מגורים קפדניים, סינכרון של ”אותות” רק באגרגטים/חשיש).
- מאורעות P1 - תוצר ואגרגטים (תצוגה מקומית + יצוא מחזורי).
- P2 - דיבאג/לוגים (דחיסה אגרסיבית, שימור ארוך באזור).
- אירועים - משלוח יומן עם סדר בתוך המפלגה (מפתחות מחוזיים).
- אחסון - asynchronous MMR/CRDT או גיבויים בתמונה.
- התמחות: מדיניות DLP/PII, אסימון, מפתחות הצפנה נפרדים לכל אזור.
6) ביצועים והצטיידות
מטמונים: מטמון קצה (TTL קצר), קריאה דרך על API, מטמון שלילי.
מידע חם: בלוקים/אצוות N אחרונים, אינדקסים חמים על שיטות פופולריות.
מחצבי DA/Batch עבור L2/bridges: תור מקומי של פרסומים עם אישורים.
TPS מותאם לחומרה: $/TPS ותכנון קיבולת $/RPS המבוסס על מחירים אזוריים.
7) QOS, תורים ותיקי גב
P0/P1/P2 כיתות באוטובוס וברמת שער; תורים ומכסות נפרדים.
מחיצה: ”אזור” דייר ”נושא” מפתח לתפוקה חזויה.
DLQ: הסגר של הודעות ”ארסיות”, רטריי עם ג 'יטר.
בקרת כניסה: הגבלה של RPC ”יקר” (לפי טווח, מסננים, גבולות).
8) מרכז אזורי SLI/SLO
SLI:- P95 Latency (Edge/API), Geo-Hit Ratio, Queue-Lag p95, Finality p95 (bridge/rays), Geo-Hit Ratio (חלק מהבקשות הוגשו באזור), Offices Pass%.
- Edge/API p95 על 350-450, זמינות על 99. 95%.
- רעננות (P1) p95 3min; תור-לאג P0 p95 בלוק 2.
- יחס Geo-Hit - 85% (ללא הופ בין-זמני).
- ד "ר RTO, 15 דקות, RPO 5 דקות עבור P0.
9) יכולת תצפית ולוחות מחוונים
Ops Core: Latency/שגיאה/תור-lag/prevent by QOS class.
Geo View: RTT חום, Geo-Hit Ratio, תנועה בין-אזורית.
ציות: תושבות, סנקציות פוגעות, יומני ייצוא.
Bridge/DA: p95 finalization, exchange/reorg, publishing againss.
קיבולת & עלות: TPS_per_$, בקשה CTS/1k, שימוש%.
10) ד "ר והתאוששות
ערוצי גיבוי: Independent IX/Spectures, מוצפנים תעלות תקשורת בין רכזת.
מצב מבודד: ”סופי בלבד”, API השפלה, שטרות מקומיים, ואחריו להתפייס.
תרגילים קבועים: כיבוי טרנס-אטלנטי, אובדן תובע/מפיקים, ”עצבנות/הפסדים” בגבולות.
11) כלכלה ותכנון כושר
CTS (עלות לשרת) לכל 1 k מבצעים: ערוצים + חישובים + רישיונות אחסון +.
TPS_per_$: רוחב פס בר קיימא לאחד $ של תשתית.
אופטימיזציה מציצה/IX: נקודות עמיתים מקומיות, הודעות קידומת, דחיסה וקשיחות.
מודל Tier: T1 (סט שירותים), T2 (אנליטיקה בדם מלא), T3 (מחסנית מלאה + DA/bridge).
12) תצורות התייחסות
12. מדיניות ניתוב 1 (YAML)
yaml routing:
geodns:
regions: [eu, uk, tr, la, apac, na]
policies:
prefer_local: true fallback_chain: [nearest_healthy, master_hub]
compliance:
residency:
eu: ["eu"]
uk: ["uk"]
tr: ["tr"]
export_whitelist:
eu: ["anonymized_metrics","hash_anchors"]
slo_gates:
p0_latency_p95_ms: 400 queue_lag_p95_ms: 2000
12. 2 K8s שער קצה + HPA
yaml apiVersion: apps/v1 kind: Deployment metadata: { name: edge-gw, labels: { region: eu } }
spec:
replicas: 4 template:
spec:
containers:
- name: gw image: org/edge-gw:2. 7. 0 ports: [{ containerPort: 443 }]
env:
- { name: QOS_CLASSES, value: "P0,P1,P2" }
- { name: DENY_HEAVY_RANGE, value: "eth_getLogs>5000" }
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: { name: edge-gw-hpa }
spec:
minReplicas: 4 maxReplicas: 24 metrics:
- type: Pods pods:
metric: { name: request_latency_p95_ms }
target: { type: AverageValue, averageValue: 350m }
12. 3 קפקא: חלוקת אזור/אוהל
yaml topic: "events. p0"
partitions: 96 config:
min. insync. replicas: 2 cleanup. policy: delete compression. type: zstd message. timestamp. type: CreateTime
12. 4 מדיניות תושבות וייצוא
yaml data_policy:
pii: { tokenized: true, cross_region_export: "deny" }
exports:
anonymized_metrics: { allowed: ["eu","uk","na"], schedule: "5m" }
hash_anchors: { allowed: ["eu","uk","na","apac"], cadence: "15m" }
13) תרשימי נתונים ושאילתות
ספרייה של מגרשים וקישורים
sql
CREATE TABLE hubs (
hub_id TEXT PRIMARY KEY,
region TEXT, tier SMALLINT, status TEXT,
rtt_ms INT, cost_per_1k_ops NUMERIC,
created_at TIMESTAMPTZ
);
CREATE TABLE interlinks (
src_hub TEXT, dst_hub TEXT,
capacity_mbps INT, cost_per_gb NUMERIC,
encrypted BOOLEAN, health TEXT,
PRIMARY KEY (src_hub, dst_hub)
);
יחס Geo-HIT
sql
SELECT region,
100. 0 SUM(CASE WHEN served_in_region THEN 1 ELSE 0 END)/COUNT() AS geo_hit_pct,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY freshness_s) AS freshness_p95
FROM req_stats
WHERE ts >= now() - INTERVAL '24 hours'
GROUP BY region;
TPS_per_$
sql
SELECT hub_id,
AVG(tps_sustained) / NULLIF(AVG(cost_usd_hour),0) AS tps_per_usd
FROM hub_perf
WHERE ts >= now() - INTERVAL '7 days'
GROUP BY hub_id;
14) תקנות הפעלה
יום: דו "ח SLO (latency/laue-lag/treeness), ביקורת יצוא/מגורים, מעמד של פנים בין רכזות.
שבוע: כיול של מכסות/QOS ו-GeoDNS, חישוב מחדש של CTS/TPS_per_$, שינוי של מטמונים ואינדקסים חמים.
תרגילי DR (מצב מבודד, החלפת ערוצים), בדיקת DA/Bridge.
לפני השחרור: Canary rollout על ידי מרכז/אזור אחד, SLO Gates ותוכנית Rollback.
15) תקריות משחק
א. נפילת הערוץ הבין-אזורי
1. עבור לכוננות IX, אפשר כיווץ/חבורות;
2. Hub במצב ”סופי בלבד”;
3. ייצוא תור - לחוצץ, עם גבול;
4. תקשורת עם משתתפים, לאחר המוות.
ב. השפלה מקומית של API p95
1. עדיפות P0, אפשר P2-throttle;
2. הגדל את העתקי הקצה/API;
3. אפשר מטמון לשיטות חמות בלבד;
4. אבחון שאילתות כבדות, הכחשת כללים במידת הצורך.
הפרה של תושבות
1. בלוק יצוא חוצה-אזורי מיידי;
2. רדוקציה/ייצוא הפוך;
3. הודעת DPO/Competition;
4. עדכון מדיניות ובדיקות.
ד. ארגון מחדש/פסגות כשל התובע המחוזי
1. הגדל מחלוקת K/Window;
2. אפשר ”סיום מושהה”;
3. הודע לצרכנים;
4. דוחות תוספת.
אי. טעינת רכזת לא אחידה
1. כוונון מחדש של GeoDNS/Latency-LB;
2. מכסה/מחיר שיווי משקל;
3. תנועה מעצבת לשייכים/מקורות.
16) רשימת מימושים
1. בחר אזורים/שטח שיפוט ומטרה SLOs.
2. טופולוגיית עיצוב (Hub-Speak או Active-Active), ערוצים/IX.
3. תפקידי פוסט: Edge/API/Compute/Data/Bridge/Complication.
4. הגדרת תושבות, ספריות ומדיניות ייצוא.
5. אפשר QOS, תורים, מטמונים, ותרמיל גב.
6. העלה את יכולת התצפית ואת לוח המחוונים Geo/Complication/Perf/Cost.
7. הגדרת DR (RTO/RPO), תרגילים ומצב מבודד.
8. הזן מדדים כלכליים (CTS, TPS_per_$) ותקציב.
17) גלוסרי
Geo-Hit Ratio - נתח הבקשות המוגשות על ידי המוקד ”שלה”.
RPO/RTO - איבוד נתונים/התאוששות מטרות זמן.
Hub-ו-דיבר הוא צומת מרכזי עם מקבצים היקפיים.
מבני מידע לשכפול ללא קונפליקט.
CTS לכל 1 k מבצעים - העלות של שירות 1000 פעולות.
קיבולת TPS_per_$ לדולר של תשתית.
שורה תחתונה: מחסומים אזוריים הופכים את הרשת הגלובלית לסדרה של תחומים מיוטבים מקומית, צייתנים וגמישים. בהליכים ברורים של SLO, תושבות, QOS ו-DR, הם מפחיתים את האחוריות ואת העלות, מגבירים את האמינות ומאפשרים קיבולת אקולוגית ללא אובדן יכולת ניהול.