civil-and-structural-engineering
שימוש בתפקידים של Azure עבור ארכיטקטורות ללא סרווירס שמנהלות על אירועים
Table of Contents
המונחים: Serverless Shift
יישומי ענן מודרניים דורשים גמישות, דרוגיות, יעילות ועלויות - חישובים כי אדריכלות מסורתית, תמיד בשרת לעתים קרובות נאבקים לפגוש. Serverless מחשוב התפתחה כפרדיגמה כי ניהול תשתיות מופשט, המאפשרת למפתחים להתמקד רק בלוגיקה עסקית.בלב של המציעה השרת של Azure שקרים פונקציות Azure, שירות המאפשר לך להפעיל קוד מונחה אירוע בסביבה מנוהלת לחלוטין.
מה זה Azure Functions?
פונקציות Azure הן שירות ללא שרת המאפשר לך לבצע חתיכות קטנות של קוד - מה שנקרא פונקציות - בתגובה למגוון רחב של אירועים.בניגוד לפלטפורמה-as-a-Service (PaaS) או תשתיות - כשירות (IaaS) מודלים, מחשוב ללא השרת מבטל את הצורך במתן או לנהל שרתים.
כל פונקציה היא ללא תנאי על ידי עיצוב, אם כי אתה יכול להמשיך המדינה באמצעות אחסון חיצוני או מסד נתונים.הזמן תומך שפות תכנות מרובות כולל C#, JavaScript, Python, Java, PowerPoint, ו- TypeScript. פונקציות מתארחות בתוך אפליקציה פונקציונלית, אשר פועל כמכל עבור קיבוץ פונקציות קשורות וניהול, שיתוף תצורה, ומדפיכת כיחידה.
טריגר, בינגס, והזמן הריצה
מושג הליבה מאחורי פונקציות Azure הוא הגורם - אירוע הגורם לתפקוד לבצע.גורמים נפוצים כוללים בקשות HTTP, לוחות זמנים של זמן (כמו Cron), הודעות מ Azure Queue Storage או Service Bus, כתמים נוצרים או מעודכנים ב- Blob Storage, ואירועים מאירוע Grid. בנוסף לטריגרים, Azure פונקציות תומךות קלט ופלט, אשר הם קשרים מפוזרים לקוד פתוח באופן אוטומטי (קוד מחייב) ללא גישה ממוקדת (DTP) כדי להפעיל קוד פתוח (D).
תכונות מפתח ב Depth
מעבר ליסוד, מספר תכונות הופכות את Azure למבחר רב עוצמה עבור ארכיטקטורות מונעות אירועים:
- (FLT:0) , אפילו מונעים על ידי גורמים: FLT:1 להגיב ליותר מתריסר סוגי טריגר, כולל אירועים מותאמים אישית באמצעות אירוע גריד. גמישות זו מאפשרת לך ללחוץ כמעט מכל ענן או על-ידי סכנות.
- (FLT:0) דרוג מתודולוגי: FLT:1 התוכנית עולה באופן אוטומטי על בסיס מספר האירועים הנכנסים, מאפס ועד אלפי הוצאות להורג במקביל. עבור עומסי עבודה צפויים יותר, אתה יכול להשתמש בתוכנית Premium עבור מקרים מראש מורעב וזמני ביצוע ארוכים יותר.
- (FLT:0) תמחור שימוש ב-Pay-per-use:FLT:1 בתכנית ה-Contion, אתה מחויב רק לזמן ביצוע ולזיכרון המשמש.1 מיליון ההוצאות להורג בחודש הם בחינם.מודל זה אידיאלי עבור התפרצויות זעם או i לסירוגין.
- (FLT:0) הרחבה של פונקציות:FLT:1 Build stateful, long-runningflows באמצעות פונקציות דוריות, אשר לנהל מדינה, מחסומים ותזמורת.זה מרחיב את Azure פונקציות מעבר מטפלים פשוטים לאירועים מורכבים תהליכים עסקיים מורכבים כגון מילוי סדר או עיבוד נתונים שרשראות.
- (FLT:0)Built-in Security:FLT:1 פונקציות משתלבות עם Azure Active Directory, זהויות מנוהלות, ו- Key Vault כדי לגשת באופן מאובטח למשאבים ללא הטמעת אישורים.
- (FLT:0) כלים לפיתוח:FLT:1Build ליצור, בדיקה, פריסת פונקציות באמצעות פורטל Azure, Azure CLI, Visual Studio Code (עם הרחבה של Azure Functions), או Maven/IntelliJ עבור Java.פיתוח מקומי מחק את Azure Runtime, ומאפשר בדיקה לא מקוונת מלאה.
השוואה עם אדריכלות מסורתית
באדריכלות מונוליטית או N-tier, השרתים לרוץ ברציפות, צריכת משאבים גם כאשר פונקציות מונחות על ידי Event- Event מונעות השרת למנוע מודל זה: compute קיים רק כאשר נדרש.זה מוביל לעלויות תפעוליות נמוכות יותר, המורכבות מופחתת בסקאלה, ומהירה יותר זמן לשוק כי מפתחים לדלג על מתן שרת.עם זאת, המודל חסר השרת מציג גם שיקולים כמו מתחיל קר (כאשר פונקציה ספין למעלה, לאחר החלטות איפור) ונדרש זמן לתוך מגבלות).
שימוש במקרים מעשיים עבור Azure Functions
פונקציות Azure מתאימות היטב למגוון רחב של תרחישים.למטה הן דוגמאות מפורטות המוכיחות את הגמישות שלהן:
- עיבוד נתונים בזמן אמת: FLT:1 Stream נתונים של מכשירי IoT, parse והופכים אותו, ואז דרך לאחסון, ניתוח או מערכות התראה.לדוגמה, חברת ייצור יכולה לעבד טלמטרי מחיישנים כדי לזהות אנומליות באופן מיידי.
- (FLT:0) APIs ללא שרת ו- Webhooks:IRLT:1) בנו ממשקי API קלים שסולקים באופן אוטומטי עם תנועה.
- (FLT:0) Workflow אוטומציה:FLT:1 Connect SaaS יישומים (למשל, לשלוח דוא"ל באמצעות SendGrid כאשר הזמנה חדשה מופיעה במאגר נתונים) או מפעילה תהליכים עסקיים פנימיים כגון צינורות אישור.
- (FLT:0) שימור ומשימות מתוכננות: FLT:1) להחליף עבודות עם פונקציות מחוספסות בזמן לנקות נתונים ישנים, ליצור דוחות או לבצע בדיקות בריאות - ללא ניהול VM רק עבור תסריט.
- (FLT:0) עיבוד תמונה: FLT:1ir מחדש באופן אוטומטי, דחוס, או תמונות סימן מים כאשר הועלה ל- Blob Storage. Azure Functions יכול גם לאמת פורמטים של קבצים, לחלץ metadata, או לעורר צינורות של תנופה תוכן.
- (ב) ,0) ,Chatbots והודעות: שלב 1 של Azure פונקציות עם ההרחבה:2, Zonee Bot ServiceveFLT 3 או webhooks להגיב לשאילתות משתמשים או לשלוח הודעות דחיפה בהתבסס על אירועים.
אדריכלות: Event-Driven Architectures
אדריכלות מבוססת אירועים (EDA) מפצירה יצרנים של אירועים מהצרכנים, גמישות מוגברת וחוסנות. Azure Functions הם צרכנים טבעיים של אירועים, ו- Microsoft Azure מספקת מערכת אקולוגית עשירה של מקורות אירועים וברוקרים מסר.
- (FLT:0) יצרנים: מוצרים: FLT:1 שירותים כמו Azure Blob Storage, Cosmos DB, Event Grid, IoT Hub ויישומים מותאמים אישית הנפלטים אירועים.
- (FLT:0) , אפילוt/Message Brokes:BuildFLT:1) Azure Event Grid (האירוע חסר מנוחה), Azure Event Hubs (הזרמת נתונים גדולים), Azure Queue Storage (הודעות פשוטות), ו- Azure Service Bus (העברת הודעות עם נושאים ומפגשים).
- (FLT:0) צרכנים: תחליפיים: Azure Functions (serverless), לוגיקה Apps (זרימות עבודה קוד נמוך), או שירותים אחרים שמשעבדים אירועים.
תגית: Fan-out / Fan-in
דפוס משותף הוא להשתמש באירוע Grid כדי להעריץ אירוע אחד לפונקציות מרובות Azure, כל אחד מבצע משימה שונה (למשל, פונקציה אחת מאמת, מעשי העשרה אחרים, חנויות שלישיות) באופן הפוך, דפוס של מעריצים יכול להיות בעל מספר מקורות אירוע גורם פונקציה אחת המצטפת פונקציה אחת המאגדת נתונים.לדוגמה, כאשר משתמש חדש מעלה, אירוע גורם פונקציה של שולחת דוא"ל, ועוד CRM, מקבילה ל- CRM.
עדכון: Real-Time Inventory Update
שקול פלטפורמה מסחר אלקטרוני שבו אירועי רכישה חייבים לעדכן באופן מיידי מלאי.
- הזמנה ממוקמת, אשר כותבת הודעה ל תור אחסון Azure Queue (מקור ההדק).
- תור-triggered Azure function אוסף את ההודעה, שאילתות את מסד הנתונים (באמצעות הזנת מחייב) כדי לקבל את רמות המניות הנוכחיות, ומפחית את הכמות הנדונה.
- הפונקציה מעדכנת את מסד הנתונים (באמצעות פלט מחייב) ומפרסם באופן אופציונלי אירוע לאירוע גרייד כדי להודיע למערכת המחסן או שכבת צ'נג.
- אם העדכון נכשל, הפונקציה חוזרת באופן אוטומטי, הודעות לא מעובדות ללכת תור רעל עבור התערבות ידנית.
אדריכלות זו היא גמישה: מכירה פלאש שיוצרת מאות הזמנות לשנייה תגרום ל- Azure functions לסקאלה מיד, עיבוד כל הזמנה ללא יכולת מראש.
להתחיל עם Azure Functions
כדי להתחיל לבנות את הפונקציות המונעות לאירוע שלך, בצע את השלבים הבאים:
- (FLT:0) להעריך חשבון Azure וקבוצת משאבים:03FLT:1 אם אין לך מנוי Azure, להירשם למשפט חופשי הכולל זיכויים עבור 30 הימים הראשונים.ארגן משאבים בתוך קבוצת משאבים לניהול קל.
- (FLT:0)Provision a Function App:FLT:1ir השתמש בפורטל Azure, CLI (ראה FLT:0), או תבניות קוד (ARM, Terraform) בחר ערימה של זמן ריצה (למשל, .NET, Node.js, Python) ותוכנית אירוח.
- (ב) [ה]הבא [ה] [ה]] [ב]]] [ה] [ה]]], [ה]], [ה]], [ה]]]], [ה]], [ה], [ה], [ה], [ה],], [ה], [ה], [ה'ה']']'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- (ב) ,0Write וקוד המבחן: FLT:1eur השתמש עורך הקוד המקוון של הפורטל, או טוב יותר, לפתח באופן מקומי באמצעות FLT:2אזור; פונקציות הליבה של הכלים CoreFLT 3: 3 (הזמן המרוצים המקומי מחק את הסביבה בענן, המאפשר לך לבדוק טריגרים וחייבות עם נקודות שירות בפועל (באמצעות מחרוזת) או חיקויים (למשל, עבור Azure.
- (FLT:0)Deploy:FLT:1 , Publish את קוד הפונקציה שלך מקוד Visual Studio Code, ג'נקינס, GitHub Actions, או Azure Pipelines.
- (FLT:0) מוניטור ולוג:FLT:1 Enable Application Insights for your Function App כדי לראות טלמטרי בזמן אמת, שיעורי בקשה, כישלונות, וגלי זרימה חיים. השתמש בכרטיסיה "Monitor" בפורטל או שאילתות מתקדמות ב- Log Analytics.
שיטות טובות לשימוש בייצור
כדי להבטיח אמינות, ביצועים, שמירה, לדבוק בהנחיות אלה:
- (FLT:0)עיצוב עבור idempotency:Figal1 פונקציות עשוי לבצע יותר מפעם אחת בשל רטיבות או ערבויות משלוח ב-least-once.וודא כי עיבוד אותו אירוע מספר פעמים יוצר את אותה תוצאה (למשל, שימוש במבצעי upsert, לבדוק עבור לשכפלות).
- (FLT:0) צמצום התלויים מתחיל: FLT:1 עבור יישומים רגישים לעקביות, לשקול את תוכנית Premium או להפחית את התלויות על ידי שימוש בזמני ריצה קלים יותר (Power Shell פונקציות יש התחלה קרה כבדה יותר) לשמור על פונקציות קטנות ולהימנע מטעינה של אסיפות גדולות בסטארט-אפ.
- (FLT:0) הזרקת התלות תלויה: FLT:1hil in C# (וניסיוני בשפות אחרות), להגדיר DI כדי להזריק שירותים כמו לקוחות מסד נתונים או לקוחות HTTP.זה מקדם את יכולת הבדיקה ואת השימוש במשאב יעיל (ראה FLT:1 צריך להיות משותף).
- (FLT:0) מדיניות נאותה של זמן ודחייה: ההרחבה: The Contion Plan מגבילה את ביצועה של 5 דקות (ההגדרה ל-10 דקות) עבור משימות ארוכות יותר, השתמש בפונקציות דורות או להגר לתוכנית Premium.Conform retry מדיניות עבור גורמים ספציפיים (למשל, לפור יש החזר אוטומטי עם backoff אקספוננציונל).
- חיבורים:0 (סעיפים 1:1) לעולם אל תאחסן מיתרי חיבור או סודות בקוד. השתמש בהערות Azure Key Vault בהגדרות אפליקציה וזיהויים מנוהלים כדי לגשת למשאבים ללא סודות.
- (ב) ⁇ (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
ניהול עלויות ואופטימיזציה
בעוד פונקציות Azure הן בעלות יעילות, שימוש בלתי צפוי יכול לנפח חשבונות.עקוב אחר שיטות אלה כדי לשמור על עלויות נמוכות:
- (FLT:0) ספירת ביצוע של מוניטור ומשך:FIRLT:1) Azure מספקת התראות עלות וסףי תקציב. השתמש ב- Azure Cost Management כדי לעקוב אחר ההוצאות על מנת לבצע את ה-Compet.
- (FLT:0) בחר את התוכנית הנכונה: FLT:1 תוכנית צריכת הוא זול עבור תנועה נמוכה ל-medium.תוכנית Premium מציעה עלויות חודשיות קבועות ללא התחלה קרה (App Service) התוכנית היא עבור עומסים גבוהים, צפוי אך לא עולה רציפה.
- קוד הפונקציה:0 (Optimize קוד:FLT:1 Inefficient Code (למשל, לולאות כבדות, שאילתות מסד נתונים לא פתורות) מגבירות את זמן הביצוע והזיכרון, ולכן עלות.
- (FLT:0)Use מעורר תמחור ספציפי: FLT:1 מקורות טריגר עצמם עשויים להיות בעלי עלויות. לדוגמה, אירוע גריד יש מטענים חד-משמעיים; למזער אירועים מיותרים על ידי סינון במקור.
מעקב, ויכוח, וגישור
ללא שרת להתחבר, שיטות פיזור מסורתיות אינן חלות. Azure Functions לספק מספר כלים:
- (FLT:0) אינטגרציית תובנות: אינטגרציית ;FIRLT:1) ניתן להשיג זאת במהלך יצירת אפליקציה פונקציונלית או מאוחר יותר.זה ללכוד טלמטרי כגון שיעורי בקשה, כישלונות, תלותיות, ומדכאים מותאמים אישית.You יכול להגדיר התראות עבור אנומליות (למשל, שיעור כישלונות גבוה).
- (FLT:0) Live Metrics Stream:FLT:1ir View נתוני ביצועים בזמן אמת כולל CPU, זיכרון ותפקוד ספירת ביצוע, עם היכולת לדגום עקבות חיים.
- (ב) ,0) ,הכנסה ברמת התפוצה: שימוש ב- 1FLT 3: (או שווה ערך) כדי להוסיף הודעות מותאמות אישית.
- (התוכנית של פרמיום): 0 (Remote debugging) (Premium Plancio): 1FLT:1 המצורף עבריין מסטודיו חזותי לתפקוד פועל בתוכנית Premium - שימושי עבור אבחון בעיות בסביבות שאינן התפתחות.
- (FLT:0) אותנטיות מבוססת Token ו- RBAC:03F:03F:IRECT 1) נקודות קצה מאובטחות עם Azure AD, מפתחי API, או אישור ברמת תפקוד. Monitor נכשלים באמצעות יומני.
שיקולים ביטחוניים
ללא תשלום אין פירושו אבטחה חופשית.הגנה על התפקודים והמידע שלך:
- (FLT:0Network Security:BuildFLT:1) השתמש באינטגרציה רשת וירטואלית (תוכנית קדם-יום) כדי לאפשר לפונקציות לגשת למשאבים בתוך VNet, או להשתמש בנקודות קצה שירות / נקודות קצה פרטיות עבור שירותי PaaS.
- (FLT:0) Authentication andהרשאה:FLT:1 for HTTP-triggered function, Azure AD, Facebook, Google, Twitter, או אימות מפתח API.
- (FLT:0) סודיות קלט: 1.10LT 1 אימות ו- סניפי נתונים מפני גורמים, במיוחד קלטות יישומיות למשתמש כמו גוף HTTP או מחרחי השאילתה, כדי למנוע התקפות הזריקה.
- (FLT:0) הגנת נתונים: ההרחבה של נתונים במנוחה ובמעבר. השתמש ב- Azure Key Vault כדי לסובב סודות ותעודות באופן אוטומטי.
- (FLT:0)-privilege גישה: ההרחבה 1 (Abn-privilege Access: ⁇ FLT:1) , Assign מנוהלת זהויות עם רק הרשאות הדרושות (למשל, גישה לקריאה בלבד למסד נתונים) ולא באמצעות מיתרי חיבור רחבים.
אינטגרציה ומערכת אקולוגית
פונקציות Azure משתלבות עמוקות עם שירותי Azure ו- צד שלישי רחב יותר:
- (FLT:0Zonee Logic Appsuremia:FLT:1) Trigger Logic Apps מתפקיד, או להתקשר פונקציות מ-Logical Apps עבור שלבים קוד מותאם אישית.
- (ב) ,0אזור אירוע גריד: 1FLT השתמש באירוע גרייד כגורם או פלט מחייב - פונקציות יכולות לצרוך ולפרסם אירועים מותאמים אישית.
- (ב) ⁇ :0Zonee API Management:FLT:1; חשיפה של HTTP-triggered פונקציות באמצעות ניהול API עבור ניתוק מתקדם, מתעתק, ו- caching.
- (FLT:0Zonee Kubernetes Service (AKS): IRLT 1 עם KEDA (Kubernetes Event-Driven Autoscaling), אתה יכול להפעיל את Azure Functions על AKS, ללא ספק שרת עם מכולות אם יש צורך.
- (FLT:0) שירותים של צד שלישי: FLT:1 Bindings קיימים עבור SendGrid, Twilio, Event Hubs, Service Bus, ואפילו שירותים שאינם אזוריים באמצעות HTTP מחייבות מותאמים אישית.
לרשימה מקיפה של כוננים ורחבות זמינות, להתייעץ עם הפונקציה Azure הרשמית:0 , מנגנוני Azure רשמיים גורמים ומחייבים תיעוד של FLT:1.
השוואת פונקציות Azure לפלטפורמות אחרות ללא Server
מפתחים מעריכים לעתים קרובות ספקי ענן מרובים. Azure Functions חולקים דמיון עם AWS Lambda ו-Google Cloud Functions, אך קיימים הבדלים מרכזיים:
- תמיכה ב-FLT:0) תמיכה ב-Language: 3 שפות עיקריות, אך ל- Azure יש תמיכה רחבה ביותר ב-class (כולל רזולוציה ו- C# עם כלי חזק).
- מודל הקידוד:0 (Binding Model: FLT:1) של Azure, הקלט הברור / הקידוד של Azure, הם ייחודיים.AWS Lambda דורש שיחות של SDK ידניות כדי להתחבר לשירותים אחרים.
- (ב) ⁇ :0) פונקציות ניתנות לשינוי: 1FLT:1 הרחבה חזקה לתזמורת המדינה שמתחרה ב-AWS Step Functions.
- (FLT:0)Cold Start Performance: FLT:1AWS Lambda ו- Azure Functions דומים לזמני התחלה קרים, אם כי תוכנית Premium של Azure מציעה מקרים לפני המלחמה.
- (ב) כל השלושה מציעים טיים חופשיים נדיבים.מודל התמחור של Azure כולל את 400,000 GB-s הראשונים של ביצוע בחודש.עבור התמוטטות מפורטת, ראה את ה-FLT:2 פונקציות אזוריות עמוד תמחור של ההרחבה TERFLT 3 והשוואה עם תמחור של AWS Lambda.
מסקנה
פונקציות Azure מספקות פלטפורמה חזקה, מדרגית, וחסכונית לבניית ארכיטקטורות מונעות אירוע.על ידי דה-קלינג מפיקים אירועים לצרכנים, אתה יכול לבנות מערכות להגיב בזמן אמת, בקנה מידה אוטומטי, ולהפחית את התפעולי מעל הראש.אם אתה מעבד נתונים של IoT, רתום סוללות עבודה עסקיות מתכוונות אוטומטית, או בניית API ללא שרת, Azure פונקציות מציעות גמישות ונדרש כדי להתחיל עם תפקוד קטן, אז, עם פונקציות עיצוב מלא של Microsoft, עם ביצועים גמישים, עם תפקוד מלא של פעילות מושלמת, עם תפקוד מלא של תאים גמישים, עם תפקודים, עם תפקודים, עם פונקציות מורכבות, עם תפקוד זמין, עם פונקציות מורכבות, עם פונקציות עיצוב מלא של Microsoft, עם פונקציות עיצוב מלא של Microsoft, עם פונקציות עיצוב מלא של Microsoft, עם ביצועים גמישים, עם פונקציות עיצוב, עם פונקציות מורכבות, עם פונקציות מורכבות, עם תפקוד טוב יותר, עם תפקוד יעיל יותר, עם פונקציות עיצוב, עם תפקוד זמין עם תפקוד מלא של Microsoft, עם ביצועים גמישה, עם פונקציות עיצוב מלא של מערכת ההפעלה, עם פונקציות מורכבות יותר ויותר, עם פונקציות עיצוב מלא של עיצוב מלא של Microsoft, עם פונקציות עיצוב מלא של Microsoft, עם פונקציות של עיצוב מלא של תכנות ללא הגבלת זמן רב-ידי תכנות ללא הגבלת זמן רב-ידי צוות יעיל יותר,