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

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

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

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

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

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

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

אז מה באמת קרה היום בצהריים​

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

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

הרשימה כללה שמות שלא רואים בדרך כלל ברשימת תקלות: X, ChatGPT, Spotify, Canva, Zoom, חלק משירותי Google ו AWS, פלטפורמות קריפטו ענקיות, וגם DownDetector שאמור לדווח על תקלות ולא להיכשל יחד איתן.

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

רגע. מה גרם לזה?​

הקטע הזה כנראה יעניין במיוחד את מי שאוהב להבין קוד ותשתיות.

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

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

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

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

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

* אם זה באמת מרתק אותך, קפוץ לתחתית הכתבה, לפירוט מלא בספוילר. למיטיבי לכת בלבד.

מי נפגע בעולם​

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

לטענת Cloudflare זו התקלה הכי חמורה שהייתה להם מאז 2019. וזה בהחלט הרגיש כך.

ומה אצלנו בישראל?​

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

WhatsApp Image 2025-11-18 at 13.37.08.jpeg

פרוג ונפילות שרת. לא משהו שכיף לחזור אליו​

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

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

ולכן היום, כשהאתר שוב נתקע, המחשבה הראשונה הייתה "מה קרה אצלנו". לרגע היה דה-ז'ה-וו עם מועקה נשכחת, אוי, שוב פרוג נפל. אבל לא, הפעם זה לא היה אצלנו. זה היה אצל Cloudflare.

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

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

ולסיום, משהו קטן אחרי יום סוער​

האמת, לא זאת הייתה כוונתי כשהתחלתי לסכם עוד יום בפרוג, אבל אם הגעתם עד כאן, סימן שמעניין אתכם מה באמת עבר היום עלינו בפרוג, על Cloudflare ועל האינטרנט העולמי. מגיע לכם פינוק קטן מאיתנו.
10% הנחה על מנוי פרימיום שנתי לפרוג, ל 24 השעות הקרובות. אל תפספסו!
קוד קופון: Cloudflare (איך לא?!).

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

כך קרסה Cloudflare מבפנים

(הזמנים המדויקים לפי תיעוד Cloudflare, ציר זמן מלא לפי שעון ישראל)

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

13:28
השרתים הראשונים של Cloudflare מתחילים לקרוס חלקית. המודול שמנסה לטעון את קובץ הפיצרים החדש מקבל קובץ גדול בהרבה מהצפוי. הוא נתקע ומייצר panic פנימי. בקשות HTTP שמגיעות דרך שרתי הלקוח מתחילות להחזיר שגיאות 500.

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

15:05
Cloudflare מנסה לתחום את התקלה. מופעלים מעקפים חלקיים לשירותים פנימיים כמו Workers KV ו Access. זו לא החזרה מלאה, אבל זה מונע חלק מההתפשטות.

16:30
הפצת הקובץ הפגום נעצרת. מבוצע אתחול של שכבת הפרוקסי המרכזית בכל הדאטה סנטרים. בנקודה הזו מתחילות להיראות ירידות משמעותיות במספר השגיאות.

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

מה בעצם נפל שם, ואיך זה עבד מאחורי הקלעים​

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

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

המודול שקורא את הקובץ כתוב ב Go וממפה את הנתונים המבניים למודל ה ML. כשהמודול נתקל בקובץ גדול מדי, הוא לא מזהה איך לפרק אותו לתוך המבנה הצפוי ומפעיל מנגנון Panic. Panic בקוד Go גורם לעצירת הפעולה ולהפלת הסניף של הקוד שמריץ את העיבוד. בפרוקסי ענק כמו Cloudflare אין למודול זיהוי הבוטים את הפריבילגיה "להתרסק בשקט". כשהוא קורס, כל בקשה שעוברת דרך שרשרת העיבוד שלו מקבלת מיד שגיאת 500.

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

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

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

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

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