הקדמה: למה ריבוי תחומי אחריות

תכנון יישומים ללא שרת עבור עמידות רב-אזורית כבר לא אופציונלי לארגונים הדורשים זמינות גבוהה וסובלנות לקויה.כעסקים נודדים עומסי עבודה קריטיים לענן, פריסה יחידה של רגולציה הופכת לנקודה אחת של כישלונות. - הנגרמת על ידי אסונות טבע, כישלונות כוח, או בעיות רשת - יכול לעצור פעולות, לפענוח חוויית המשתמש, ומובילה לאובדן משמעותי על ידי הפצת יישומים מרובים, כדי להבטיח אזורים מרובים של שירות, אם אתה יכול למנוע רכיבים פגומים ברחבי העולם.

ארכיטקטורות Serverless מתאים במיוחד עבור עמידות רב-אזורית כי הם מופשטים ניהול תשתיות, בקנה מידה אוטומטי, ושילוב עם שירותים מנוהלים אשר תמיכה באופן טבעי שכפול מחזורי וכשלונות. מאמר זה מספק מדריך מקיף לתכנון וליישם יישומים ללא שרת שנשארים חזקים על פני אזורים, מכסה את כל עקרונות עיצוב יסודיים כדי לפתח נתונים מתקדמים, רשתות, אבטחה, אסטרטגיות עלות.

הבנה של עמידות רב-אזורית

מה זה Multi-region Resilience?

עמידות רב-אזורית מתייחסת ליכולת יישום להמשיך לתפקד כראוי ובשיבוש מינימלי כאשר אזור ענן שלם הופך לבלתי זמין.זה כרוך בהפצה של עותקים של לוגיקה יישומים (תפקודים חסרי מנוחה, נקודות קצה של API, מעבדי אירועים) ומאגרי נתונים בשני אזורים גיאוגרפיים או יותר, ולאחר מכן באמצעות מנגנונים מתעמלים ואי-מונים כדי לכוון את בקשות המשתמש לאזור הבריא ביותר.

היתרונות של אדריכלות רב-אזורית ללא תשלום

  • (FLT:0) זמינות גבוהה ושיקום אסון: גם אם אזור שלם הולך לא מקוון, היישום נשאר נגיש מאזורים אחרים, מצמצם את זמן השבתה.
  • (FLT:0) שיפור ביצועים גלובליים: משתמשים 1FLT) להתחבר לאזור עם השקיפות הנמוכה ביותר, צמצום זמני העומס של דף ושיפור חוויית המשתמש הכוללת.
  • (FLT:0) ציות לרישום: 1.FLT (בבחירת אזורים ספציפיים לעיבוד נתונים ואחסון, באפשרותך לעמוד בדרישות תושבות נתונים (למשל, GDPR באירופה, SOC 2 בארה"ב).
  • (FLT:0) ,Scalability: 1:1 כל אזור בקנה מידה עצמאי על בסיס הביקוש המקומי, ואתה יכול להוסיף או להסיר אזורים ללא השפעה על האדריכלות העולמית.

אתגרים מרכזיים

(ה) בעוד היתרונות משכנעים, ריבוי-האזורים מציג מורכבות.(FLT:0Data ComplexencyFLT:1 בכל האזורים הוא מכשול גדול - שמירה על מסדי נתונים מסונכרנים במשרה חלקית ללא סכסוכים דורשות עצירות זהירות בין עקביות, זמינות וחלוקת סובלנות (משפט CAP) LT2 LT2Fsynreavealrated, כי יש להגדיל את רמות הסחר בין אזורי תחבורה מורכבים, כולל:

עקרונות עיצוב

כדי לבנות יישום רב-אזורי גמיש ללא שרת, בצע את עקרונות היסוד האלה:

  • (FLT:0) מרכיבים של Decouple:FLT:1ir השתמש אדריכלות מונחה אירוע עם תורים הודעה, אוטובוסים אירועים, פונקציות ללא שרת.זה מפחית תלות בין שירותים, מה שהופך את זה קל יותר להיכשל באופן עצמאי. לדוגמה, מערכת עיבוד הזמנה יכול לשלוח אירועים תור אמזון SQS או נושא אירוע Azure; הפונקציה צריכת יכול להיות פרוס בכל אזור ותהליך מן התור האזורי.
  • (FLT:0)שכפול נתונים: שכפול נתונים: ההרחבה של Azure Cosmos DB עם רב-master, Google Cloud Spanner, או CockroachDB (מסמך עצמי) עבור אחסון קבצים, השתמש באובייקט עם שכפול חוצה-אזור (למשל, אמזון S3 Cloud Spanner, או CockroachDB (מסמך אחסון עצמי) עבור אחסון קבצים, השתמש באובייקט עם אחסון ב-region Replication (למשל, Amazon S3 C3 או Azure C3 או Azure Cundancy Storage-G).
  • (FLT:0) התנועה של Intelligent routing:03FLT:1) השתמש מאזן עומס מבוסס DNS עם בדיקות בריאות.שירותים כמו AWS כביש 53, Azure Traffic Manager, או Google Cloud DNS יכול להפנות משתמשים לאזור הבריאות הקרוב ביותר.עבור היגוי מתקדם יותר (עקביות, גיאולוק, משקל), לשקול בקר משלוח יישומים גלובלי כגון Accel Global Accel או Azure Door Front.
  • (FLT:0)Automated Failover:FLT1) בדיקות בריאות ואזהרות ליישום לגילוי ההשפלה האזורית. השתמש ב-contover (למשל, עדכוני רשומות DNS, שינויים במדיניות ההנעה) ומכשיר את התהליך באמצעות תשתית כקוד (IaC) תסריטים ו- CI/CD. נמנעים מהתערבות ידנית במהלך אירוע.
  • (FLT:0) לוגיקה יישום ללא תנאי: 1 שמור על פונקציות ללא שרת ללא הגבלת זמן - לאחסן כל ישיבה או מידע המדינה בחנויות נתונים חיצוניות, משוכפלות (למשל, דינמודי, Redis Global Datahouse) זה מבטיח כי כל פונקציה בכל אזור יכולה להתמודד עם כל בקשה ללא תלות ממשלתית מקומית.

עיצוב אדריכלות רב-אזור

פעיל-עבורה נגד Active-Active

הבחירה האדריכלית הראשונה היא מודל ה-InpLT:0ive-passive ServerFlements-1LT, אזור אחד מטפל בסופו של דבר בכל תעבורת הייצור, בעוד אחד או יותר אזורים נשארים בטלים (עמודי מלחמה) אם האזור הפעיל נכשל, אתה מקדם אזור פסיבי פעיל פעיל כדי לפעול.

« « RESTING REST

יישום רב-אזורי טיפוסי מורכב מהמרכיבים הבאים, כל אחד מהם פרוס בכל אזור:

  • (FLT:0 Global Traffic נתב:FLT:1 A DNS מבוסס או מאזן עומס מארגן אשר מכוון את המשתמשים לאזור המתאים ביותר בהתבסס על עצלות, גיאוגרפיה ובריאות.
  • (FLT:0) רשם API:FLT:1 נהלים בקשות HTTP המתקרבות, אותנטיות, התנגשויות, מסלולים לפונקציות.
  • (FLT:0) פונקציות ללא שירות:FLT:1 ⁇ בכל אזור, אלה מטפלות בלוגיקה עסקית.הם יכולים להיות מופעלים על ידי API Gateway, אירועים מן התורים, או עבודות מתוכננות.
  • (FLT:0) צינור:0) צינור: 1FLT (אוטובוס אירוע גלובלי או אזורי (למשל, אמזון EventBridge, Azure Event Grid, Google Pub/Sub) שיכול לקדם אירועים ברחבי האזורים עבור סינכרון.
  • (FLT:0) מאגרי נתונים רגולטוריים: 1FLT:1 לכל אזור יש מסד נתונים מקומי המסנכרן עם אזורים אחרים באמצעות מנגנון השכפול של הספק.לדוגמה, דינמודי גלוב טבלאות באופן אוטומטי propagate כותב לכל העתקים.
  • (FLT:0 Global Data Store (אופציונלי): FIRLT:1 עבור עומסי עבודה הדורשים עקביות חזקה, השתמש במסד נתונים מבוזר ברחבי העולם כמו Google Cloud Spaner או CockroachDB.
  • שירותים:0 (Shared Services:FLT:1) שירותים המשמשים בכל האזורים - כגון ספקי זהות (Auth0, Amazon Cognito), תצורה חנויות ומנהלים חשאיים - יש לערוך באזור "ניהול" נפרד או להיות רב-אזור עצמו.

מודלים של קונסולות נתונים

שקיפות אירוע

רוב היישומים ללא שרתי רב-region משתמשים בעקביות בסופו של דבר, מכיוון שהיא מאפשרת זמינות גבוהה ושפל כותב.תחת מודל זה, כתיבה באזור אחד משכפלה באופן מסונכרן לאחרים.המסחר-off הוא זה קורא באזורים אחרים עשוי לראות נתונים מבוישים לתקופה קצרה (בדרך כלל שניות) זה מקובל על מערכות ניהול תוכן, קטלוגים, או שירותים חברתיים כמו DDBs ו-DDBs.

יציבות חזקה

עבור יישומים שבהם נתונים מסולקים אינם מתקבלים על הדעת – כגון עסקאות פיננסיות, ניהול מלאי או אימות משתמש – עקביות חזקה נדרשת. Google Cloud Spanner מספקת עקביות חיצונית (כמו מסד נתונים חד-פעמי) ברחבי העולם. CockroachDB מציעה גם עקביות חזקה עם הסכם סחר בר-שוויון בין latency ו-Reactency. Azure DB מציעה רמות מורכבות, כולל חריפות רבה על פני אזורים (עם טווח רחב יותר) שיכולה להציג זמינות גבוהה יותר.

החלטה סכסוכים

בהגדרות פעילות-אקטיביות, במקביל כותב לאותו פריט באזורים שונים יכול לגרום לסכסוכים.יישומים ללא שרת צריכים לתכנן אסטרטגיות לפתרון סכסוכים: אחרון-קולוניים (LW) עם פעמיםtamps הוא פשוט אך עלול לאבד עדכונים; יישום לוגי מיזוג מוגדר (למשל, באמצעות פתרונות מותאמים אישית) הוא חזק יותר; או באמצעות סוגי נתונים ללא קונפליקטים (CRs) בסכסוכים מיוחדים במסד נתונים רחב יותר.

ניהול תעבורה וסחר גלובלי

Global Load Balancers ו-DNS

(ה) בחירת שירות ניהול התנועה הנכון היא קריטית.FLT:0AWS כביש 53FLT:1 מציע חסימה מבוססת שקיפות, גיאולוק, מדיניות מואצת ומשוללת, ומשתלב עם בדיקות בריאות כדי לזהות את האזור כשל:2 מנהל תנועה Fronteency 3:FLT 3 מספק יכולות דומות ותומכת בעדיפות עבור מערכות פאסיביות פעיל (DNSFIRDER) ו-DNSFREROSTERSTERIEFITION (DEFIFEROSTEROSTEROSTEROSTEROSTEROSTEROSTEROSTEROSTEROSTEROSTER DITION) אשר ניתן ל-DNSFRERDNSFRERDERDNSFRERDNSFREROSTEROSTERDER LTERDERDERERERESTEROSTER LTEROSTEROSTER LTERSTEROSTER LTERSTER LTER LTEROSTEROSTER LT 5.

רשת הפצה: Cross-region Networking

סינכרוניזציה של נתונים ותקשורת בין-אזורית דורשים לעתים קרובות חיבורים בעלי עוצמה גבוהה, נמוכה-לאנטית.ספקי ענן מציעים עמודות רשת פרטיות: AWS Direct Connect או VPC Peering ברחבי האזורים, Azure ExpressRoute, Google Cloud Interconnect. for Serverless function that need to call Each or Databases Over Zone, השתמש בנקודות קצה אזוריות עם רשתות פרטיות כדי להפחית את הגמישות ולהימנע מ-ection, אך למנוע קידוד (אך) מאשר , למנוע קידוד (אך) מאשר , למנוע קידוד) מאשר סודיות).

CDN ו- Edge Caching

רשת משלוח תוכן (CDN) יכולה להפחית את העומס על אזורי המקור ולשפר את חוויית המשתמש.שרת נכסים סטטיים (תמונות, תסריטים) ואפילו תגובות דינמיות מ- CDN כי קמצנים במקומות קצה. השתמש באסטרטגיות של cache-invalidation (למשל, טיהור על ידי נתיב או תג) כדי לעדכן במהירות לאחר כתיבת טקסט.

אבטחה ברחבי האזור

זהות וניהול גישה

השתמש ספק זהות מוזן כדי לנהל משתמשים ברחבי האזורים.לדוגמה, אמזון Cognito ניתן לשכפל בריכות משתמשים באזורים (כמו עדכונים אחרונים) או שאתה יכול להשתמש ב- IDP גלובלי כמו Auth0. ודא כי כל אחד מהפונקציות של האזור יכול לאמת בקשות על ידי אימות אסימונים נגד IDP, אשר לעתים קרובות מתאר באזור מרכזי עם זמינות גבוהה.

נתונים הצפנה

כל הנתונים במעבר בין אזורים צריך להיות מוצפנים עם TLS. השתמש ברשת פרטית שבו ניתן להימנע מסגירת האינטרנט הציבורי.עבור נתונים במנוחה, לאפשר הצפנה עם מפתחות המנוהלים בשירות ניהול מרכזי (למשל, AWS KMS, Azure Key Vault) להיות זהיר עם שכפול מפתח - ייתכן שתצטרך לשחזר את אותו מפתח CMS באזורים (AWS תומך כעת במפתחות של רגולציה) או להשתמש באזור אבטחה שונה בהתאם למדיניות האבטחה שלך.

קובצי ה-SDS ו- Web Application Firewall

השתמש בשירותים גלובליים כמו AWS Shield Advanced, Azure DDoS Protection, או Cloudflare כדי להגן על היישום שלך מפני התקפות הכחשה מבוזרות של שירות.A Web Application Firewall (WAF) בקצה יכול לבדוק בקשות נכנסות ולחסום תנועה בהתבסס על IP, אזור גיאוגרפי או דפוסי חתימה.

מעקב ושקיפות

המונחים: metrics

יומני אגרגגייט, מדדים, ושרידים מכל האזורים לפלטפורמת observability מרכזית.שימוש בשירותים כמו AWS CloudWatch עם הדבקה לטווח ארוך / regation לטווח ארוך, Azure Monitor עם סביבת עבודה של Log Analytics, או Google Cloud's התפעולי של גוגל (לשעבר Stackdriver) באופן אלטרנטיבי, השתמש בכלים של צד שלישי כמו Datadog או New Relic תמיכה בלוחמת נתונים רב-אזורית, המבטיחה של כל תוקף, ועדכונים, כל אחד, ועדכונים, כל אחד, ושיעורי בריאות, כל אחד, ושיעורים, ושיעורי, באופן עצמאי.

בדיקות בריאות ואזהרות

בדיקות בריאות של כל אזור של נקודות קצה של API ושירותים אחוריים.אלה צריכים לבדוק את הסטטוס של חנות הנתונים, תורי הודעה ופונקציות. הגדר אזעקה כי גורם כאשר שיעור השגיאה של האזור עולה על סף או כאשר ניכויים לב.אינטר את האזעקות האלה עם נתב התנועה הגלובלי שלך כדי לעבור באופן אוטומטי תנועה מאזור לא בריא (למשל, 53 נתיב דרך בדיקות בריאות אפקטיביות).

הנדסה כאוס

באופן קבוע לבדוק את ההתקנה הרב-אזורית שלך על ידי הזרקת תקלות. השתמש בכלים כמו AWS Fault הזרקת סימולטור, Azure Chaos Studio, או גרמלין כדי לדמות את מחוץ לאזור, את הגמישות ברשת, או כשלי מסד נתונים.זה מבטיח כי מנגנוני הכשלון שלך לעבוד כפי שצפוי וכי הצוות שלך מוכן לאירועים אמיתיים.

שיקולים

המונחים: Redundancy

משאבים ריצה באזורים מרובים לפחות מכפילים את עלות התשתית שלך.כדי להתאים, להשתמש ב- (FLT:0warm StandbyFLT:1 עבור אזורים פסיביים - בקנה מידה נמוך יותר של מטבע, להשתמש במקרים קטנים יותר מסד נתונים, ולהפחית את הניתוק באמצעות ההתקנה פעילה, שני האזורים הם תפעוליים לחלוטין, אבל אתה עדיין יכול להיות משאבים בגודל הנכון בהתבסס על הפצה בפועל.

עלויות העברת נתונים

העברת נתונים של נתונים חוצה גבולות עלולה לצבור במהירות. שמור על שכפול נתונים מקומי בתוך אותו עמוד השדרה של ספק ענן כדי להימנע מדמי egress באינטרנט ציבורי.עדיף שכפול סינכרוני כדי להפחית את נפח הסינכרון בזמן אמת.עבור עומסי עבודה על-ידי קורא, לשקול לעתים קרובות דבק גישה לנתונים בכל אזור כדי למזער את צלב.

ניהול המחירים

כמה תכונות מרובות-region מגיעים פרמיה.דינמודי שולחנות גלובליים חיובים בטבלה עבור תנועה שכפול; קוסמוס DB רב-master מכפיל את העלות האמתית; Google Cloud Spanner חיובים עבור נקודות לאזור. להעריך את העלות הכוללת של הבעלות (TCO) עבור כל ספק, לשקול באמצעות מודל עקבי יותר עבור נתונים לא קריטיים כדי לחסוך בעלויות.

Best Practices and Implementation Roadmap

  1. (FLT:0)Start עם אזור אחד, ולאחר מכן להוסיף שנייה עבור DR.Felo1 פיתוח ובדיקת תהליכי כושל לפני גלגול. השתמש בתשתיות כקוד (Terraform, Pulumi, AWS CDK) כדי לפרוס ערימה זהה בכל אזור.
  2. (FLT:0) בחר ספק ענן עם תמיכה רב-אזורית ילידים.FLT:1 AWS, Azure ו-Google Cloud מציעים שירותים ללא שרת עם יכולות של רגולציה על פני השטח.
  3. (FLT:0) השתמש ב- DNS גלובלי עם בדיקות בריאות.BuildFLT:1) התנועה בכביש לאזור הראשי בתחילה, עם אזור משני על גבי עמוד השדרה, מתג בהדרגה פעיל פעיל-אקטיבי ברגע שאומתת את עקביות הנתונים.
  4. (FLT:0) שכפול נתונים עם פתרון סכסוכים.IRLT:1 עבור מסדי נתונים, השתמש ב-LW או לוגי מיזוג מותאם אישית. להגדיר ניטור עבור שכפול סכסוכים.
  5. (FLT:0) ,Test Failover באופן קבוע.FLT:1show תרגילים הכאוס ברבעון. Measure Recovery time Objective (RTO) ו-Return Point אובייקטיבי (RPO) כדי להבטיח שהם עומדים בדרישות העסקיות שלך.
  6. (FLT:0)Optimise for latency.veFLT:1) השתמש ב- CDN עבור תוכן סטטי ודינמי. Place compute function Close to theמשתמשים שהם משרתים.Prefer Event-oriented Communications over synchronous cross-region.
  7. (FLT:0) סודיות כל דבר.FLT:1 , נתונים מוצפנים במעבר ובמנוחה. השתמש בסודות מנוהלים ובפדרציה זהות.ליישם גישה ממוקדת הגנה עם WAF, הגנת DDoS, ולפחות-privilege מדיניות IAM.

מסקנה

תכנון יישומים ללא שרת עבור חוסן רב-אזורי הוא יכולת קריטית עבור כל ארגון מחשוב ענן שמשרת קהל גלובלי או דורש את הרמות הגבוהות ביותר של זמינות. על ידי ביצוע עקרונות של decoupling, מצבות, שכפול נתונים, וסחרור תנועה אינטליגנטי, אתה יכול לבנות ארכיטקטורה שעומדת בפני כישלונות אזוריים תוך מתן שקיפות נמוכה למשתמשים בכל מקום, בעוד אתגרים כגון עלות נתונים, אבטחה, וגמישות קבועה, תמיד יכול להיות מסוגל לשפר את היציבה שלך.

לקריאה נוספת, מומלץ להתייעץ עם התיעוד הרשמי של FLT:0AWS multiregion Architectsssph:1, FLT:2אזור מחדש של תבניות עיצוב בלתי יעילות של LT 3, ו-FLT:4 האמינות הטובה ביותר של Google Cloud אמינות פרקטיקות FLT:5 משאבים אלה מספקים פרטים טכניים עמוקים יותר על יישום הדפוסים המדוברים במאמר זה.