Table of Contents
הבנה של אדריכלות Serverless
מיגר בקשה מורשת לאדריכלות ללא שרת אינה תרגיל פשוט להרים-ומשתנה - זה דורש חשיבה מחדש כיצד היישום שלך בנוי, פרוס ומדורג. במודל חסר השרת, ספק הענן מנהל את הסביבה זמן הריצה, באופן אוטומטי מדרג תשתיות למעלה או למטה על בסיס הביקוש. זה משחררים ממתן שרתים, ניתוק איזון עומסים, ומערכות הפעלה של במקום להשתמש קיבולת תשלום עבור קודים למעשה.
ספקי ענן עיקריים מציעים פלטפורמות תכנות מנוהלות לחלוטין: AWS Lambda, Azure Functions ו-Google Cloud Functions. שירותים אלה תומכים בשפות תכנות מרובות וניתן להפעילן על ידי בקשות HTTP, אירועי מסד נתונים, העלאת קבצים, משימות מתוכננות והודעות תורים.השינוי לשרת ללא שרת בדרך כלל הולך יד ביד עם אימוץ מיקרו-שירותים או אדריכלות מונחה על ידי אירועים, שבו כל אחד מתמקד תפקיד על יחיד.
בעוד השרתים ללא שרת קשורים לעתים קרובות לפרויקטים ירוקים, ארגונים רבים הם בהצלחה ממונוליטים מורשת או מיקרו-שירותים ישנים יותר כדי להפחית את פני השטח התפעולי ולשפר את גמישות.המפתח הוא לתכנן באופן שיטתי, לשבור את ההגירה לשלבים הניתנים לניהול, ולענות על המגבלות הספציפיות של בסיס הקוד המורשת שלך - כגון תהליכים ארוכי טווח, מפגשים ממלכתיים, או הפיכה הדוק עם מערכת ההפעלה הבסיסית.
שלב ההכנה: הערכת הבקשה ל Legacy
לפני כתיבת שורה אחת של קוד ללא שרת, עליך להבין ביסודיות את היישום הקיים. A הגירה ממהרת יכול לשבור לוגיקה עסקית, להציג פערים ביטחוניים, או להוביל לעלויות יתר.התחל על ידי יצירת מלאי מפורט של כל תכונה, תלות ונקודת אינטגרציה.
דרישות תגמול ותלויים
יישומי Legacy לעתים קרובות מסתמכים על שילוב של ספריות פנימיות, שירותים של צד שלישי, קבצי תצורה והגדרות ספציפיות לסביבה.
- כל ה- API, נקודות הקצה, ושיחות שירות פנימיות
- שילובי SaaS של צד שלישי (שערי תשלום, מערכות CRM וכו ')
- מסד נתונים schemas, נהלים מאוחסנים, ודפוסי גישה לנתונים
- שכבות גילוח (כמו Redis or Memcached)
- עבודות רקע, משימות גולגולת ושגרה לעיבוד
- Authentication andהרשאה Flows (LDAP, OAuth, חנויות ישיבות)
שימו לב מיוחד לתהליכים או משימות ארוכי טווח המחזיקים במדינה בזיכרון.לפונקציות ללא שרת יש בדרך כלל מגבלות זמן (למשל, 15 דקות עבור AWS Lambda), כך תהליכים לרוץ במשך שעות יצטרכו להיות משביעי רצון או מטופלים באמצעות שירותי תזוזה כמו פונקציות של AWS או Azure Durable.
זיהוי מועמדים מתאימים לתפקודים ללא Server
לא כל חלק של יישום מורשת שייך בתפקוד חסר השרת.חפש רכיבים חסרי מדינה, אידיאולוגי, וניתן להפעילם על ידי אירוע. מועמדים טובים כוללים:
- נקודות קצה של API המבצעים פעולות CRUD
- טרנספורמציה בנתונים ומיזוגים
- שירותי Notification (דואר, SMS, התראות)
- דיווח או ניקוי מקומות עבודה
- מתאם אינטגרציה עבור מערכות צד שלישי
לעומת זאת, רכיבים הדורשים חיבורים של TCP (כמו מסדי נתונים עם קשרים ארוכים), מסתמכים במידה רבה על מערכת הקבצים המקומית כותבת, או תלויים בגישה חומרה ברמה נמוכה מתאימים יותר לשירותים מבוססי מכולה (למשל, AWS Fargate או Azure Container Instances).
אפשרויות אחסון נתונים
אדריכלות ללא שרת לעתים קרובות לטובת שירותי מסד נתונים מנוהלים בקנה מידה ללא התערבות ידנית.אסת שכבת הנתונים הנוכחית שלך ומתכננים את ההגירה בהתאם:
- (FLT:0) מסדי נתונים של מסדי נתונים: FLT:1 , נחשב אמזון אורורה Serverless, Azure SQL Database Serverless Serverless, או Google Cloud SQL עם caling אוטומטי.If your הקיים שלך משתמש בהליכים מאוחסנים או גורם, לבדוק אם תכונות אלה נתמכות באופן מלא בגרסאות השרת.
- (FLT:0) NoSQL Databases: FLT:1 DynamoDB, Firehouse, או Cosmos DB הם מתאימים טבעיים עבור עומסי עבודה מונעים על ידי אירועים, נמוך יחסית.הם דורשים דיפלומה זהירה ואנליזה דפוס גישה.
- (FLT:0) אחסון:0 (File Storage:FLT:1) מגולראט מדיסק מקומי או NFS לאחסון אובייקטים כמו אמזון S3, Azure Blob Storage, או Google Cloud Storage.
- (ב) ⁇ :0) ⁇ : ⁇ : ⁇ 1 (ב) החלפה בעגלות זיכרון עם שירותים מנוהלים כגון ElastiCache או Azure Cache for Redis.
כל הגירה לאחסון נושאת סיכון.בצע אימות נתונים לאחר כל אצווה של רשומות כדי להבטיח שלמות. השתמש בכלים הגירה מסד נתונים (AWS DMS, Azure Database Migration Service) כדי למזער את זמן השבת.
תכנון אבטחה, הכרה ואישור
יישומים ללא שרת מציגים שיקולים חדשים של אבטחה.משטח ההתקפה עובר משכבת מערכת ההפעלה והרשת לקוד הפונקציה, התלות והרשאות.צעדי תכנון מרכזיים כוללים:
- שימוש ב-FLT:0 (IAM RoleFLT:1) במקום אחסון של אישורים בקוד.
- ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- נספח:2 (ב) ,2 (ב) ,2 (לאבגדה) , או שירותי אימות של צד שלישי (Auth0, Okta).
- ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- תלות באודות עבור פרצות ידועות באמצעות כלים כמו OWASP תלותיות-Check או Snyk.
אל תשכחו לסקור את מגזר הרשת הקיים שלכם.תפקודים ללא שרת יכולים להיות ממוקמים ב-VPC כדי לגשת למשאבים פרטיים, אבל זה מוסיף שקיפות והתחלה קרה מעל פני השטח. להעריך אם אתם יכולים לחשוף את המשאבים האלה באמצעות שער API או שירות מנוהל במקום.
אסטרטגיית הגירה: בחירת הגישה הנכונה
אין נתיב הגירה אוניברסלי.בחירה שלך תלויה בארכיטקטורה של היישום המורשת, היכרות הצוות שלך עם השרתים ללא השרת, ואת סובלנות עסקית עבור שלוש אסטרטגיות נפוצות -re Architect, refactoring, ובניה מחדש - לכל אחד יש עצירות סחר.
Re: Lift and Shift with Serverless Wrappers
Re אינטש שואפת להעביר את היישום הקיים לפלטפורמה ללא שרת עם שינויים קוד מינימלי.זה נדיר אפשרי כמו "lift-and-shift" טהור כי פונקציות ללא שרת הן ללא תנאים וקצרות זמן.עם זאת, אתה יכול לעטוף יישום מונוליטי בתוך מיכל ולהפעיל אותו על פלטפורמה מיכל מנוהלת לחלוטין כמו AWS Fargate או Azure Instancess. בעוד אלה אינם לשרת חסר השרת במובן של Lambda, הם עדיין מספקים ניהול השני.
אם קוד המורשת שלך כבר ארוז כמו מיכל Docker, גישה זו יכולה להיות מהירה.אתה מקבל דרוג אוטומטי (למרות לא כמו granular as Lambda) ו מופחת תפעולי overhead. השתמש באסטרטגיה זו כאבן מזרז: להפעיל את המכולה במקביל לתשתיות הקיימות שלך, ולאחר מכן להחליף באופן מצטבר את נקודת הקצה על ידי נקודות קצה עם פונקציות טהורות לשרת.
המונחים: carving out Serverless Components
שינוי - הנקרא גם תבנית "סטרנגלר fig" - מאפשר לך לחלץ תכונות בודדות מן המונותולית וליישם אותם כפונקציות עצמאיות ללא שרת. גישה זו בשלב זה מפחיתה את הסיכון כי אתה יכול לבדוק כל פונקציה בבידוד בעוד שאר יישום המורשת ממשיך לרוץ.
צעדים לשיפוץ:
- לזהות ההקשר או תכונה הקשורים שיש להם גבולות קלט ופלט ברורים (למשל, זרימת רישום משתמשים).
- צור נקודת קצה חדשה של API (באמצעות API Gateway) אשר גורמת לתפקוד של Lambda בביצוע ההיגיון של התכונה הזו.
- כביש אחוז תנועה לנקודות הקצה החדשות (התעלים, כללי איזון עומס).
- השוואת יומני, מדדים ושיעורי שגיאות בין המורשת והגרסה ללא שרת.
- לאחר ביטחון, ניתוק נתיב הקוד הישן.
מתן היא אסטרטגיית ההגירה הנפוצה ביותר, כי היא מספקת ערך מצטבר מבלי לדרוש טקס שלם.זה עובד במיוחד כאשר בסיס הקוד המורשת הוא מודולרי היטב (גם אם לא מיקרו-שירותים).
Rebuilding: Full Redesign for Serverless
בנייה כוללת כתיבת הבקשה כולה מאפס באמצעות פרימיטיביים חסרי השרתים.זהו המאמץ הגבוה ביותר, אך מספק את התועלת הגדולה ביותר: גמישות מלאה, תמחור שימוש בתשלום, וקוד מודרני, אמין, רק לשקול מחדש כאשר מערכת המורשת היא בעלת זוג הדוק מדי, ללא תמיכה (למשל, כתוב בשפה מופרכת), או לא לענות על דרישות ביצועים.
כאשר נבנה מחדש:
- עיצוב עבור אדריכלות מבוססת [15], באמצעות תורי הודעות (SQS, Pub/Sub) ואוטובוסי אירועים (אפילוטברידג', Azure Event Grid).
- השתמש ב-FLT:0 infra Structure כקוד FLT:1 (Terraform, AWS CDK, Azure Bicep) כדי להגדיר את כל המשאבים חסרי השרתים.
- החל מה-FLT:0 (המכונה במקור) עיצוב מונחה על ידי צוות (FLT:1), כדי לשבור את המערכת להקשרים כבולים, כל אחד מהם בבעלות צוות.
- תוכנית ל-FLT:0) נתונים הגירה ל- 1:1 במקביל למערכת החדשה עד שהישן יכול לפרוש.
בניית מחדש היא מאמץ רב-חודשי או רב-רבע.התחל עם הוכחה קטנה של תפיסה כדי לאמת את האדריכלות החדשה לפני ביצוע הצוות כולו.
יישום טיפים: בניית פונקציות ללא תשלום / Ready Serverless Functions
ברגע שיש לך אסטרטגיה, להתמקד ביישום פרטים המפרידים אבטיפוס תחביב ממערכת ייצור.הפרקטיקות הבאות יעזרו לך להימנע ממלכודות נפוצות.
שימוש בשירותים מנוהלים היכן שניתן
Serverless הוא על יותר מפונקציות compute.Pair שלך פונקציות עם שירותים מנוהלים באופן מלא כדי להפחית את הנטל התפעולי:
- (FLT:0) בסיסי נתונים: 1.10.2017 אמזון דינמוDB, Aurora Serverless, Azure Cosmos DBB
- (FLT:0) תורי גיל:FLT:1 אמזון SQS, Azure Queue Storage, Google Cloud Pub/Sub
- (ב) אמזון S3, Azure Blob Storage
- (FLT:0) Orchestration: 1FLT:1 ,AWS Step Functions, Azure Durable Functions, Google Workflows
- (ב) [15] ,5 ;2 , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
החלת שירותים מנוהלים פירושה שאתה לא צריך לדרג או לדרג אותם - הם מטפלים בו באופן אוטומטי.עם זאת, להיות מודע להשלכות עלות שלהם על ידי שימוש גבוה.תמיד לדמות תנועה ריאלית בסביבה טרום ייצור.
אופטימיזציה ל- Cold Starts
קר מתחיל להתרחש כאשר פונקציה ללא שרת מופעלת לאחר להיות idle.העיכוב (בדרך כלל 100ms עד כמה שניות) מגיע מטעינה את הזמן ריצה ואת הקוד שלך.
- בחרו שפה עם זמני סטארט-אפ מהירים (Python, Node.js, Go, או .NET בדרך כלל מהר יותר מאשר Java או C#).
- גודל החבילה של פריסה - יש לו תלות מיותרת.
- (ב) ,0) ,ב[[1924]], [[1924]]]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]
- להימנע מ ראשונית כבדה בתוך מטפל הפונקציה; לטעון לקוחות SDK ואובייקטים תצורה בחוץ (בהיקף הגלובלי).
בדיקות קרות מתחילות חיוניות.קבוצות רבות מגלה כי מה שעובד טוב בסביבת פיתוח נכשל תחת לחץ להתחיל קר.
יישום שגיאות Robust Handling and Retries
פונקציות ללא שרת צריכות להתמודד עם כישלונות בחסד, כי ניתן להשתמש בהם אלפי פעמים בשנייה, באג יחיד יכול ליצור יומני שגיאה מסיבית או עלויות מפלט.
- תרפיה בהגיון הראשי בלוקים של ניסיון-catch ולהחזיר קודים משמעותיים של סטטוס HTTP.
- שימוש ב-FLT:0 (dead-letter תורsFIRLT:1) עבור ייעודים סינכרוניים אשר נכשלים לאחר כל הרצויות באמצעות SQS או EventBridge.
- ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- הוסף שברים מעגלים עבור שירותי מטה הזרם שידוע כי הם flaky.
- LogBuild JSON הודעות וכולל מזהה בקשה ייחודי עבור מעקב.
עקבו אחרי All Actions
סביבות ללא שרת לספק חשיפה מוגבלת לתוך פנים רצוף.אתה חייב כלי את הקוד שלך באופן אגרסיבי כדי debug בעיות. השתמש בכלים הבאים:
- (הופנה מהדף ccCloudWatch LogsFLT:1 (או Azure Monitor / Google Cloud Logging) עבור פלטת יומן גלם.
- (FLT:0)Distributed tracing:03 X-Ray, Azure Application Insights, או OpenTelemetry SDKs כדי לראות את זרימת הבקשה מקצה לקצה.
- (ב) ⁇ :0) ⁇ : ⁇ : (בדוגמא, מספר הזמנות מעובדות, עצלות) כמדדים מותאמים אישית של CloudWatch.
- (ב) ,0) , אזהרות של חתלתול: ⁇ 1 , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
מעקב עלויות קרוב בשבועות הראשונים לאחר הגירה.חיוב ללא תשלום כולל חיובים לייעוד, משך ועברת נתונים.ללא היסוס הולם, פונקציה לא מוגדרת עלולה לנפח את החוק באופן בלתי צפוי.
בדיקה ו Deployment: הבטחת Smooth Cutover
בדיקות יישומים ללא שרת דורש חשיבה שונה בהשוואה לבדיקות מונוליטיות. כי כל פונקציה מבודדת, עליך לבדוק לא רק את ההיגיון התפקודי, אלא גם את האינטראקציות בין פונקציות ושירותים מנוהלים.
יחידת ושילוב
לכתוב בדיקות יחידה עבור כל לוגיקה הליבה של פונקציה, ללעג את ה- SDK קורא לשירותי AWS או Azure. ולאחר מכן לכתוב בדיקות אינטגרציה אשר למעשה להפעיל את הפונקציה נגד חיקוי מקומי (כמו LocalStack for AWS או Zoneite עבור Azure) או נגד סביבת בדיקה ייעודית.
תרחישים מרכזיים כוללים:
- זיהוי ותגובה שגיאה
- זמן עבודה ותנאים חיצוניים
- קדחת התחלה קרה תחת עומס סימולציה
- התנהגות ייעודית
- טיפול חוזר ומת כאשר שירות מטהר נכשל
השתמש מסגרת בדיקה התומכת בקוד אסימונים, כגון Jest (Node.js), pytest (Python), או xUnit (.NET).
עקבו אחרי
פלטפורמות ללא שרת סטנדרטיות, אבל גבולות קנה מידה קיימים. הפעל בדיקות כי המראה שיא התנועה לייצור כדי לאמת:
- גבולות קונפיטלציה אינם עולים (Lambda ברירת מחדל: 1,000 הוצאות להורג במקביל לאזור, ניתנות להתאמה באמצעות כרטיס תמיכה).
- חיבורי מסד נתונים (או מסירה באמצעות ערכת) אינם מותשים.
- ביצועים קרים מתחילים מתפוגגות בחכמה במהלך ספייק תנועה.
- מחיר הבקשה נשאר בתוך התקציב.
כלים כמו ארטילריה, ארטילריה ללא שרת, או AWS Distributed Load Testing יכולים לדמות דפוסים אמיתיים בעולם.
מחסומים קלים וכחול ירוק
לאחר שהבדיקות שלך עוברות, לפרוס את הפונקציה החדשה באופן מצטבר.מסגרות ללא שרת מודרניות (AWS SAM, Azure Functions Core Tools, Serverless Framework) תומכים בשינוי התנועה:
- (FLT:0) פריסות קנדיות: כביש 1:1 כביש אחוז קטן של תנועה לגרסה החדשה של הפונקציה, בעוד הרוב מנהל את שיעור השגיאה הישן.
- (FLT:0) פריסות ירוקות כחולות:FLT:1ir ליצור סביבה חדשה (ערמת "ירוק") ולעבור משתנה בשלב ה-DNS או ממשקי API לאחר שבדיקות עשן עוברות.
תמיד יש תוכנית רולבק. כי פונקציות ללא שרת הן בלתי-ממות שפעם פורסמו, חזרה לגרסה הקודמת היא פשוטה כמו להצביע על ההליות לגרסה הישנה.
יתרונות ואתגרים של הגירה ללא שרת
ההחלטה להגר צריכה להיות מונעת על ידי הטבות ברורות, מדידה - אבל גם הערכה כנה של האתגרים.
יתרונות מפתח
- (ב) ניהול תשתיות:0) ניהול תשתיות: 1FLT:1 אין שרתים לתיקונים, ללא תכנון קיבולת, ללא עדכוני מערכת ההפעלה.
- (ב) ,0) ,Automatic scaleing:FLT:1 Functions scale from Zero to אלפי הוצאות להורג במקביל.
- (ב) מחיר תפעולי:0) ל-FLT:1 לשלם רק עבור זמן מקבילה הנצרך במהלך הייעוד (בנוסף לכל שימוש בשירות מנוהל).
- (FLT:0) מחזורי פריסה של פריסטר:FLT:1Build) ניתן לעדכן באופן עצמאי, המאפשר משלוח מתמשך.
- (ב) [15] בסובלנות לקויה: אספקת הענן של LT:1) משכפלת פונקציות על פני אזורי זמינות כברירת מחדל.
אתגרים משותפים
- (FLT:0) תחילת הגינות: לא בעיה למשרות רקע, אלא יכול להשפיע על ממשקי API של המשתמש. Mitigate עם הקצאת מטבע או מתן משימות ארוכות.
- (FLT:0) ניהול המדינה: ⁇ FLT:1 פונקציות ללא תשלום הן ללא תנאי על ידי עיצוב.You must outize המדינה למסד נתונים, כעים, או אחסון אובייקטים.
- (FLT:0)Vendor Lock-in:FLT:1 לכל ספק ענן יש שירותים ייחודיים ללא שרת. השתמש בשכבות מופשטות (כמו מסגרת Serverless Framework או Terraform) כדי להקל על הגירה עתידית פוטנציאלית.
- (ב) ⁇ :0) ⁇ : "לא שרת יחיד ל-SSH לתוך, אתה מסתמכ על יומנים ומופץ מסלול.
- (FLT:0) הגבלת זמן של רדיפה: FLT:1 למרבית הפונקציות ללא השרתים יש זמן מקסימלי (15 דקות למנדה).אם תהליך מורשת פועל יותר זמן, עליך לשבור אותו בצעדים קטנים יותר או להשתמש בשירותי תזמורת.
מסקנה: מסע אסטרטגי, שלב
קבלת יישום מורשת לאדריכלות ללא שרת אינה החלטה כלל או כלום.הגירות המצליחות ביותר מתחילות קטנות – אולי על ידי מיצוי נקודת API אחת, בסיכון נמוך – ולהרחיב את החוץ ככל שהצוות מרוויח ביטחון.על ידי הערכה מעמיקה של תלות, בחירת אסטרטגיית ההגירה הנכונה (עוינת, שינוי או בנייה מחדש), ובדיקה קפדנית של כל רכיב, יכול לפתוח את יכולת ההיקף, את הגמישות, ואת הבטחות השרתים.
זכור כי ללא שרת הוא לא כדור כסף. כמה עומסי עבודה מורשת, במיוחד אלה עם דרישות שקיפות הדוקות או נדל"ן כבד, עשויים להיות מוגשים טוב יותר על ידי מכולות או מכונות וירטואליות מנוהלות. השתמש בתהליך ההגירה כהזדמנות למודרניזציה של האדריכלות שלך, לשפר את היציבה הביטחונית ולבנות בסיס שיכול להתאים לצרכים עסקיים עתידיים.
(ב) לעיין בתיעוד הרשמי: (ב) ,(א)ב) ,(א) , עיין בתיעוד הרשמי של ה-[[1924]]: [[1924]], [[1924]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]]