WEBA

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

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

514 מילים28 עובדות אומתו

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

בלי שרתים אבל עם שיהוי

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

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

זה מחיר כבד.

בעוד שלבנייה על גבי R2 יש יתרונות רבים, ישנו חיסרון אחד: שיהוי כתיבה גבוה יותר. בגרסה הראשונית של K2, זה מצטבר לכשנייה אחת של שיהוי כתיבה באחוזון ה-99 של זמני התגובה.ההכרזה הרשמית בבלוג של Cloudflare

תורים, צינורות או יומן אירועים

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

הכלי השני, Basin Pipelines, מתמקד בקליטת זרמי מידע גולמי ושמירה ישירה של התוצאות לתוך טבלאות Apache Iceberg או קבצי Parquet. K2, לעומת זאת, מתייצב בדיוק במשבצת של יומן אירועים מובנה: הוא מאפשר למספר צרכנים שונים לקרוא את אותם הנתונים בקצב שלהם, תומך בפיצול עבודה בין עובדים ומציע שמירה ארוכת טווח.

השוואת כלי העברת ההודעות של קלאודפלייר
שירותייעוד מרכזימודל צריכהשיהוי וביצועיםיעד טיפוסי
Cloudflare Queuesעיבוד משימות בודדותתור משימות עם מנגנוני retry והשהיותשיהוי נמוך פר הודעהשירותי רקע ועיבוד אסינכרוני
Basin Pipelinesקליטה, המרה והזרמת מידעטרנספורמציות SQL והזרמה ישירהמותאם לעיבוד אצוות לאגמי נתוניםטבלאות Iceberg וקבצי Parquet
K2 Streamsיומן אירועים עמיד בריבוי צרכניםמנויים מבוססי משיכה בחכירהשיהוי כתיבה של כשנייה (p99)אפליקציות צד שרת ועיבוד אנליטי

איך זה עובד בפועל

בצד ההפקה, K2 מקבל רשומות כמידע בינארי גולמי דרך ממשק HTTP API או ישירות מתוך סביבת Workers. כל אצווה נכתבת בצורה אטומית: כל ההודעות נשמרות בהצלחה או שאף אחת מהן אינה נרשמת. נתוני התנועה עוברים דרך נקודות הקצה של קלאודפלייר, כולל אלו הפועלות בישראל בערים תל אביב וחיפה, מה שמאפשר קליטה מקומית של המידע.

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

המחיר והאותיות הקטנות

נכון להיום השירות זמין בבטא ציבורית רק עבור משתמשים עם מנוי Workers Paid בתשלום, כפי שמוסבר בתוך המדריך להתחלת עבודה. השימוש במהלך הבטא אינו כרוך בעלות נוספת, אך מוטלות עליו מגבלות נוקשות: נפח אחסון מקסימלי של 10 גיגה-בייט בסך הכול בחשבון, וקצב הפקה מרבי של 30 מגה-בייט לשנייה לכל ערוץ.

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

לא הייתי ממהר להגר.

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

מקורות

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

מה שואלים על זה

האם אפשר להשתמש בספריות קפקא קיימות מול K2 כבר עכשיו?

לא. בשלב הבטא הנוכחי התקשורת מתבצעת אך ורק דרך ממשק ה-HTTP API של קלאודפלייר או באמצעות bindings מתוך Workers. תמיכה ישירה בספריות לקוח של Apache Kafka מתוכננת להמשך הדרך.

למה שיהוי הכתיבה ב-K2 מגיע לכדי שנייה שלמה?

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

האם השירות כרוך בתשלום נוסף בתקופת הבטא?

השימוש ב-K2 אינו מחויב בתשלום נפרד במהלך תקופת הבטא, אך הגישה מותנית בחשבון בעל מנוי Workers בתשלום (Workers Paid).