ארכיטקטורה מתקדמת למערכת ERP בעידן הדיגיטאלי

קוד פתוח בענן

 תשתית דיגיטאלית

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

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


להיות בעננים עם רגל על הקרקע

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

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

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

Odoo.sh – מערכת בענן פרטי עם סביבת פיתוח וכלים לארגון שמעוניין לבצע התאמות ופיתוחים ייחודיים (ראה הרחבה בהמשך)

On-premise – התקנה של המערכת בשרתים מקומיים של הלקוח או בענן כלשהו (כמו AWS)

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

Odoo.sh הינה פלטפורמת ענן ייחודית שמנוהלת על ידי Odoo ומציעה ללקוחות את מכלול השירותים שארגון IT מצפה לו בעידן הדגיטאלי, זהו שילוב של Saas ו-Paas (שרות של תוכנה ופלטפורמה):

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

  •   סביבת פיתוח המכילה אינטגרציה תמידית של פיתוחים (CI)  עם סביבת הקוד – Github וכלי עזר למפתחים, כמו Web shell

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

  •  סביבת Production 

- מנגנונים מובנים של גיבויים ושחזורים 

- התאוששות מאסון והמשכיות עיסקית

- אבטחת מידע

- כלי אדמינסטרציה וניהול (DNS, מיילים)

- כלי בקרה, ביצועים וזמינות מירבית



ארכיטקטורה גמישה המאפשרת שינויים בקוד פתוח
מערכת תוכנה נבחנת בעיקר ביכולת התחזוקתיות שלה וביכולתה להיות גמישה לשינויים בעתיד, מכיוון שכבר בעת פיתוח התוכנה ישנם דרישות חדשות והם ימשיכו להגיע במעלה השנים.
האפליקציות של Odoo מתבססות על תשתית ומודל יישויות מובנה – Odoo Framework , אשר בנוי כפלטפורמה מוכוונת עצמים (object oriented) , המאפשרת למפתחים לבצע הרחבות ושינויים לאפליקציות בהתאם לדרישות של הפרוייקטים והלקוחות. מכיוון שלמפתחים יש גישה מלאה לקוד הפתוח של המערכת ניתן בעצם להרחיב את יכולות המערכת לפי דרישות עיסקיות בצורה גמישה תוך הקפדה והבנה של המערכת. במערכות ERP אחרות, הגמישות הזאת לא קיימת והמפתחים נדרשים לתמרן במסגרת נקודות הממשק האפשרויות לשילוב ההתאמות (כגון: Exit Points, API) שהוגדרו על ידי יצרני התוכנה מראש.

עיקרון נוסף של מערכת תוכנה מתקדמת המיושם ב-Odoo הינו ארכיטקטורה מבוססת שירותים – SOA. על פי זה, ניתן להפעיל כל Service או תהליך של המערכת (כגון: הזמנה, חשבונית, הזדמנות ב-CRM או קריאת שרות) על ידי קריאה חיצונית ל-Web service עם הפרמטרים המתאימים (RPC call) ולבצע את התהליך הסטנדרטי של המערכת על ידי שימוש ב-API המובנה של המערכת. 
בעזרת הכלים והיכולות האלה קל מאוד יחסית למערכות אחרות לבצע התאמות ולחבר אפליקציות של Odoo למערכות אחרות שקיימות בארגון, כלי BI חיצוניים, לבצע הסבה או שליפת נתונים.
התוכנה הינה מבוססת קוד פתוח במודל – Open-Core , דהיינו שילוב של גירסאת Community וגירסאת Enterprise , הקוד זמין ללקוחות ושותפים עיסקיים על מנת שיוכלו לבצע את הפיתוחים הייחודיים הנדרשים ואפילו מבלי לבצע שינויים, ניתן בקלות רבה יותר לטפל בתקלות במערכת או למצוא דרכי פתרון מיטבי ליישום כאשר הקוד זמין למי שיודע לקרוא אותו... 
הטכנולוגיה לפי רבדי המערכת השונים:
- צד לקוח : Java script , ממשק Web  ו-Native mobile
- צד שרת – Python
- בסיס נתונים – מבוסס PostgreSQL



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



ניהול ופיתוח מוצר
חברת מוצר מתקדמת מיישמת עקרונות המאפשרים ללקוחות להתקדם עם גירסאות המוצר לאורך שנים רבות. להלן חלק מהעקרונות אותם מיישמת Odoo  בצורה מרשימה:
- מפת דרכים  : המציגה ללקוחות ולשותפים העיסקיים של חברת המוצר את התוכנית לפתוח בגירסאות הקרובות, משתפת בצורה פתוחה את הלבטים והאפשרויות ופונה לקבל פידבק ורעיונות מהשטח אשר ייתנו מענה לדרישות הלקוחות. מנהלי המוצר ב-Odoo מפרסמים בכנסים וברשתות חברתיות, תכניות ופיתוחים חדשים, ובעיקר, ישנה גישה מיידית של פיתוח שבוצע על אנשי ה-R&D ב-Github, עקב פלטפורמת הקוד הפתוח, וניתן לשלב את הפיתוח הרלוונטי בפרוייקטים אפילו לפני שחרור רשמי של הגירסא, לבצע בדיקות היתכנות ופיילוט. שזהו יתרון עצום בהתנהלות מול לקוחות בעידן המודרני.
- ניהול גירסאות ותאימות לאחור  : Odoo משקיעה את מרבית הכנסותיה בשנים האחרונות בפיתוח המוצר, על חשבון מאמצי שיווק ואדמיניסטרציה, מתוך אמונה שהמוצר הוא המוכר הכי טוב של עצמו...ועל כן בכל שנה באוקטובר, בכנס השנתי מציג פאביאן – מייסד החברה, את עיקרי האפליקציות החדשות והשיפורים שבוצעו, לכל תרועות קהל האוהדים (שותפים ולקוחות), ואכן, השיפורים מגירסא לגירסא דרמטיים. במיוחד ראוי לציין את התמיכה הניתנת ללקוחות ושותפים בשדרוג גירסאות. Odoo מפתחת כלים ומטודולוגיה מובנית לשדרוג פרוייקטים מגירסא לגירסא, הם מאפשרים לכל ארגון שיוכל לשדרג את בסיס הנתונים שלו וגם את הפיתוחים הייחודיים שביצע בעצמו או על ידי שותף מומחה בקלות יחסית בפרוייקט משותף המנוהל על ידי מרכז תמיכה ייעודי המאפשר לאלפי לקוחות להתקדם מגירסא לגירסא ולהינות המהפיתוחים החדשים של הגירסאות העדכניות. 
- תיעוד והדרכה : תיעוד נרחב באינטרנט וסרטוני הדרכה ב-YouTube מאפשרים ללקוחות ושותפים ללמוד על המערכת, המודולים השונים, כולל הדרכה מתקדמת, סיפורי הצלחה של לקוחות ועוד.
- אפליקציות צד ג'  : ל-Odoo יש Eco system רחב מאוד, מעל 5 מיליון משתמשים ברחבי העולם, בינהם אלפי שותפים עיסקיים ומפתחים שייצרו עד היום מעל 20,000 אפליקציות המאפשרות ללקוחות ושותפים לפתור בקלות נושאים נקודתיים, כגון: ממשקים למערכות אחרות (פיננסיות, E-Commerce) או נושאים פונקציונאליים ייחודיים (ניהול מרפאות, קופה לבית מרקחת ועוד).



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


עוד פוסטים שיעניינו אותך