Table of Contents

האבולוציה לקראת אדריכלות מרובת-ענן

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

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

עקרונות מרכזיים של מערכות מרובות-Cloud Event-Driven Systems

חתומה באמצעות חוזים לאירועים

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

⁇ ⁇ ⁇ ⁇ ⁇

חלוקת רשתות בין עננים אינה חריגות; הם מצב נורמלי של הפעלה.כל לקוח אירוע חייב להיות idempotent: עיבוד אותו אירוע פעמיים חייב לייצר תוצאה דומה עיבוד זה פעם.זה יכול להיות מושג על ידי כולל מזהה אירוע ייחודי בעומס ושמירה על חלון דהודוק בצד הצרכן. לדוגמה, שירות תשלום שמקבל "צ'רgeSucceed" אירוע חד פעמי, אם כבר היה צריך לבצע תיקון כפול, אם הוא כבר לאסון, או לא היה צריך לבצע בדיקות חירום.

משלוח מובטח ו At-Least-Once Semantics

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

שעון Skew ו-Temporal Ordering

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

בחירת מועדוני אירועים עבור Multi-Cloud Deployments

עננים-Agnostic Brokers

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

שירותי ענן

כל ספק ענן מרכזי מציע שירות אירועים Native: AWS EventBridge, Google Cloud Pub/Sub, ו- Azure Event Grid. שירותים אלה מספקים שילוב הדוק עם כל מערכת האקולוגית של הענן, צמצום תפעולי מעל פני השטח, עם זאת, הם מציגים הפיכה ל- APIs קנייניים ומודלים חיובים.כדי להשתמש בהם במערכת רב-ענן, עליך לבנות מחברים המתורגמים בין פורמט Native לבין schema נפוצה כגון Cloudts, כמו למשל, כמו שירותי רדיוגן אחד, במקום להשתמש ב-cookie, במקום להשתמש ב-cookie, במקום להשתמש ב-cookie, במקום להשתמש ב-cookie, במקום להשתמש ב-cookied.

Broker פדרציה ואירוע Mesh Patterns

מאפר אירוע מחבר ברוקרים על פני עננים מבלי לדרוש את כל התנועה לעבור דרך מרכז יחיד.כל ענן פועל מקרה הברוקר שלו, ואת ה- mesh קדימה אירועים ביניהם על בסיס כללים רוטינג. דפוס זה מקטין עלויות רוחב פס בין רוחב פס חוצה עננים ומאפשר לכל אזור לפעול באופן עצמאי. כלים כמו Apache Pulsar, SolaceSub+, ו- Confluent Clustering תמיכה ב-Gal-Repation ומורכבת, אם כי ניתן לשחזר אזורים שונים אלה, אם כי הם יכולים להגדיר בסופו של דבר להגדיר באופן עצמאי בין אם כי הם יכולים להגדיר את ה-Packicepeercrucepsar, אם כי הם יכולים להגדיר את תחומי פעולה בין אזורים שונים, אם כי הם יכולים להגדיר מחדש, אם כי הם יכולים להגדיר מחדש בין אזורים שונים, אם כי הם יכולים להגדיר מחדש בין אזורים שונים, אם כי הם יכולים להגדיר מחדש, אם כי הם יכולים להגדיר מחדש בין אזורים שונים, אם כי הם יכולים להגדיר מחדש על פני מיפוי, אם כי הם יכולים להגדיר מחדש בין אזורים שונים, אם כי הם יכולים להגדיר את ה-Pulsar, אם כי הם יכולים להגדיר מחדש בין אם כי הם יכולים להגדיר את ה-Pulsar, אם כי הם יכולים להגדיר מחדש על פני עננים, אם כי הם

תכנון אירוע שemas והסכמים

עננים כ-Active Envelope

(ב) , מדרש (ב) , ויקרא כ"ד) ,"ה' (ב"ב)" (ב) ,"ב) ,"ה' (ב"ב)" (ב"ב)"ב"ה' (ב"ב) ,"ב[[1924]] , , ,"ב[[1924]] ,]] ,]] ,]] ,]] , [[1924]] ,]] ,]] ,[[1924]] ]] , [[1924]] ]] , [[1924]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] , [[1924]] ]] ]] ]] ]] ]] ]] ]] ]] ,[[1924]] ]] ]] ]] ]] ,[[1924]] , [[1924]] ]] ]] ]] ,[[1924]] ]] ,[[1924]] ]] ]] ]] ]] ]] [[1924]] ]] ]] [[1924]] ]] [[1924]] [[1924

רישום של שema וגרסה

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

חוקי תאימות ברמה

כאשר מתפתחת schemases על פני עננים, בצע את הכללים האלה כדי למנוע לשבור צרכנים:

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

תבניות יישום עבור Multi-Cloud Event Systems

אירוע חוצה עננים

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

אחריות קווירית

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

Tag: דפוס עסקאות דיסטריוט

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

  • שירות ב-AWS מפרסם את "התערות המבוקשת" לאירוע קפקא.
  • שירות ב- Azure מעבד את האירוע, מחזיק מלאי ומפרסם אירוע "InventoryHeld".
  • שירות במעבדי AWS "InventoryHeld" יוצר הזמנה ומפרסם אירוע "סדר" (DepenCreated).
  • אם יצירת הזמנה נכשלת, אירוע "מעודכן" נשלח לשחרר את המלאי המתקיים.

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

דרישות אבטחה עבור Multi-Cloud Event Systems

הצפנה במעבר ובמנוחה

כל התנועה בין עננים חייבת להיות מוצפנת עם TLS 1.2 או גבוה יותר. Broker-to-broker קישורים צריך להשתמש אימות TLS הדדי.אירועים נמשך ברוקר או בחנויות למטה הזרם צריך להיות מוצפן בשאר באמצעות מפתחות מומנים בענן או מפתחות מאומנים לקוח (CMKs) בעת שימוש בתיווך אגנוסטי בענן על Kubnetes, להשתמש בשירות כגון Ish או ISed לכל היותר על גבי עננים מקודמים (CMKs).

הכרה ואישור בין עננים

לכל ספק ענן יש מערכת זהות משלו: IAM על AWS, Azure Active Directory, ו-Cloud IAM על GCP. כדי לאמת מפיק בענן אחד לברוקר אחר, להשתמש בסימון קצר ימים שנוצר על ידי הזהות של היצרן ואומת על ידי הברוקר, או להשתמש בתעודה לקוח משותף.

ביקורת ואירוע אחריות

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

מעקב ושקיפות בעננים

אירוע מרכזי Metrics

מדדי אגגור ממתווכים אירועים בכל העננים למערכת ניטור בודדת.המדדים המרכזיים כדי לעקוב כוללים:

  • שיעור הייצור של אירועים למפיקים ולסוג
  • lag לצרכנים לקבוצת הצרכנים ולחלוקה
  • אירוע חוצה עננים מחלחל לצריכה
  • שיעור כישלונות אירועים וסיבות לכישלון
  • שימוש בדיסק וברשת באמצעותput

השתמש Prometheus עם Thanos או Grafana Mimir כדי לשאילת מדדים על פני פריסות ענן מרובות ללא אובדן הקשר.

אירועים קשורים ל- Cross-Cloud Events

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

סוף סוף סוף סוף סוף בודקים בריאות

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

מקרים אמיתיים לשימוש

Multi-Cloud Order Orchestration

חברת מסחר אלקטרוני גלובלית מעבדת הזמנות הכרוכות בניהול מלאי על AWS, עיבוד תשלום על Azure, ומשלוח לוגיסטי על GCP. כל צעד במחזור החיים הוא אירוע שזורם דרך אשכול קפקא משותף פרוס על פני שלושה עננים. הזמנה הממוקמת באזור המערבי בארה"ב מייצרת אירוע "סדר תשלום" אשר נשען על ידי שירותים מלאי על AWS, אשר מייצרת בסופו של דבר "בחירות" אירועים בתשלום ו-"כלי שירות משלוח" בתנאי שירות לפני ביצוע משלוח, ולבסוף, ו-" (Getts) , אשר נשתמשך, אשר ננקטו.

Multi-Cloud IoT Ingestion

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

מלכודות נפוצות וכיצד להימנע מהם

שקיפות הומוגנית בין עננים

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

Relying on Broker Geo-Replication for Strong Consistency

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

עלויות Cross-Cloud Cost Visibility

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

מסקנה

תכנון מערכות מונחות אירועים עבור פריסות מרובות עננים דורש שינוי מהמחשבה ממוקדת תשתיות לתכנון הראשון. סטנדרטי schemas, צרכנים idempotent, ו-Fronal פדרציה ליצור את הבסיס של מערכות שיכולות לשרוד ספקים, מחיצות רשת, ודפוסי עומס בלתי צפויים.הדפוסים המפורטים כאן &mash; מיקור אירועים, CQRS, וסאגה &mash; לספק גישות מוכחות לעקביות נתונים הוא מורכב.

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