מהי מודרניזציה של מערכות לגאסי?
מודרניזציה של מערכות לגאסי היא תהליך מורכב ורב שלבי, המצריך תכנון אסטרטגי, בחינה מעמיקה של צורכי הארגון, וליווי מקצועי.
ארגונים שבוחרים להשאיר את מערכותיהם הישנות מסתכנים בבעיות אבטחה, בעלויות תחזוקה גבוהות, ובקושי להטמיע פתרונות חדשניים.
מנגד, ארגונים המשקיעים בתהליך המודרניזציה משיגים גמישות טכנולוגית, זמני פיתוח קצרים יותר, יכולת אינטגרציה עם מערכות מתקדמות וקידום יכולות דיגיטליות שיאפשרו להם להתחרות בשוק הצומח.
דורון בסון מחברת קורל טכנולוגיות אומר שהמעבר משפות Legacy כמו COBOL, FORTRAN, VB6 או ASP קלאסי לשפות מודרניות כמו Java, C#, Python או Go יכול להיות מאתגר, אך הוא יספק מערכות יציבות יותר, ידידותיות יותר לפיתוח ושיפור, עם קהילות תוססות של מפתחים וכלי תשתית המותאמים לעולם הענן וה-AI.
בחירה נכונה בתשתיות ענן, ארכיטקטורות מודרניות כמו Microservices, ותרבות ארגונית של DevOps, תשמש מפתח להצלחה בתהליך המודרניזציה ותאפשר לארגון להמשיך לצמוח ולהתפתח לאורך זמן.
תהליך מודרניזציה של מערכות לגאסי
הערכת מצב הקיים
ניתוח ארכיטקטורת המערכת: הבנת הרכיבים הקריטיים וחוליות החיבור למערכות אחרות בארגון.
בחינת הטכנולוגיות הקיימות: בחינה אילו חלקים במערכת מבוססים על שפות או פלטפורמות מיושנות, וניסיון לאמוד כמה מורכב יהיה להחליפן או לעדכנן.
הערכת סיכונים ועלויות: בדיקה של הסיכון שבהשארות עם המערכות הישנות לעומת היתרונות (תפעוליים וכלכליים) שבמודרניזציה.
הגדרת אסטרטגיית מודרניזציה
בחירת מודל מעבר: הגדרת אופן המעבר – האם מדובר בשכתוב מלא של המערכת (Rewrite), בניית מעטפת (Wrapper) סביב המערכת הקיימת, או מעבר הדרגתי (Migration) למערכת חדשה.
קביעת טכנולוגיות יעד: בחירת שפת פיתוח, בסיסי נתונים, תשתיות ענן או on-premise, ומודלי תפעול (כגון DevOps ו-CI/CD).
אימות והערכה: ניהול PoC (Proof of Concept) על חלקים ספציפיים של המערכת, כדי לבדוק את ההיתכנות הטכנית ואת תרומת הגישה הנבחרת.
תכנון מפורט
שילוב מתודולוגיות אג'יליות: כדי לצמצם סיכונים ולשמור על גמישות, מומלץ לעבוד בספרינטים קצרים ולעדכן תיעדופים בצורה דינמית.
ארכיטקטורה חדשנית: אימוץ ארכיטקטורת מיקרו-שירותים (Microservices) או ארכיטקטורות מבוססות אירועים (Event-Driven), המאפשרות שינוי, עדכון ופריסה מהירים.
הקמת תשתית DevOps: שימוש בכלי CI/CD (כמו Jenkins, GitLab CI/CD, Azure DevOps, GitHub Actions) וכלי ניהול קונפיגורציה (Ansible, Chef, Puppet).
יישום המודרניזציה
מיגרציה נתונים: העברת נתונים מבסיסי נתונים ישנים למודרניים, תוך שמירה על שלמות נתונים ודיוקם.
אוטומציה של תהליכי בדיקה: כתיבת בדיקות יחידה (Unit Tests), בדיקות אינטגרציה, ובדיקות עומסים (Load Tests) להבטחת איכות המערכת החדשה.
פריסה הדרגתית: מעבר הדרגתי של יחידות עסקיות או משתמשים למערכת החדשה, כדי לזהות תקלות מוקדם ולמנוע פגיעה בפעילות השוטפת.
בדיקות ותחזוקה שוטפת
בדיקות קבלה משתמשים (UAT): וידוא שהמערכת המודרנית עונה לצרכים העסקיים בפועל.
שיפורים רציפים: ניהול גרסאות, עדכוני אבטחה ושיפור ביצועים על בסיס לולאה סגורה של משוב ותיקונים.
מי זקוק לתהליך מודרניזציה?
ארגונים פיננסיים וביטוח: מוסדות בנקאיים, חברות ביטוח וברוקרים רבים עדיין עובדים על מערכות מבוססות Mainframe עם שפות כגון COBOL.
ארגוני ממשלה: משרדי ממשלה ורשויות ציבור מבוססים לא פעם על מערכות ישנות שנוצרו לפני עשרות שנים, וזקוקים לתמיכה טכנית מורכבת ויקרה.
חברות ייצור ולוגיסטיקה: מערכות ERP ותיקות, מערכות שרשרת האספקה ותוכנות ניהול מפעלים המבוססות על טכנולוגיות client-server ישנות.
ארגוני טלקום: תשתיות ניהול רשת, חיוב לקוחות (Billing), ו-CRM ותיקות שמגבילות את היכולת לאספקת שירותים מתקדמים.
סטארטאפים שרכשו חברות ותיקות: סטארטאפ שרוכש חברה ישנה עשוי לגלות שמאחורי הקלעים מסתתרים מערכות Legacy המשליכות על המוצר.
סוגי מערכות לגאסי נפוצות
Mainframe: מערכות העובדות על מחשבי Mainframe, בעיקר בשפות כמו COBOL, PL/I או RPG.
Client-Server: מערכות מבוזרות מהעשורים הקודמים, המשתמשות בטכנולוגיות כמו Visual Basic 6, Delphi, PowerBuilder ו- .NET גרסאות ישנות (Framework 1.x או 2.x).
תשתיות ישנות בתחום ה-Web: למשל, אפליקציות ASP קלאסי (ASP Classic), PHP בגרסאות מאוד מיושנות, Java Servlet ישנות ללא ספריות מודרניות ועוד.
מערכות על בסיס שפות מדעיות: FORTRAN, MATLAB (בגרסאות מיושנות) או מערכות שנבנו על בסיס סקריפטים "היסטוריים" של UNIX (KSH, CSH).
שפות פיתוח לגאסי ולעומתן שפות מודרניות
COBOL: נפוצה במערכות פיננסיות וממשלתיות ותיקות.
FORTRAN: עדיין בשימוש במוסדות מחקר או מערכות ירושה במפעלים.
PL/I, RPG: בשימוש על מחשבי Mainframe (IBM).
Visual Basic 6, Classic ASP: לרוב במערכות Client-Server או אפליקציות ווב ישנות.
C/C++ ישנים: גרסאות ישנות וחוסר עדכונים יכולים ליצור תלות בספריות "מתות" או בקומפיילרים ישנים.
מעבר מומלץ לשפות מודרניות
Java (גרסאות 11 ומעלה): סביבת JVM בשלה, מלווה בקהילה ענקית, ספריות ומסגרות עבודה מגוונות (Spring Boot, Quarkus, Micronaut).
C# / .NET (Core / 6 / 7): אידיאלית עבור ארגונים שמעדיפים פלטפורמת Microsoft מודרנית, עם תמיכה ב-Cross-Platform.
Python: שפת סקריפטים חזקה, פופולרית מאוד בעולמות ה-Data Analysis, ה-Machine Learning והפיתוח המהיר של אפליקציות API.
Node.js / TypeScript: מתאימה לפיתוח שירותים מבוססי JavaScript, נוחה מאוד לעבודה בצד ה-Server וה-Client יחד.
Go (Golang): שפת מערכת מודרנית עם ביצועים גבוהים, נוחה לפיתוח שירותים בענן ובתשתיות מבוזרות (Cloud-native).
Rust: שפה חדשה יחסית, עם דגש על אבטחה, יעילות וניהול זיכרון בטוח, מומלצת לפיתוח מערכות תשתית קריטיות.