Table of Contents
מחשוב Serverless עיצב מחדש את האופן שבו מפתחים בונים ופרוסים יישומים על ידי ניהול תשתיות מופשטות לחלוטין.פונקציות לרוץ על הביקוש, קנה המידה באופן אוטומטי, ואתה משלם רק עבור זמן ביצוע.עם זאת, שינוי פרדיגמה זה מביא קבוצה חדשה של אתגרים של observability. שיטות ניטור מסורתיות המיועדות לשרתים ארוכי טווח לשבור כאשר פונקציות האחרונות מילימטריים, מקרים הם אמפיריים, והסביבה הביצוע משותף ללא כלי נגינה, זה יכול בקלות, ניטור, שמירה על יעילות תפעולית, לחץ, והפסדים, לא יכול להיות יעיל של תפקודים, התקנים תפעוליים, לא יכול בקלות, לא מתאים, ולא אמצעי אבטחה, הוא אמצעי אבטחה, אופטימיזציה, הוא אמצעי אבטחה, הוא אמצעי אבטחה, הוא אמצעי אבטחה, לא מתאים, שמירה על עלויות, שמירה על עלויות אבטחה, הוא חיובי, שמירה על פונקציות אבטחה, הוא יעיל, לחץ יעיל.
האתגרים הייחודיים של אחריות בשרת
אדריכלות ללא שרת מציגה מספר בעיות נפרדות שהופכות את ניטור ומיקום קשה יותר מאשר בהגדרות מסורתיות:
- (FLT:0) פונקציות נבואה: FLT:1 A פונקציה מקרה יכול להתקיים רק כמה שניות. סוכנים קלאסיים שמתקינים דימונים או קבצי זנב הם לא מעשיים.אתה צריך גישה שונה לחלוטין כדי ללכוד מדדים וגלויות.
- (FLT:0)Cold מתחיל:FLT:1 כאשר פונקציה מופעלת לאחר להיות idle, זה עשוי לקחת זמן רב יותר בשל ההפניה של מכולה ועומס התלות.
- (FLT:0)Distributed המורכבות:FLT:1 יישום יחיד ללא שרת לעתים קרובות כרוך פונקציות מרובות, API Gateway, DynamoDB, S3, ושירותים של צד שלישי. Tracing בקשה על פני רכיבים אלה דורש תעודות זהות מבוזרות ו יומני תואמים.
- (FLT:0) ,Granular Cost attribution:FLT:1) הצעת חוק תשלום-per-invocation פירושה שאתה צריך לעקוב אחר אילו פונקציות לצרוך את המשאבים ביותר, כולל זיכרון, משך זמן, ו שיחות API למטה.
- (FLT:0) הסלמה וגזר: ההרחבה ללא שרת 1 ( Serverlessפלטפורמות) יכולה להגיע מאפס למאות מקרים מקבילים בתוך שניות.גמישות זו עלולה לגרום לתכנים במשאבים במורד הזרם ולגרור שגיאות מתפוגגות.
גורמים אלה דורשים ניטור וערימת בנייה אשר בנוי למטרה עבור כלים ללא שרת. Generic לעתים קרובות נכשל ללכוד את הרמה הנכונה של פרטים או להציג שקיפות בלתי מתקבלת על הדעת.
דרישות עבור אחריות ללא תשלום Serverless Observability
לפני הערכת כלים, זה עוזר להגדיר מה יעילות observability נראה בסביבה ללא שרת:
- (FLT:0)Metrics:FLT:1 בזמן אמת נתונים על ייעוד, משך, שיעורי שגיאה, throttles, תדירות התחלה קרה וביצועים במקביל.
- (FLT:0Logs:igFLT:1) לכידת פלט מן הפונקציות, כולל יומני מובנה עם פורמט JSON עבור שאילתה קלה.
- (ב) ⁇ :0) ⁇ :0 (Traces:FLT:1) ,העקב אחר בקשה אחת מ- API Gateway באמצעות פונקציות מבהדה מרובות ושירותי מטה הזרם.
- (ב) [15] , אזהרות פרואקטיביות לאנומליות כגון ספייקטים פתאומיים בשיעורי טעויות, פתיחות קרה מעל גבולות מקובלים, או עלות סטיות.
- (FLT:0) חשיפה גלויה: יכולת 1FLT 1 לשבור עלויות לתפקוד, לבקשה או לתוואי API.זה עוזר לייעל את הביצועים והתקציב.
הכלים שתבחרו צריכים לכסות קטגוריות אלה מבלי לדרוש תצורה ידנית מוגזמת.
כלי ניטור המובילים לסביבה ללא Server
עקבו אחרי AWS Cloud Watch
AWS CloudWatch הוא הפתרון ניטור Native עבור AWS Lambda ושירותים אחרים של AWS.It אוספת באופן אוטומטי מדדים כגון ייעודים, משך, ספירת שגיאות, ו- throttles.You יכול להגדיר מדדים מותאמים אישית, ליצור אזעקה ולבנות לוחות עתירים.CloudWatch מספק גם איסוף יומן באמצעות CloudWatchs עם סוכן בנוי כי Lambda משתמשת ב- Natively.
חוזקות של CloudWatch כוללות אפס עלות נוספת עבור מדדים בסיסיים, שילוב עמוק עם AWS, ותמיכה לפרסום מדד מותאם אישית באמצעות FLT:0. [ API] עם זאת, ברירת המחדל יכולה להיות רועשת ויקרה בקנה מידה. CloudWatchs חיובים לאחסון, צפיות, ועברת נתונים. משתמשים לעתים קרובות מוצאים את ממשק השאילתה (Clouds Log Insights) פחות חזק מאשר כלי ניתוח ייעודי.
עבור מסלול מבוזר, AWS מציעה X-Ray, המשלב עם CloudWatch אבל הוא שירות נפרד. X-Ray מספק מפות שירות, עקבות, ו annotations אבל דורש כלי שיט מפורש בקוד הפונקציה שלך.
אתר האינטרנט הרשמי של CloudWatch (FLT:0)
Datadog
Datadog הוא פלטפורמה צד שלישי מאומצת מאוד המציעה ניטור מאוחד על פני ספקי ענן.יכולות ניטור השרתים שלה כוללות לוחות מחוונים מחוץ לקופסא עבור AWS Lambda, Azure Functions, ו-Google Cloud Functions. Datadog באופן אוטומטי מגלה פונקציות, איסוף מדדי ייעוד, ומספק זיהוי התחלה קר בזמן אמת.זה גם מציע מסלול מבוזר עם כלי אוטומטי באמצעות שכבות של Datadog Lambda.
אחד היתרונות המרכזיים של Datadog הוא היכולת שלה לקשור מדדים, יומנים, ושרידים בממשק יחיד.You יכול להתחיל מספיק בשיעור שגיאה ולתרגל לתוך קווי העקב המדויקים והלוגים עבור הפונקציה הזו.הפלטפורמה כוללת גם זיהוי אנומלי, ניטור סינתטי, ותכונות ניתוח עלות.עם זאת, כלב נתונים יכול להיות יקר כמו נפח של מדדים ולוגים גדל, הדורש ניהול קפדני של תקציב.
(ב) ◄ ⁇ ⁇ ⁇
חדש Relic
Relic חדש מציע פתרון ניטור רב עוצמה ללא שרת תומך AWS Lambda, Azure Functions ו-Google Cloud Functions.It מספק ניתוח מעקב מבוזר, שגיאות ופירוק ביצועים מפורטים (כולל התחלה קרה לעומת משך התחלה חם). New Relic מספק גם חשיפה ברמת הקוד על ידי הצגת קווי הזמן ביותר בתוך הפונקציה שלך.
הפלטפורמה משתמשת סוכן קל משקל המשלב באמצעות שכבות Lambda או תוסף המסגרת Serverless. New Relic של לוחות המחוונים של New Relic הם מותאם אישית וכוללת התראות AI מופעל.תכונה בולטת אחת היא "Errors inbox" אשר קבוצות שגיאות דומות כדי להפחית את הרעש.New Relic יש שכבה חופשית נדיבה אבל העלות עבור הארגון יכול להיות גבוה, במיוחד עם כרכים גדולים.
(ב) ◄ ⁇ ⁇ ⁇ ⁇
פרומתאוס וגרפן
עבור צוותים המעדיפים פתרונות קוד פתוח, Prometheus בשילוב עם Grafana הוא אופציה רבת-תכליתית, אך באופן מותאם אישית, בעוד Prometheus מיועד לאיסוף מדדים מבוסס-החלופה ועובדת הכי טוב עם שירותים ארוכי טווח, ניתן להתאים אותו ללא שרת באמצעות שערים או לייצוא מותאם אישית.
Grafana מספקת ויזואליזציה עשירה ואזהרות.השילוב נותן לך שליטה מלאה על ערמת ניטור שלך, אבל זה דורש התקנה משמעותית ותחזוקה.אתה צריך לנהל את התשתית עבור Prometheus, התראה, ו Grafana, ולהבטיח כי מדדים מתפקודים חסרי השרת הם דחף או מגרד.זה לא פתרון מסובך, אבל זה מציע את הנמוך ביותר עבור עלות ועלויות מנעולים מונעים.
(ב) עיין ב[[1924]]
כלים יעילים לשימוש Serverless
AWS CloudWatch Logs
כאתר ברירת המחדל של AWS Lambda, CloudWatch Logs מופעל באופן אוטומטי כאשר אתה מפעיל פונקציה. כל פונקציה כותב יומני לקבוצת יומן, וכל ייעוד יוצר זרם יומן.You יכול להשתמש ב-AWS Console או CLI כדי לחפש יומני, אבל שאילתה מתקדמת דורשת דפדפנים של CloudWatch Logs Insights, אשר משתמש במס דמוי SQL.
CloudWatch Logs הוא פשוט לאמץ אבל יכול להיות יקר להאט בקנה מידה.מדיניות שמירת Log חייב להיות מוגדר כדי לשלוט בעלויות.מפתחים רבים להשתמש אינטגרציה מובנה (למשל, FLT:2) כדי להפוך את הלוגים יותר לחיפוש.עם זאת, CloudWatch Logs לא מציעים התראה על תבניות יומן ללא תצורה נוספת באמצעות מסננים או ערפל ענן.
Logz.io
Logz.io הוא פלטפורמה מבוססת ענן ניתוח אלקטרוני שנבנה על גבי המנויים של ELK Stack ו Grafana. זה מציע צינור צבירה מנוהל עבור יומני ללא שרת, באמצעות סוכן או באמצעות הזרמה ישירה ממנויי AWS CloudWatch Logs.z.io מספק תובנות המונעות AI, זיהוי חד משמעי, ומקלטים מראש בנוי עבור AWS Lambda. זה גם תומך מתאם בין s ו ⁇ .
הפלטפורמה מתאימה לצוותים שרוצים פתרון לוגי מנוהל במלואו עם תכונות ארגוניות כמו בקרת גישה מבוססת תפקידים וציות (SOC 2, HIPAA) . Logz.io תמחור מבוסס על נפח של נתונים, כך שאתה צריך להיות מודע לרישום בפועל.זה משלב עם AWS, Azure ו-Google Cloud בקלות באמצעות קידוד.
(ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
פשטנק
Splunk הוא פלטפורמת ניהול ואנליזה עוצמתית בשימוש נרחב בסביבות ארגוניות.זה יכול לצמיד ⁇ ללא שרת באמצעות HTTP Event Collector (HEC) או CloudWatch Logs filters שפת עיבוד החיפוש של Splunk (SPL) מאפשר שאילתות מורכבות, ניתוח סטטיסטי, ואזהרות בזמן אמת.זה גם מספק לוחות נתונים ודיווח.
Splunk מציעה יכולת דרוג גדול ושילובים רבים, אבל זה מגיע עם עקומת למידה משמעותית ותגית מחירים. עבור קבוצות קטנות יותר או יישומים קלים, Splunk עשוי להיות overkill. עם זאת, עבור ארגונים שכבר הושקעו ב Splunk עבור תשתיות אחרות, הוספת יומני ללא שרת הוא פשוט.
(ב) ◄ [15]
אלקקאס (Elasticsearch, Logstash, Kibana)
הקוד הפתוח אלקיק מספק צינור גמיש: Logstash (או Beats) אוסף יומני, אלסטיאנס אינדקס אותם, ו Kibana הדמיה ושאילתות.עבור Serverless, אתה יכול קדימה יומני מ-CloudWatch באמצעות הפונקציה Lambda הדוחפת ל- Logstash או ישירות אל-Allastvis. Alternatively, סוכן אלסטי יכול לרוץ כצד (למרות שזה קשה יותר עם פונקציות epheal).
אלק נותן לך שליטה מלאה על טרנספורמציה ושמירת נתונים, וזה יכול להיות מעוגן עצמי או בשימוש כשירות מנוהל (ענן אלסטי) הראשי הוא מורכבות תפעולית.אתה צריך לשמור על הערימה, לטפל בדרגות, ולהגדיר ניהול מחזור חיים אינדקס. עבור כרכים גבוהים, עלות התשתית יכולה להיות לא טריוויאלית.
(ב) ⁇ (ב) ⁇ ⁇ ⁇
שיבוש: A Critical Complement
מדיס ולוגים לבד לעתים קרובות לא יכולים לחשוף את התמונה כולה.התקמת מחוספסת חיונית להבנת האופן שבו בקשה זורם באמצעות פונקציות מרובות ללא שרת, שערי API, ושירותי מטה כמו דינמוק או SNS. ללא חלוף, תגובה איטית עלולה להיות מיוחסת לתפקוד הלא נכון.
(FLT:0)AWS X-RayFLT:1hil הוא שירות המסלול הילידים עבור AWS Lambda. זה באופן אוטומטי ללכוד פלחים ו subsegments עבור שיחות AWS SDK.You יכול להוסיף תת-קבוצות מותאם אישית עבור כל עבודה נוספת. X-Ray משלב עם שירות CloudWatchLens כדי לשלב עקבות עם מדדים ולוגים.
(FLT:0) פתח טלמטריפל 1 (OpenTelemetryFLT) הוא תקן מתפתח עבור observability התומך בשרתים ללא שרת.You יכול כלי את הפונקציות שלך עם OpenTelemetry SDKs ולשלוח טלמטורי להזמנות שונות (Jaeger, Zipkin, Datadog, New Relicry) מספק שפה ספציפית אוטומטי-in-in-in-in-in-to-in-in-in-in-in-in-resation וספק API, אשר מנעול מנעול, אשר מנעול מנעולים.
(ב) [ה][דרוש מקור]] [ה]]] [ה]] [ה]]]][ה]]]][ה]]]][ה]][ה]]]][ה[ה]]]]], ו[ה[[המאה ה-20]], הן בעלות, והן ראויות להכרעה אם תרצו פתרון מיוחד.
כיצד לבחור את הימין
השילוב הטוב ביותר של ניטור וגלישה תלוי בתקציב שלך, מיומנויות צוות, ספק בענן ובגרות מבצעית.חשב גורמי ההחלטות הבאים:
- (FLT:0) עומק פרופווידבר: אם אתה נמצא ב-AWS, החל מ-CloudWatch + X-Ray עשוי להיות מספיק. להעריך אם העלות הנוספת של כלים של צד שלישי שווה את UX וניתוח משופר.
- (FLT:0)Multi-cloud או היברידית:FreaLT:1; אם אתה משתמש במספר ספקי ענן, להימנע מכלים קנייניים. Datadog, New Relic, או פתרונות קוד פתוח כגון Prometheus + ELK מספקים לוחות נתונים מאוחדים סביבות.
- (FLT:0) המומחיות של Team:FLT:1 קוד פתוח מחסניות דורשות מיומנויות DevOps כדי לשמור על.ניהול פלטפורמות SaaS להפחית את פני השטח התפעולי אבל עשוי להיות יקר יותר.
- (FLT:0)Scale ועלויות: 1FLT ( 1FLT) הערכה יומן ונפחים המדדים שלך.לפעמים הפשטות של CloudWatch Logs + מסנן מנויים לשקע זול יותר (כמו S3 + Athena) יכולה להיות יעילה יותר מאשר פלטפורמת יומן יומן יומן יומן ייעודי.
- (FLT:0) תואמים: 1FLT (חלק מהתעשיות דורשות SOC 2, HIPAA או תאימות GDPR.להבטיח את הכלי שתבחר לתמוך בהסמכה אלה ויש לו בקרות תושבות נתונים.
דפוס נפוץ הוא להשתמש ב-CloudWatch עבור מדדים ולוגים של בסיס, ולאחר מכן להשתמש מסנן מנויים כדי לקדם יומנים למנוע ניתוח חזק יותר כמו Logz.io, Splunk, או אלסטיאלס. עבור tracing, X-Ray או Datadog APM ממלא את הפער.
Best Practices for Serverless Observability
ללא קשר לכלים שתבחרו, לאחר שיטות אלה ישפרו את יעילות המפעיל:
- (FLT:0)Use מובנה logging.FLT:1 Output יומניs בפורמט JSON עם סכימה עקבית. Include בקשה מזהה, שם פונקציה, גרסה ונתוני תזמון.זה הופך את ניתוח יומן הרבה יותר יעיל.
- (FLT:0) זיהויים של קורלציה (FLT:103) יוצר מזהה ייחודי בנקודת הכניסה (API Gateway או SQS) ולהעביר אותו דרך כל ההליכים מטה הזרם.זה מאפשר מעבר מקצה לקצה גם אם אין לך מערכת הפעלה מבוזרת.
- (FLT:0) מוניטור קר מתחיל בזהירות.FLT:1 Track הסתברות ומשך זמן.אם התחלה קרה משפיעה על חוויית המשתמש, לשקול אסטרטגיות החלפה (AWS) או התחממות כלי ניטור שלך צריך להזהיר כאשר קר מתחיל לעלות על סף.
- מדיניות שימור (FLT:0) ,0) מדיניות שימור יומני Define המבוססת על הצרכים העסקיים.AWS CloudWatch מאפשרת הגדרת שימור עבור קבוצה.דאטה יומני מעל 30 ימים לסביבות פיתוח; לשמור על יומני ייצור יותר מבוססים על תאימות.
- (FLT:0) ,Samplelyeur.FLT:1 לא כל בקשה צריכה להיות במעקב או מחובר בפירוט מלא. השתמש דגימה כדי להפחית את העלות תוך שמירה על נתונים קריטיים עבור debugging. Datadog ו X-Ray תמיכה ראש מבוסס דגימה; אתה יכול גם ליישם דגימה מבוססת זנב עבור פונקציות גבוהות.
- (FLT:0) אזהרות ניתנות לפעולה.FIRLT:1) אל תזהרו על כל שינוי מדדי. להתמקד על ספייקטים של שיעור שגיאות, סטיות משך, עלות סטיות, ואירועי חלוף. השתמש בטכניקות הפחתה בעייפות חריפות כמו קיבוץ ודיכוי.
- (FLT:0)Monitor עולה לתפקוד.FLT:1) השתמש בתכונות הקצאת העלות של ספק הענן שלך (AWS Cost Explorer עם תגי משאבים של Lambda) לצד כלי ניטור שלך.
מסקנה
ניטור יעיל ומיקום בסביבות ללא שרת דורש כלים אשר אחראים על נבואות, בקנה מידה, מורכבות מבוזרת. בעוד פתרונות מקומיים כמו AWS CloudWatch ו- X-Ray מציעים קו בסיס מוצק, פלטפורמות צד שלישי כגון Datadog, New Relic, ו- Logz.io מספקים ניתוח עשיר יותר והתאמה קלה יותר על פני מדדים, יומניים, ועצמות פתוחות.
הגישה הנכונה היא להתחיל עם הכלים המובנות של ספק השרת מציע, ולאחר מכן שכבה על פתרונות מיוחדים כמו הצרכים שלך לגדול. יישום מובנה, זיהויים קורלציה, ו דגימה מוקדם כדי לשמור על עלויות מנוהלות. באופן קבוע מחדש את ערמת הכדאיות שלך כמו סולם היישום שלך ואת תכונות הכלי החדש להופיע.עם האסטרטגיה הנכונה, אתה יכול להשיג את הנראות הנדרשת כדי להפעיל יישומים ללא ספק, אמין, עלות, באופן מאובטח, עלות ויעיל.