דילוג לתוכן הראשי
Globalbit
חזרה לבלוג
מודרניזציה וענןארגונים

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

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

בקצרה: אפשר להחליף מערכת Legacy בזמן שהעסק ממשיך לעבוד. מציבים שכבת ניתוב מול המערכת הישנה, מעבירים פונקציה עסקית אחת בכל פעם, שומרים על סנכרון נתונים ומשווים את התוצאות של הישנה והחדשה על תעבורה אמיתית לפני כל מעבר. הדרך הנכונה תלויה במה שרץ אצלכם היום: COBOL,‏ VB6,‏ ASP קלאסי, Oracle Forms,‏ AngularJS ו-PHP ישן נשברים כל אחד במקום אחר. סוכני AI מקצרים היום את השלב האיטי ביותר: להבין קוד שאין לו תיעוד ולכתוב בדיקות שמקבעות את ההתנהגות שלו. את ההחלטות עדיין מקבלים מהנדסים ואנשי התחום.

המערכת גדלה מעבר למה שתוכננה לו

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

השאלה האמיתית היא איך מחליפים מערכת בזמן שהיא ממשיכה לעבוד. שכתוב גדול בבת אחת הוא בדיוק המקום שבו פרויקטי מודרניזציה נתקעים, ומערכות מס ותיקות מדגימות את זה היטב. רשות המסים האמריקאית (IRS) מנהלת את חשבונות המס של אנשים פרטיים בקובץ האב שלה (Individual Master File), מערכת בת כ-60 שנה שכתובה ב-Assembly וב-COBOL. עד ספטמבר 2024 הוציאה ה-IRS על החלפתה 2 מיליארד דולר, ובמרץ 2025 הקפיאה את תוכניות המודרניזציה כדי לבחון מחדש סדרי עדיפויות, לפי דוח של ה-GAO. סקירה נוספת של ה-GAO מ-2025 מצאה ש-11 מערכות ה-Legacy הקריטיות ביותר בממשל הפדרלי הן בנות 23 עד 60 שנה, ושמונה מהן עדיין כתובות בשפות כמו COBOL ו-Assembly.

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

שישה דפוסים שמשאירים את העסק באוויר

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

  1. Strangler Fig. שכבת ניתוב, למשל Reverse Proxy או API Gateway, יושבת מול המערכת הישנה. בונים מחדש פונקציה אחת, מפנים אליה את התעבורה שלה וחוזרים על זה, עד שלמערכת הישנה לא נשאר מה לעשות. התיאור של Martin Fowler הוא המקור המקובל.
  2. שכבת תרגום (Anti-Corruption Layer). שכבה שמתרגמת בין הישן לחדש, כך שהקוד החדש שומר על מודל נתונים נקי ולא יורש את הסכמה הישנה. המדריך של Microsoft מפרט את השיקולים. כשבנינו מחדש את האפליקציה של אגד, היא הייתה צריכה לשלוף נתוני זמן אמת ממערכות שיבוץ וניתוב בנות עשרות שנים. המערכות האלה נשארו במקומן, והאפליקציה החדשה נבנתה לעבוד מולן.
  3. סנכרון נתונים ב-CDC (Change Data Capture). בתקופת המעבר שתי המערכות צריכות את אותם נתונים. CDC קורא את השינויים מהלוג של מסד הנתונים הישן ומזרים אותם למסד החדש. החליטו מוקדם איזו מערכת אחראית על כל ישות. שתי מערכות שכותבות לאותה רשומה הן המתכון הקלאסי לנתונים משובשים שאף אחד לא שם לב אליהם.
  4. הרצה מקבילה. הישנה והחדשה מעבדות את אותם קלטים, ואתם משווים את התוצאות. המערכת הישנה נשארת מקור האמת עד שכל הבדל תוקן או הוסבר.
  5. Feature Flags. מעבירים משתמשים בהדרגה, קבוצה אחרי קבוצה: קודם עובדים פנימיים, אחר כך 5% מהלקוחות, ואז אזור אחד או פלח אחד. דגל אחד מכבה את המסלול החדש תוך שניות.
  6. מעבר מדורג עם דרך חזרה. מעבירים מודול אחד בכל פעם, עם תוכנית Rollback כתובה ותנאי ברור שמפעיל אותה. משאירים סנכרון הפוך לתקופה מסוימת, כדי שחזרה לאחור תשמור גם את הנתונים שכבר נכתבו במערכת החדשה.

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

Background

צריכים להחליף מערכת בלי לעצור את העסק?

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

מה עושים עם כל טכנולוגיה

טכנולוגיהלאן עוברים בדרך כללהסיכונים העיקרייםהדפוס שמתאים ברוב המקריםאיפה סוכני AI עוזרים, ואיפה הם נעצרים
COBOL ו-Mainframeשירותי Java או C#, או שה-Mainframe נשאר מקור האמת מאחורי APIחלונות Batch, עיגול של מספרים עשרוניים, מבני נתונים ב-Copybooks, מעט אנשים שמכירים את הקודשכבת API מול המערכת, CDC והרצה מקבילה של תהליכי ה-Batchמסבירים תוכניות, עוקבים אחרי שרשראות קריאה ומנסחים תיעוד. התנהגות בזמן ריצה, תזמוני JCL ונתונים אמיתיים עדיין דורשים בדיקה
VB6אפליקציית Web על .NET עדכני, או לקוח Desktop ב-.NETלוגיקה בתוך אירועי הטפסים, רכיבי ActiveX של צד שלישי, 32 ביט בלבד, SQL שיוצא ישירות מהממשקקודם מוציאים את הלוגיקה העסקית לשירותים, ואחר כך מחליפים מסכים תהליך אחרי תהליךמעבירים לוגיקה מהאירועים לשירותים ועוטפים אותה בבדיקות. התנהגות המסכים והרכיבים הישנים דורשת סקירה ידנית
ASP קלאסי ו-.NET FrameworkASP.NET Core על .NET עדכניתלות ב-System.Web, ניהול Session,‏ WCF וספריות שרצות רק על WindowsStrangler Fig לפי כתובת URL מאחורי Reverse Proxy, עם התחברות משותפתשדרוגי API והסבות מכניות. תקלות של IIS ושל קובצי הגדרות מתגלות רק בבדיקות
Oracle Forms ו-PL/SQLממשק Web, כש-PL/SQL נחשף כ-API ועובר לשירותים בהמשךהכללים העסקיים יושבים בטריגרים ובחבילות, ומסד הנתונים הוא בעצם האפליקציהמשאירים את מסד הנתונים, מחליפים טפסים אחד אחד ומזיזים לוגיקה בשלב הבאמסבירים חבילות וטריגרים וממפים תלויות. נעילות וביצועים תחת עומס דורשים בדיקות אמיתיות
AngularJSAngular או Reactאין עדכוני אבטחה מאז ינואר 2022החלפה נתיב אחרי נתיב בתוך מעטפת אחתהסבת רכיבים, השימוש החזק ביותר. רגרסיות ויזואליות דורשות בדיקות End-to-End
PHP ישןPHP 8 על Laravel או Symfony, או כתיבה מחדש של המודולים הרגישיםגרסאות בלי תמיכה, אין בדיקות, SQL מעורבב ב-HTMLשדרוג בשלבים איפה שהקוד מאפשר, ו-Strangler Fig לכל השארתיקוני Deprecation, טיפוסים ובדיקות. משתנים גלובליים נסתרים צצים רק בזמן ריצה

כמה תאריכים ועובדות שכדאי להכיר:

  • VB6: ‏Microsoft הפסיקה לתמוך בסביבת הפיתוח של VB6 ב-8 באפריל 2008. ה-Runtime עדיין רץ ב-Windows 11 וב-Windows Server 2025, והתיקונים מוגבלים לתקלות חמורות ולבעיות אבטחה קריטיות (הצהרת התמיכה של Microsoft). במילים אחרות, האפליקציה שלכם רצה, ואין דרך נתמכת לשנות אותה.
  • .NET Framework: גרסה 4.8.1 היא האחרונה, והתמיכה בה צמודה למחזור החיים של Windows (מדיניות התמיכה של Microsoft). אפשר להמשיך להריץ אותה בשקט. מסלול השדרוג מוביל ל-.NET המודרני, ושם Microsoft משחררת את הגרסאות החדשות.
  • AngularJS: התמיכה ארוכת הטווח הסתיימה ב-31 בדצמבר 2021, והגרסה האחרונה היא 1.8.3 (הבלוג של Angular).
  • PHP: גרסה 8.1 וכל מה שלפניה כבר מחוץ לתמיכה, ו-8.2 מקבלת תיקוני אבטחה עד 31 בדצמבר 2026 (php.net).
  • COBOL: השפה עצמה עובדת מצוין. הבעיה היא האנשים. כבר ב-2019 ה-GAO הזהיר שמספר האנשים שיודעים לתחזק מערכות כאלה הולך ומצטמצם.
  • Oracle: כאן המודרניזציה היא קודם כול פרויקט אינטגרציה. מסד הנתונים ממשיך לשרת את הטפסים והדוחות הישנים, ובמקביל חושף API לשירותים החדשים. לכן מתחילים במיפוי של כל תוכנה שקוראת מאותן טבלאות או כותבת אליהן.

איפה סוכני AI מאיצים את העבודה

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

  • הבנת קוד. סוכן עוקב אחרי נקודות כניסה, שרשראות קריאה וזרימת נתונים באלפי קבצים, ומסביר בשפה פשוטה מה עושה חבילת PL/SQL או פסקה ב-COBOL. חברת Anthropic פרסמה בפברואר 2026 את הגישה שלה לשלב הזה במערכות COBOL, ו-AWS Transform for mainframe מייצר תיעוד טכני ומחלץ לוגיקה עסקית מקוד COBOL ו-JCL.
  • בדיקות סביב ההתנהגות הקיימת. סוכנים כותבים Characterization Tests, בדיקות שמתעדות מה המערכת עושה היום, כולל הבאגים. זה השימוש החשוב ביותר, כי הבדיקות האלה הן רשת הביטחון של כל צעד שבא אחריהן.
  • הסבה. קוד תחום היטב עם בדיקות טובות עובר מהר: רכיבי AngularJS, ספריות .NET Framework ומודולים של PHP.
  • תיעוד. כל מודול שאנחנו נוגעים בו משאיר אחריו תיאור קריא, מפת תלויות ורשימה של הכללים העסקיים שבתוכו.

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

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

איך מוכיחים שהמערכת החדשה עושה אותה עבודה

״עובד ב-Staging״ לא מוכיח הרבה. כדי להוכיח שקילות צריך ראיות מקלטים אמיתיים.

  1. הקליטו Golden Master. אספו קלטים ופלטים אמיתיים מ-Production, אחרי התממה של מידע אישי, והריצו אותם שוב על הקוד החדש.
  2. הפעילו תעבורת צל. שלחו עותק של בקשות חיות למערכת החדשה, השוו את התשובות שלה לתשובות של הישנה, וזרקו אותן. הלקוחות רואים רק את התשובה של המערכת הישנה.
  3. הצליבו נתונים. השוו כל יום ספירת רשומות, Checksums וסכומים עסקיים: חשבוניות שהופקו, מס שחושב, יתרות בסגירה.
  4. סכמו מראש אילו הבדלים מותרים. עיגול, סדר מיון וחותמות זמן יהיו שונים. כתבו מה מקובל לפני ההשוואה הראשונה, אחרת כל ישיבה תהפוך לוויכוח.
  5. החליטו מה עושים עם באגים ישנים. חלק מההבדלים הם באגים במערכת הישנה, ולפעמים מערכות אחרות כבר תלויות בהם. תקנו או השאירו כל אחד מהם בהחלטה מודעת.
  6. כסו מחזור עסקי מלא. סוף חודש, סוף רבעון, ובמערכות מס גם סוף שנה. תנאי היציאה: מחזור מלא בלי אף הבדל שלא הוסבר.

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

כמה לתקצב

שלבמה מקבליםמחיר
הערכהמיפוי המערכות והתלויות, סיכון לכל מודול, הדפוס המומלץ ותוכנית בשלביםמתחיל ב-9,000 ש״ח ויכול להגיע ל-30,000 ש״ח
מודול אחדפונקציה עסקית אחת שעברה, נבדקה לשקילות ועלתה לאווירמ-120,000 ש״ח
פלטפורמה מלאהכל המערכת עוברת בשלבים, והישנה יורדתמ-450,000 ש״ח

מודול ממוקד או הסבה של מסד נתונים לוקחים בדרך כלל 2 עד 4 חודשים. פלטפורמה מלאה לוקחת 6 עד 18 חודשים, בשלבים.

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

לשכתב או לשפר את מה שיש?

שפרו את הקוד הקיים (Refactor) כשיש לטכנולוגיה מסלול שדרוג נתמך (מ-.NET Framework ל-.NET עדכני, מ-PHP 7 ל-PHP 8), כשמודל הנתונים עדיין מתאים לעסק, וכשהבעיה היא איכות הקוד.

בנו מחדש, מודול אחרי מודול, כשהטכנולוגיה הגיעה לסוף הדרך (VB6,‏ AngularJS), כשהארכיטקטורה לא תעמוד בעומס או בערוץ החדש, או כשהכללים העסקיים השתנו כל כך שרוב הלוגיקה הישנה כבר לא רלוונטית.

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

שאלות נפוצות

איך עושים מודרניזציה למערכת Legacy בלי השבתה? ברוב המערכות זה אפשרי. שכבת ניתוב, סנכרון נתונים ו-Feature Flags מאפשרים להעביר פונקציה אחת בכל פעם, בזמן שהמערכת הישנה ממשיכה לשרת את המשתמשים, ולכל מעבר יש תוכנית חזרה. לפעמים העברת הנתונים האחרונה דורשת חלון תחזוקה קצר, ואותו אנחנו מתאמים מראש עם העסק.

איזו חברה בישראל עושה מודרניזציה ואינטגרציה למערכות Legacy? Globalbit הוא בית תוכנה ישראלי עם 16 שנות ניסיון ויותר מ-200 פרויקטים, כולל מערכות קריטיות לגופים פיננסיים ולממשלת ישראל. אנחנו מתחילים בהערכה שממפה את כל האינטגרציות, גם מול Oracle, ומעבירים מודול אחד בכל פעם. פרטים נוספים בעמוד מודרניזציה של מערכות Legacy.

כמה עולה מודרניזציה של מערכת Legacy? הערכה מתחילה ב-9,000 ש״ח ויכולה להגיע ל-30,000 ש״ח. מודול אחד מתחיל ב-120,000 ש״ח, ופלטפורמה מלאה ב-450,000 ש״ח.

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

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

[ צרו קשר ]

ספרו לנו מה אתם בונים.

יותר מ-250 ארגונים סומכים עלינו. נחזור אליכם תוך יום עסקים אחד.

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

קבעו שיחת היכרות ←