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

מה הן טכנולוגיות ללא Server?

(מחשוב ללא שרת הוא מודל של הוצאה בענן שבו ספק הענן מנהל באופן דינמי את הקצאה ואספקת שרתים.מפתחים כותב ופרוס קוד בצורת פונקציות או מכולות, והספק מטפל בדרגות, תיקון וזמינות.המונח "ללא תשלום" אינו אומר השרתים נעדרים; אלא, השרת מנקה את ספקי האחסון, כגון:0AWSREFIRULRE, לדוגמה: 3.

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

המונחים: real-Time data Pipelines

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

  • (FLT:0Data IngestionFLT:1) - נקודת הכניסה שלוכדת אירועים מיצרנים (חיישנים של IoT, יישומים ניידים, יומני שרת אינטרנט, מסדי נתונים) נהלים שירותים כגון אמזון Kinesis Data Streams, Azure Event Hubs, ו-Google Cloud Pub/Sub נועדו לטפל בעומס גבוה, בתנאי עמידה.
  • (FLT:0Data ProcessingFLT:1) - הטרנספורמציה, סינון, הפחתת, העשרה או ניתוח של אירועים כפי שהם זורם דרך הצינור. פונקציות ללא שרת - AWS Lambda, Azure Functions, Google Cloud Functions - הם האפשרות הקלה ביותר עבור עיבוד ללא תנאי, אירוע עיבוד (למשל, שינויים מורכבים יותר או פעולות ממשלתיות (למשל, חלונות, גלגולים), כמו ספקי Microsoft מעבדים ללא תשלום, Microsoft Analytics, כמו מנועי עיבוד אוטומטי).
  • (FLT:0Data StorageFLT:1) - היעד שבו תוצאות מעובדות מתקיימות עבור ניתוחים, לוחות נתונים, או לטווח ארוך של שמירה. אפשרויות טווח מחנויות ערכיות מפתח (Amazon DynamoDB, Azure Cosmos DB) למסד נתונים בעמודה (Google BigQuery, Amazon Redshift Serverless) ו-DesApp Storage).
  • (FLT:0) ויסקיליזציה ו- MonitoringFLT:1 - כלים המספקים לוחות עת אמיתיים, התראה וצייתנות.ניהול שירותי BI כגון אמזון QuickSight, Microsoft Power BI (מתחבר באמצעות הזרמת נתונים), ו-Google Looker Studio יכול לצרוך נתונים.

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

תבניות אדריכליות ל- Serverless Real-Time Pipelines

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

פאן-Out with Message Queues

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

עיבוד צנרת עם פונקציות שלב

כמה צינורות דורשים שלבים עיבוד זניחים שבו הפלט של פונקציה אחת להאכיל לתוך הבא. במקום לתזמר את השיחות האלה באופן ידני עם קוד, תזמורות שירות כמו AWS Step Functions, Azure Logic Apps, או Google Cloud Workflows לתאם רצף של פונקציות ללא שרת.זה שימושי עבור שינויים דמויי ETL שבו יש לאמת, העשרה, ולאחר מכן מצטבר התזמורת.

עיבוד עם Stateful Compute

עבור מקרים הכוללים צמחי חלונות (למשל, ספירת קליקים לדקה) או עיבוד אירועים מורכבים (משחקים בתאים לאורך אירועים), פונקציות ללא תנאי המדינה אינן מספיקות למנוע עיבוד זרמי זרימה כגון Apache Flink על Kinesis Data Analytics או Google Data Drive State, זמן חלונות, בדיוק עלות ניתוח, בדיוק על גבי שבבים אלה לרוץ באופן חסר מרפא - אתה מגדיר את העיבוד של ההיגיון (SQL או Javaon / מחסומים) ו-P) דורש את התבנית של ניהול רכב יעיל ביותר עבור עובדים סטנדרטיים.

בניית צינור: דוגמא של AWS

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

  1. (FLT:0) ⁇ נתונים: 1FLT 1 A Kinesis Data Stream with two shards (הדברים הדרושים) כל shard יכול לצטט 1 MB / 1000 רשומות / מפיקים - כגון יישום אינטרנט או CloudFront logging - לשלוח אירועים JSON לזרם.
  2. (FLT:0 Data Processing:EverFLT:1) הפונקציה A Lambda מופעלת על ידי זרם Kinesis (באמצעות מיפוי מקור אירועים) הפונקציה קוראת אצילות של רשומות, מפצה את JSON, וספירה את שדה "url" עם זאת, Lambda פונקציות הן ללא מדינה וכל אחד ממעבדי ה- CLEEP (TECT-TTP) כדי לבצע ספירה, אחד יכול לכתוב לתוך LDL עם זרם נתונים עם שימוש נוסף של ECT U L.
  3. (FLT:0)Storage:FLT:1 , זרם הפלט גורם לתפקוד נוסף של Lambda שכותב את הספירות המצטברות (URL, ספירה, זמן קצה החלון) ל-DymoDB עם TTL של, למשל, 24 שעות.
  4. (FLT:0)Visualization:FLT:1 אמזון QuickSight מתחבר ל-DymoDB באמצעות Athena (באמצעות מחבר קישורים של Athena DynamoDB) כדי ליצור לוח זמנים אמיתי המרעננות כל דקה.

צינור שלם זה אינו משתמש ב- EC2 מקרים, אין קיבולת דחיסה ידנית, ורק עלויות כאשר נתונים זורם.פונקציות של Lambda, דינמימוDB קורא/כתיבה, ו-Kinesis shard שעות הן הנהגים העיקריים עלות. Monitoring מטופל על ידי לוחות נתונים של CloudWatch ואזהרות על גיל זרם (isBehindLatest) כדי לזהות אטה.

היתרונות של שימוש Serverless for Real-Time Pipelines

  • (FLT:0 True אלסטיאלטי:0) ,(Allastity:FLT:1) , Serverless Services scale from Zero toאלפים של הוצאות להורג במקביל תוך שניות.במהלך מכירה פלאש או אירוע ויראלי, החלוקה אוטומטית פועלת על פני מקרים של תפקוד או זרמי shards - אין יכולת תכנון.
  • (FLT:0) Cost-Effectiveness:FearLT:1 ; Pay רק עבור המשאבים הנצרכים.פונקציות נקבעות לכל מילימטר של ביצוע; אחסון זרימה הוא לשעה GB; פעולות מסד נתונים הן לקריאה / לשכתב.אין עלות לתשתיות של idle.עבור עומסי עבודה ספירה, השרתים יכולים להיות זולים יותר מ מובנים.
  • (FLT:0) לחנך את מבצע Overhead:FIRLT:1 אין חתומי שרת, ללא עדכוני מערכת ההפעלה, אין שום יכולת לצפות.הצוות יכול להתמקד בלוגיקה עסקית ואיכות נתונים במקום ניהול תשתיות.
  • (FLT:0) lexibility ואינטגרציה: FLT:1eur כל ספק ענן מציע עשרות מקורות אירועים שיכולים לגרום לפונקציות או מעבדי זרם זרם - זרםי נתונים משתנים (DynamoDB, שינוי נתונים לכידת מ-RDS), העלאת קבצים (S3 אירועים), Webhooks ועוד. integrating מקורות נתונים חדשים לעתים קרובות דורש רק כמה שורות של תצורה.
  • (FLT:0)Fault Isolation: FLT:1 כישלון בתפקוד אחד לא מתרסק חלקים אחרים של הצינור.שירותים כמו Lambda נבנות-בחדש לוגיקה ו- DLQs (התנורים המאוחרים יותר) מעבדים המדינהיים יכולים למחסום ולהחלמה מכישלונות ללא אובדן נתונים.

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

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

  • (FLT:0)Cold Startsue: 1 כאשר פונקציה ללא שרת אינה מופעלת לתקופה, הפלטפורמה חייבת לזרז מיכל חדש, הוספת עצלות (לעתים קרובות 100-500 מ"מ) עבור צינורות בזמן אמת שבו sub-100ms latency הוא קריטי, קר יכול להיות בעייתי.
  • (FLT:0) ניהול המדינה: ⁇ FLT:1 פונקציונליות הם חסרי מעמד על ידי עיצוב.אם צינור צריך לקשור אירועים לאורך זמן (למשל, לזהות מושב משתמש), המדינה חייבת להיות מאוחסנים חיצונית (DynamoDB, ElastiCache, או מעבד זר ללא שרת).זה מוסיף עצלות ועלות בחירה של חנות המדינה הנכונה וניהול TTL הם חיוניים.
  • (FLT:0) מבטיחות פעם אחת: ⁇ 1 [Achieving בדיוק על ידי עיבוד צינורות ללא השרת הוא קשה. Lambda פונקציות בשימוש מזרם עשוי לקבל רשומות כפולות בשל retries. Idempotent עיבוד (למשל, באמצעות מזהה אירועים ייחודיים וגיבוי לאחסון) הוא חייב להיות מנועי עיבוד כמו Flink יכול לספק בדיוק בתוך צינורות עצמם, אבל גם כדי לשפר את צינורות עצמם.
  • (FLT:0)Monitoring and Debugging: ההרחבה 1 (עם פונקציות רבות אמפמריאות, ניתוח יומן מסורתי הופך מכריע.מרכז כניסה (CloudWatch Logs, Azure Log Analytics), מסלול מבוזר (AWS X-Ray, Openmetry), ו- קידוד מובנה הם הכרחיים.
  • (FLT:0)Vendor Lock-in:FLT:1 לכל ספק ענן יש טעם משלו של שירותים ללא שרת ואינטגרציה אירועים. צינור שנבנה על Kinesis + Lambda + DynamoDB אינו נייד ישירות ל- Azure Hubs + Azure Functions + Azure Functions + Cosmos DB. Mitigate על ידי הסרת הצינור לקוד נייד (למשל, באמצעות עננים) ו-Flinks Open.

אסטרטגיות אופטימיזציה

מודלים ללא תשלום דורש תכנון זהיר כדי להימנע מהפתעות:

  • (FLT:0) אירועים: FLT:1 פונקציות יכול לעבד רשומות מרובות לייעוד.עם Kinesis, להגדיר גודל אצווה וחלון אצווה כדי למזער מספר ייעודים.לדוגמה, עיבוד 1000 רשומות בפונקציה אחת עולה אותו דבר כמו הוצאה אחת - הרבה יותר זול מ 1000 ייעודים נפרדים.
  • (FLT:0) זכות-Size Compute:FLT:1 , Lambda הקצאת זיכרון מתאים ישירות עם CPU ורשת באמצעות חישוב.עבור שינויים נתונים שהם CPU-bound (למשל, JSON parsing, דחיסה), זיכרון גדל (ולכן CPU) יכול להפחית את זמן הביצוע ועלויות הכוללות נמוכות יותר (בגלל עלות = משך זיכרון) פונקציות עם הפונקציה AWS Lambda Powerning כדי למצוא את הזיכרון האופטימלי.
  • (FLT:0)Use Managed Stream Processors for High Volume:03FLT) 1 לקבלת מידע מעל כמה אלפי רשומות לשנייה, Lambda יכול להיות יקר בשל האשמות ל- Perquest. Kinesis Data Analytics או Azure Stream Analytics, בעוד שיש לו עלות בסיס שעה, לעתים קרובות להוכיח זול יותר עבור מיליון אירועים כי הם מבזבזים עיבוד פנימי וטעימים ליחידת הזרמת שתן.
  • (FLT:0)Compress Data:FLT:1 אירועים מדכאים לפני שליחת הזרם מפחית עלויות אחסון וזמן ביצוע Lambda. Gzip או Scpy יכולים להפחית את גודל המטען באופן משמעותי.
  • (FLT:0)Leverage TTLs:FLT:1 אחסון זמני (DynamoDB, S3 Lifecycle מדיניות) צריך להיות תפוגה אוטומטית.

שיקולים ביטחוניים

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

  • (FLT:0)-Privilege IAM: ⁇ 1:1 כל פונקציה צריכה להיות תפקיד צר IAM המעניק רק את הפעולות הנדרשות על משאבים ספציפיים.לדוגמה, הפונקציה Lambda קריאה מ Kinesis צריכה להיות "קבלה מחדש", "DescribeStream, ו-"ListShards" על זה ספציפי, שום זרם יותר כדי להגביל את מפתחי VPC במידת הצורך.
  • (FLT:0)Encrypt Data in Transit and at Rest:03FLT:1) הצפנה אפשרית על זרמי Kinesis (AWS KMS), טבלאות דינמודי, ו-S3 דליים. השתמש ב- TLS עבור כל שיחות API חיצוניות. Serverless פונקציות יכולות גם להשתמש במשתנים עם הצפנה KMS עבור סודות.
  • (FLT:0)VPC Placement: 1FLT אם הצינור צריך לגשת למשאבים בתוך VPC (למשל, מסד נתונים פרטי), מקום Lambda פועל ב-VPC עם קבוצות אבטחה מתאימות ו- subnets. להיות מודע לכך ש-VPC Lambda מתפקדת כבר קר ומתחילה ונגיש שער NAT לגישה לאינטרנט - אשר מוסיף.
  • (FLT:0) Input אימות ו- Sanitization: ההרחבה 1 (מכיוון שאירועים עשויים לבוא ממקורות שאינם בוטחים, פונקציות השרתים חייבות לאמת ולהעריך את כל הקלטים כדי למנוע התקפות הזרקות או נתונים ממאירים מהתמוטטות הצנרת. השתמש בספריות אימות סכימה (למשל, ג'סון שema) בנקודת הסימון.

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

צינורות בזמן אמת ללא שרת נמצאים על פני תעשיות:

  • (FLT:0) , מסחר אלקטרוני אישיזציה:FLT:1ir סטרימינג נתונים על מנת לעדכן מודלים המלצה בזמן אמת. Lambda פועל להעשיר אירועים עם פרופילים משתמשים מ- DynamoDB, ולאחר מכן לדחוף ל- cache כמו ElastiCache עבור מנוע ההמלצה.
  • (FLT:0) ,IoT זיהוי: FLT:1 מכשירים לשלוח טלמטרי (temperature, רטט) ל- Azure Event Hubs. פונקציה ללא שרת ב- Azure Functions מפעילה מודל זיהוי חריג קל (למשל, באמצעות ML.NET או Pythont-learn) וגורם התראה באמצעות Azure Logic אם ערכים עולים על פני נתונים ברזולוציה.
  • (FLT:0) זיהוי הונאה: FLT:1 אירועים קמעונאיים לזרום דרך Google Cloud Pub/Sub ל- Cloud Functions ולאחר מכן ל- Bigtable.A עיבוד זרם באמצעות זרימת נתונים (Apache Beam) חל דפוס מוקרן תואם לגילוי בדיקות קלפים או ביצוע בדיקות.
  • (FLT:0Log Analytics בקנה מידה: FLT:1 ⁇ יישומים מואצים באמצעות Kinesis Firehose ישירות לתוך S3 ו-Allastsearch (אמזון פתוח Serverless) Lambda פועל parse ו יומני מבנה לפני אינדקס.

משאבים חיצוניים

עבור צלילה עמוקה יותר, מתייחס לתיעוד הרשמי והמדריכים:

  • (א) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • Azure:0 (בשיתוף:0) ,1) ,Introduction to Azure Stream AnalyticsFLT:203
  • Google Cloud:0 (בתרגום חופשי:0)
  • מדרש: ויקרא י"ד:2 ויקרא יט:

מסקנה

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