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

הבנה של Multi-Tenancy ב- SaaS

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

ספקי SaaS של Azure נתקלים בדרך כלל בשלושה החלטות: מידת הבידוד, המודל הנימוק (PaaS vs. IaaS לעומת מיכלים), והאדריכלות של האחסון, הבנה מוקדמת של פעולות אלה מונעת היררכיה יקרה מאוחר יותר.

עקרונות עיצוב הליבה של יישומים רב-טנטיים ב- Azure

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

בידוד

נתונים ותצורה חייבים לעולם לא להדליף בין הדיירים.Isolation יכול להיות הגיוני (הזהויות הדרגות במסד נתונים משותף) או פיזי (מאגרי מידע נפרדים, חשבונות אחסון, או אפילו מנויים נפרדים) Azure SQL Database ו- Azure Cosmos DB תומכים הן בגישות עם מדיניות אבטחה ברמת ה-Ferant-level ומפתחות ברמת המחשוב.

סקלאה

עומסי עבודה רב-עוצמה חווים ספייקטים בלתי צפויים כמו כמה הדיירים גדלים במהירות בעוד אחרים נשארים יציבים.יכולות של Azure אוטומטי-caling - כמו כללי ה-EP של App Service, AKS מקבץ אוטומטי, ו- Azure SQL Database Pools - מאפשרות לך לספוג צמיחה ללא התערבות ידנית.עצב את מצב הישיבות שלך ללא תנאי ועומס ל- Azure for Redis for Redis or DB Balance.

אבטחה

כל דייר חייב להיות מבודד מכל דייר אחר, ואימות דייר חייב להיות מוצק רוק.שימוש ב- Azure Active Directory (אזור AD) עם תכונות B2C ספציפיות של B2B עבור פדרציה זוויות.עבור תקשורת שירות, להסתמך על זהויות מנוהלות ו- Azure Key Vault כדי להימנע מקידוד מודע של 10 מודעות בשער ה- API - ניהול API של אזור API יכול לאכוף את האימות כדי ללכוד גבולות רגישים ולהשיג לכידת נתונים ללא מגבלות על פני שטח רגיש.

ניהול עלויות

תשתיות משותפות מפחיתות את העלות להגדלת, אבל שימוש לא פגום יכול לבזבז כסף. השתמש Azure Cost Management כדי לתייג משאבים על ידי Tenant ו track לבזבז.שלב מקרים שמורים עם cal-scaling כדי להתמודד עם עומס בסיס זול ולהגדיל מקרים עבור ספיגים.אלבריכות גמישים לתת לך משאבים בריכה על פני הדיירים, לשלם רק עבור DTU /vre במקום מתן שיא עבור מדד באופן אישי או הערכה.

אסטרטגיות בידוד נתונים

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

מסד נתונים משותף, משותף Schema

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

מסד נתונים נפרד (Database per Tenant)

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

גישות היברידיות

ספקי SaaS רבים מאמצים אסטרטגיה מקבילה: free or trial Tenants לשתף מסד נתונים משותף, בעוד ש-Exams פרמונים מקבלים מסדי נתונים ייעודיים. Alternatively, כמה נתונים (למשל, קטלוגים ציבוריים, נתוני התייחסות) יכולים להיות משותפים, בעוד נתונים פרטיים מבודדים. Azure Database של Azure Datasharding ו-פדרציה יכולות לתמוך במודלים היברידיים.

החלפת שירותי Azure עבור Multi-Tenancy

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

המונחים:

Azure App Service הוא נקודת הכניסה עבור ספקי SaaS רבים.זה תומך בפריסות אוטומטיות, פריסות מבוססות מזל, ואימות מובנה. עבור שליטה רבה יותר על הסביבה בזמן ריצה, Azure Kubernetes Service (AKS) מאפשר לך לבודד דיירים באמצעות שמות, מדיניות רשת, ו-AKS משלבת גם עם Azure AD עבור בקרת גישה מבוססת תפקידים.

אחסון ומסד נתונים

כבר דנו ב- Azure SQL Database ו- Cosmos DB. for נפיחות או אחסון קבצים, Azure Blob Storage תומך בבידוד דייר ברמת המכל.You יכול ליצור אסימונים ספציפיים SAS ולאכיפת מדיניות גישה עם Azure RBAC. Azure Storage for Tenant הוא גם אופציה לבידוד גבוה, אבל זה מגביר את ניהול יתר עבור Redis יכול להיות מחולק לכל 10 ממסד נתונים נפרד או prefixes.

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

Azure AD B2C (עסק-to-consumer) מיועד ל- SaaS עם דיירים חיצוניים.זה תומך במדיניות אישית, ספקי זהות חברתית, ואימות רב-ספקי ל-Actionant.עבור SaaS של הארגון שבו הדיירים הם ארגונים, Azure AD B2B (עסק-לעסקים) מאפשר למשתמשים להיכנס עם אישורי הארגון שלהם.

אבטחה וסודות

Azure Key Vault מאחסנת סודות ספציפיים, מיתרי חיבור ותעודות.You יכול להעניק גישה לשירותים נבחרים או מפתחי באמצעות מדיניות גישה מרמרונית ו-RBAC. עבור הצפנה-ב-In-rest, Azure SQL Database תומך בקידוד נתונים Transud (TDE) עם מפתחות מעובדים של לקוחות מאוחסנים ב- Key Vault - ניתן להגדיל אם יש צורך במדיניות Azure ו- Azure Blueprints מסייע לאכוף דרישות של משאבים (C).

מעקב ושקיפות

Azure Monitor ו- Application Insights חיוניים לפתרון בעיות מרובות-מקודש. Tag allטלmetry with a Tenant ID - גם בתכונות מותאמות אישית או באמצעות מעבד העשרה. צור כללי התראה כי אש לכל-עוצמה כאשר סףים נשברים (למשל, מסד נתונים CPU > 80% עבור לוח נתונים ספציפי).

יישום Multi-Tenancy Patterns

יש לך כמה דפוסים אדריכליים לבחירה, החל משותפות מלאה למסירות מלאה.התבנית הנכונה תלויה בגודל של הדיירים שלך, צרכי הציות, ואת הבשלות ה-DevOps שלך.

הכל משותף (Single Application Instance, Joint Database)

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

מסד נתונים משותף, בנפרד שemas

Tenants לשתף מסד נתונים בודד אך יש סממות נפרדות (למשל, Tenant 123.orders במקום עמודה Tenant id) זה מספק בידוד הגיוני טוב יותר ומאפשר גיבויים per-schema (למרות ש- Azure SQL אינו תומך ב-schema-level גיבוי ברמה גבוהה - אתה כבר מעלה את כל תחזוקת מסד הנתונים).

מסד נתונים נפרד (Database per Tenant)

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

מודלים היברידיים ומפוזרים

ספקי SaaS בוגרים רבים משלבים תבניות.לדוגמה, משתמשים במסד נתונים משותף עבור metadata, תצורה, ו יומני ביקורת, ומקדישים מסדי נתונים עבור הדיירים מעל סף הכנסה מסוים.או בריכות קטנות יחד במאגרי אלסטיים ומניחים דיירים גדולים בבריכות ייעודיות. Azure SQL Database's sharding (באמצעות כלי מסד נתונים של אלסטי) תומך בגישה זו על ידי שאילתות לתיקון שאילתות ל- מצעים המבוססים על מפתח.

Best Practices for Multi-Tenant Azure Applications

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

  • (FLT:0) עיצוב עבור קנה מידה מההתחלה.FIRLT:1) השתמש במכוניות בנויות של Azure עבור שירות App, AKS ומאגרי מידע.מבחן עם צמיחה מופרעת כדי להבטיח את הלוגיקה הסקאפית שלך עובד. שקול באמצעות Azure Front Door או מנהל תנועה עבור הפצה עומס גלובלי.
  • (FLT:0) פריייטיזציה של בידוד רב-ממדי בכל שכבה.BuildFLT):1 האימות, האישור, הגישה לנתונים, ו-I-logging חייבים לכלול את ההקשר המצוין של ה- Never להסתמך רק על בדיקות ברמת הקוד - בידוד כוח באמצעות אבטחה ברמת מסד נתונים, Azure RBAC, או מדיניות API.
  • (FLT:0)Monitor ואופטימיזציה ברציפות.FLT:1 השתמש Azure Monitor כדי לעקוב אחר ביצועים בעלי השפעה, עלות ושיעורי שגיאות.קבע התראה להתנהגות בלתי-אטומית שעשויה להצביע על שכנה רועשת או בעיה ביטחונית. השתמש ב-Insights כדי לעקוב אחר בקשות באמצעות החזר רב-העוצמה שלך.
  • (FLT:0) ניהול מחזור חיים של מחזור חיים.IRLT:1) הוראת דיירים חדשים עם תבניות ARM, Bicep, או Terraform. יצירת מסד נתונים אוטומטית, הגדרה זהות והנתונים הראשוניים רואים. Decommission Tenants באופן נקי - נתונים אנרכיטיביים, ביטול גישה, והסרת משאבים כדי למנוע עלויות מיותרות.
  • (FLT:0)Plan for Data Backup and Recovery.FreaLT:1) עבור מודלים מסד נתונים משותף, לגבות את מסד הנתונים כולו ולהבטיח שחזור זמן-בשעה נקודה פועל על פני כל הדיירים.עבור מסדי נתונים בעלי-העצמה, ליישם מדיניות גיבוי אוטומטית (סעיף SQL עושה זאת באופן אוטומטי עם מדיניות שימור).
  • (FLT:0) עלות מעקב אחר דייר.Implement: 1.Es.ve.com Tag all Azure Resources with a Tenant ID. Use Azure Cost Management כדי ליצור דוחות עלות גבוהה יותר. שקול לחיוב על הדיירים בהתבסס על הצריכה בפועל (CPU, אחסון, העברת נתונים) כדי להתאים עלויות עם הכנסות.
  • (FLT:0) לאבטחת צינורות CI /CD.FIRLT:1) השתמש חריצים נפרדים פריסה או AKS שםspaces עבור עוקץ. הפעל מבחנים כי סימולציה של מספר רב של דיירים.לעולם לא לחשוף נתונים דיירים בלוגים או תפוקה של בדיקות. השתמש ב- Azure DevOps או GitHub פעולות עם זהות מנוהלת עבור פריסה מאובטחת.

מסקנה

(העיצוב יישומים רב-עוצמה ב- Azure אינו אחד בגודל של התאמה לכל התרגילים.האדריכלות הנכונה מאזן בידוד, קנה מידה, אבטחה, ועלות בהתבסס על פרופיל מסוים שלך ומודל עסקי.א.איי.איי.איי.א.איי.איי.איי.איי.איי.איי.איי.פי.איי.איי.איי.איי.איי.איי.איי.פי-פי (AP) ו-ב-ב-ב-ב-ב- Azure ל- Azure ל- Azure ל- Azure ל- Azure ל- Azure ל- Azure ל- Azure ל- Azure ל- Azure ל- Azure ל- Azure כדי לאפשר ל- Azure ® Azure ® Azure ל- Azure ® Azure ל-APD.2C ול-SAPLT VLT1 (I) ל-SAP) ל-S.