תיקון דחוף של באגים באתר: אבחון ותיקון מהיר

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

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
תיקון דחוף של באגים באתר: אבחון ותיקון מהיר
פשוט
~2-3 שעות
שאלות נפוצות

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

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

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

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

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

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

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

מה נותן טיפול מבוקר בתקלות במקום תיקונים ידניים

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

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

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

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

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

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

אפשרויות תגובה לתקרית: תיקון, חזרה לאחור, בידוד מודול

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

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

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

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

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

סדר הטיפול בתקלים: מאות הניטור ועד לבדיקה בפרודקשן

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

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

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

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

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

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

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

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

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

מה נשאר בפרויקט: תצורות, נהלים, תיעוד

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

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

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

מקרה מהשטח: כיצד הסרנו רגרסיה לאחר עדכון גדול

לאחר עדכון גדול של הקטלוג והשלמת ההזמנה עלה שיעור התרחישים הכושלים מ-1,8% ל-9,4%: משתמשים הגיעו לעגלה וקיבלו שגיאה באישור. הפניות לתמיכה זרמו בגלים, והסיבה בלוגים לא הייתה קריאה — העדכון נגע במדורים סמוכים, והסימפטום התגלה במקומות שונים באופן שונה.

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

מה עשינו ומה יצא

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

זמן שיקום השירות — 47 דקות מאימות הסיבה ועד מהדורה עובדת, ושיעור התרחישים הכושלים חזר ל-0,4%, כלומר נמוך ממה שהיה לפני העדכון.

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

מה לעשות אם השגיאה משוחזרת אצל לקוחות כבר עכשיו

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

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

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

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

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

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

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

התקלה אינה משוחזרת — ממה תתחילו?

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

אפשר להסתדר בלי עותק של הפרודקשן?

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

מי אחראי על הוצאת התיקון?

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

נדון במשימה: מה נדרש מכם כדי להתחיל לעבוד

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

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

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

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

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

הכישורים שלנו:

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1393
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1368
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1139
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1152
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1231
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    641