content detail

כמה מוצרים חנות מג’נטו יכולה לנהל?

Post by: 28/01/2017 1 comments 752 views

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

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

 

כמה מוצרים בגרסאות שונות של מג’נטו ניתן לנהל בקלות כברירת מחדל הנמצאים על שרת ממוצע וללא קנה מידה נוסף?

מג’נטו CE 1.9.x מנהלת בבטחה בערך 10,000-25,000 מוצרים ברוב המקרים ללא אופטימיזציה. מצד שני, היא יכולה לנהל 100,000-200,000 מוצרים או אפילו יותר בעזרת דירוג מערכתי רחב וכבד, כוונון משאבים ואופטמיזציה לארכיטקטורת הקוד.

  • מג’נטו EE 13.x. 14.x מנהלת בבטחה בערך 100,000-200,000 מוצרים במרבית המקרים ללא אופטימיזציה ואף 400,000-500,000 או יותר עם אופטימיזציה ומשאבי שרתים בעלי ביצועים גבוהים.
  • מג’נטו 2 CE מנהלת בבטחה בערך 100,000-200,000 מוצרים במרבית המקרים ובעזרת אופטימיזציה היא מצליחה אפילו לנהל 400,000-500,000 בשילוב שרתים בעלי ביצועים גבוהים.
  • מג’נטו 2 EE נועדה לנהל אף יותר בהתאם למספר תכונות ארגוניות מאוד מתקדמות כמו מסד בסיסי נתונים, תורים לעבודה, mysql מתקדם, טופולוגיות של web server ומשאבים ראויים.

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

  • מספר החנויות/השפות של מג’נטו
  • מספר תכונות המוצר
  • מספר הקטגוריות ועומק עץ הקטגוריות
  • מספר המוצרים המורכבים/מותאמים אישית
  • מספר קבוצות הלקוחות עם מחירי מוצרים שונים

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

 

מה עושה את ההבדל בין הגרסאות הללו של מג’נטו מבחינת ביצועי הקטלוג?

  • מג’נטו CE 1.x כולל 1.9.x
    • אינדקסים, במיוחד URL ואינדקסים של חיפוש אינם מותאמים עבור קטלוגים גדולים (זה תקף גם ל EE ומעלה עד 1.12.x).
    • FPC – הנקרא בעגה המקצועית Full Page Cache לא מגיע כברירת מחדל, הפונקציה מאיצה את הגלישה בקטלוג המוצרים ושומרת הרבה משאבי שרת.
    • תאימות לשילוב JS ו CSS, תמיכה ב CDN.
  • מג’נטו 1.x EE
    • FPC מגיע כברירת מחדל.
    • מגרסה 1.13.x אינדקס מצטבר הוצג שבו מוצרים אשר שונו או נוספו יעברו אינדקס מחדש ברקע על ידי CronJob.
    • מגרסה 1.13.x תהליכי אינדקסים מחדש  שופרו ואפילו עבור קטלוגים גדולים.
    • מנוע חיפוש solr זמין כברירת מחדל.
  • מג’נטו 2 CE
    • ירש תכונת אינדקס מצטבר  מגרסה EE 1.13.x של מג’נטו.
    • ירש FPC מגרסה EE 1.13.x ו Cache של Varnish נוסף. הדרישות אשר מטופלות על ידי Cache של Varnish לעולם לא צריכות להגיע ליישומי השרתים של מג’נטו וזה מוריד את עומס זמן הטעינה של האתר באופן דרמטי ומשפר את זמן התגובה.
    • תהליך התשלום שופר
    • אסינכרון הזמנות ועדכוני מוצר
    • אופטימיזציית צד הלקוח כמו minification, התאמה אישית של משאבי JS, דחיסת תמונה.
    • PHP 7 נתמך כברירת מחדל. PHP 7 בעל ביצועים מעל ל 200% מאשר גרסה PHP 5.x.
  • מג’נטו 2 EE
    • בעל כל התכונות של מג’נטו 2 CE
    • Solr גרסה 2.0 ו Elasticsearch
    • Mysql cluster ו Multi-master mysql נתמך

 

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

  • אחסון חנות מג’נטו – קטלוג מוצרים גדול בבירור זקוק למשאבים נוספים, VPS עם שפע של זיכרון ומעבד מרובה ליבות הוא חובה.
  • תכנת שרת –  Nginx כשרת לאתר, PHP 7 ו Mysql 5.6 או שווה ערך (Percona/MariaDb) הם מומלצים מאוד, אפילו עבור מגנטו 1.
  • יבוא מוצרים – ייבוא של מוצר מותאם, בעל אופטימיזציה ומעודכן הוא אחד מהמרכיבים העיקריים במקרה זה. כלים המאפשרים עדכונים במסד הנתונים הם מאוד עוזרים. כל שיטה או כלי המשתמש במוצר יחיד עבור העדכון הוא פוטנציאל ענק לצוואר הבקבוק. Magmi הוא אחת הבחירות הכי טובות כאן.
  • מספר חוקי יסוד נוספים:
    • תשמרו רק מה שהשתנה
    • השתמשו במשאבים יעודים עבור תהליכי ייבוא
    • מחיר נפרד, לשמור ולייבא נתוני מוצרים
    • אינדקס מחדש רק עבור מוצרים ונתונים מוצרים שזקוקים לאינדוקס מחדש.
  • אינדקסים – אינדקסים במג’נטו הוא השלב השני בשמירת נתוני המוצר והחלק הכי בעייתי כאשר קיים קטלוג ענק. זה כולל סדרה של תהליכים שמעתיקים את נתוני המוצר מטבלאות מסד הנתונים המתואמות לאחסון נתונים לטבלאות שמותאמות להיבטים שונים של גישה לנתוני הממשק. מכיוון שהאינדקסים “רק” נזקקים עבור תכונות הממשק של Majento, ניתן להפריד אינדקסים משימור או ייצוא של מוצר. בגרסאות החדשות יותר של מג’נטו – 1 EE, 2 CE ו EE הרקע המצטבר באינדקסים הוצג אשר מזרז את העבודה בממשק הניהול אבל עדיין לא אידאלי עבור עדכוני מוצרים בעלי נפח גדול.
    • אינדקסים במג’נטו 1 CE הוא אחד מצווארי הבקבוק הטובים ביותר.
      • כתובות אינטרנט באינדקסים נוטות לספק את רוב הנושאים, במיוחד בגלל שזה יכול להיות מנופח למיליוני רשומות גם מפני שהוא פועל במשך הרבה זמן ומג’נטו 1 CE לא מותאמת עבור קטלוגים גדולים.
      • מעבר לגודל קטלוג מסוים ומספר החנויות של מג’נטו, התקורה המוגברת של מוצרי אינדקסים שטוחים תעלה על היתרונות שלו כך שזה נוטה להיות טוב יותר לא להפעיל תכונה זאת עבור קטלוג גדול.
  • חיפוש בקטלוג
    • ברירת מחדל של חיפוש טקסט מלא של MYSQL הוא משאב חמדן, אינדקסים והחיפוש עצמו בממשק נוטה להיות איטי והדיוק שלו והרלוונטיות של התוצאה היא די עלובה. אז הוא חייב להיות מוחלף, אפילו במג’נטו 1 יש גם אלטרנטיבות טובות ואפילו חינמיות אשר יכולות להחליף את החיפוש ב MYSQL עם Solr, Elasticsearch או Sphinx. למג’נטו 1 EE יש סולר solr ומ 2.1  Elasticsearch כברירת מחדל.
    • FPC
    •  FPC הוא מנגנון שבו דפי html נאספים על ידי תוכנת שרתים ומאוחסנות כמטמון. בפעם הבאה שאותו דף אינטרנט יידרש, גרסת המטמון תחזור ללא הצורך לחדש את התוכן. בגרסת מג’נטו  1 CE אין אף FPC כברירת מחדל ובמג’נטו 1 EE המטמון מנוהל על ידי הקוד של מג’נטו עצמו. זה חוסך בהרבה משאבים והתוצאות הרבה יותר מהירות אך הדרך הכי טובה לבצע FPC היא על ידי יישום המטמון בשכבה מול מג’נטו ללא הצורך לגעת בו כלל כאשר תוכן המטמון מוגש. זה מושג על ידי מטמון VARNISH במג’נטו 2 למרות שמג’נטו 1 CE ללא FPC של VARNISH, קיימות הרחבות טובות ליישום תכונות אלו גם.
  • זיכרון מטמון של אפליקציה
    • מג’נטו מסתמך במידה רבה על סוגים שונים של תצורה ומטמון יישומים, Redis, מבוססים על זיכרון, הרחבת יישומי המטמון מאוד מומלצת עם תגיות הניהול. ההרחבה שמתמודדת עם Redis אינה בנויה בתוך המג’נטו וזה החל רק מהגרסאות האחרונות של 1 CE.

סיכום הגרסאות השונות של Magento:

  • צווארי בקבוק נפוצים הם ייבוא מוצרים ואינדקסים בחלק האחורי, חיפוש וניווט מרובד מקדימה. ניהול הזמנות ותשלום הם גם גורמים חשובים אך אלו יותר קשורים למספר המבקרים ולעסקאות.
  • יש סיכוי גדול שייבוא המוצרים צריך להיות מותאם ולעבור אופטימיזציה בכל הגרסאות של מג’נטו – ייבוא של מוצר עשיר בתכונות ומותאם עדיין צריך להיפתר אפילו בגרסה 2 EE של מג’נטו.
  • מג’נטו 1 CE היא פלטפורמה שפחות יכולה להתמודד עם קטלוגים גדולים אבל למרות קנה המידה הגדול, חברת אחסון לחנויות מג’נטו בעלת מוניטין המחזיקה בשרתים בעלי ביצועים גבוהים בשילוב הרחבות צד ג’ אשר מספקות אינדקס טוב יותר, חיפוש ומטמון, ישדרגו את המערכת במידה ניכרת. אולם, האינדקסים עדיין צריכים להישאר צוואר בקבוק.
  • למג’נטו 1 EE יש מספר רב של אופטימיזציות המיישמות את מטמון Varnish וכוונון של ארכיטקטורת השרת הן האופציות הטובות במקרה זה.
  • מג’נטו 2 CE מעוצבת בצורה שמעוצבת בצורה שתוכל לשרת עסקים בגדלים שונים בדיוק כמו מג’נטו 1 EE. הפונקציונליות לוקה בחסר של תכונות ארגוניות כמו קרדיטים בחנות, מערכת ניהול תוכן טובה יותר וכדומה. אבל בכל הנוגע לביצועים, מג’נטו 1 EE טובה ואפילו טובה יותר לאור השימוש ב Varnish. דרך בטוחה להעריך את קנה המידה היא לבצע אופטימיזציה, כוונון ארכיטקטורה של שרת, הטמעת Elasticsearch ו Solr כמנועי חיפוש.
  • מג’נטו 2 EE שמה כיעד ארגונים אפילו מהגודל הבינוני ומטרתה היא להציע ארכיטקטורה גמישה אשר מנצלת את היתרונות של טכנולוגיית הענן.

 

מה הטעויות הנפוצות שניתן לעשות כאשר קיים קטלוג ענק של מג’נטו?

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

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

מספר פרטים טכניים מאחורי הרמזים

בסעיף שלהלן ננסה לספק תיאור למושגי מג’נטו עבור הבנה טובה יותר של הנושא.

אחסון נתונים במג’נטו

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

אינדקסים – הכנה לקראת גישה ישירה לנתונים

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

  • אינדקס תכונות המוצר – לפי ברירת מחדל, זה חיוני כדי ששכבת הניווט תעבוד. זה מעתיק את נתוני האפשרויות של המוצר/תכונות למבנה של טבלאות שהוא אופטימלי למציאת מוצרים שמבוססים על אפשרויות של תכונות שונות שיש להם. מספר אפשרויות של התכונות מוכפל לפי מספר החנויות/שפות שיש למג’נטו.
  • אינדקס מחיר המוצר – לפי ברירת מחדל, זה חיוני כדי שהמיון והסינון של מוצרי המחירים יעבוד. כל Tier price מוגדר, מותאם אישית ומסבך את החישוב של המוצר במידה רבה מכיוון שהמחיר המינימלי של סוגי מוצר מורכבים תלוי במחיר של המוצרים הנבחרים. מספר האתרים של מג’נטו וקבוצות המחירים משמשים כגורמים נוספים שמסבכים.
  • אינדקס כתובת אתר הקטלוג המשוכתב – לפי ברירת מחדל, זה חיוני כדי שה SEO  וכתובות האתרים הידידותיים והניתוב מהכתובות הישנות לחדשות יעבוד. לעומק וגודל של מבנה הקטגוריה, מספר כתובות האתרים הישנות והחנויות/השפות יש השפעה גדולה על הטבלה.
    גודל הטבלה הזאת יכול להפוך למיליונים של רשומות ולהמשיך לעלות אף יותר במקרה של קטלוג עם אלפי מוצרים ומעט שפות. במג’נטו 1 CE ו- 1 EE  עד 12.x זה בהחלט האינדקס הכי בעייתי בכל הנוגע לדאגה לקטלוגים גדולים.
  • אינדקס קטגוריית המוצרים – מייעל את סינון המוצר המבוסס על קטגוריות על ידי יחסי קטלוג-מוצר בטבלה נפרדת. עדיין, זה אינדקס חיוני עבור הממשק. לעובדה אם הניווט השכבתי משמש עבור קטגוריה (“העוגן”) או לא יש השפעה על יחסי המוצר הללו.
  • אינדקס קטלוג החיפוש – זה חיוני עבור חיפוש המבוסס על ברירת מחדל של MYSQL. זה ממזג את הטקסט של תכונות המוצר והתוויות האפשריות של מוצרים אינדיבידואלים כך שהם ניתנים לחיפוש על ידי מנוע טקסט מלא של MYSQL. שוב פעם, ככל שיש יותר חנויות, יותר שורות של אינדקסים נוצרים עבור מוצר יחיד.
  • אינדקס מלאי – זה מחשב אם המוצר הוא למעשה נתון למכירה במג’נטו וזה עשוי להיות נשלט על ידי שילוב של כמה ערכי מוצר והגדרות ברמה גלובלית וברמת האתר.
  • אינדקס נתוני המוצר השטוחים – האינדקס הזה הוא אופטימלי ונוסף בנקודה מאוחרת יותר באבולוציה של מג’נטו כדי להאיץ את מיון המוצר ולחסוך במשאבי השרת.
    הדרך הנכונה היא להעתיק את ערכי תכונות המוצר אשר באופן נורמלי יכולים להיאסף רק על ידי שאילתות ענקיות שמצטרפות לטבלאות רבות לתוך מבנה שטוח רק עם רשומה וחנות אחת לכל מוצר.

עיצוב מסד הנתונים

  • מג’נטו EAV
    • המשמעות של EAV היא קיום ערך תכונה. הוא דפוס ניהול תכונה דינמי שמאפשר הוספה/הסרה/שינוי של תכונות מוצר כמו צבע, יצרן וכדומה ללא שינוי מבנה הטבלאות של מסד הנתונים. זה תכונה מאוד חזקה וידידות למשתמש ולמג’נטו יש מספר של אפשרויות תצורה עבור תכונות בהתאמה אישית מחוץ לקופסה.
  • Magento Multi-Store
    • זו תכונה ייחודית במג’נטו שכן מסד נתונים אחד יכול לנהל מספר חנויות רב בדרך שתכונות יכולות להקדיש ערכים ברמת החנות שעלולים לעקוף ערכי ברירת מחדל. זו גישה מאוד ידידות למשתמש ופשוטה, לדוגמה כדי ליצור גרסאות בשפות שונות של אותו קטלוג רק על ידי שינוי התיאור של המוצרים ואפשרויות התווית של המוצר, כל החנויות ניתנות לשליטה דרך ממשק ניהול אחד (!).
  • אינדקסים של Magento
    • נתונים מועתקים ממסד הנתונים המותאם עבור אחסון טבלאות שמותאמות אישית עבור גישה לנתוני הממשק. אינדקסים שונים משמשים עבור סוגים שונים של גישה לנתונים. תהליכי אינדקסים נבנים על מנת לזרז את החנות ובאופן כללי לספק יתרון עצום, עם זאת, זה הופך את אחסון הנתונים ליותר מורכב ולמשאבים חמדניים במיוחד במקרה של אינדקסים מחדש שהוא לפעמים בלתי נמנע וכל חנות מג’נטו צריכה להיות מוכנה לבצע בנייה מחודשת של אינדקס מלא, זה עלול לקחת הרבה זמן וזה מצריך המון משאבים כדי לבצע אינדקס מחדש שכל כל נתוני המוצרים, מומלץ להיוועץ בחברה המתמחה בשירותי פיתוח לחנויות מג’נטו.

מקווה שעזרתי לך בשאלה כמה מוצרים מג’נטו יכולה לנהל, בהצלחה!

מאמרים קשורים

מאמר קשור:  מדריך מג'נטו 2 בעברית - איך להעלות מוצר הניתן להורדה?

About author

Comments (1)

[…] – מודולים מובנים – תמיכה בכמות פריטים גדולה (כמה פריטים מג'נטו יכולה לנהל? לחץ לקריאה) – מכירות פרטיות, סיטונאות ומתנות – אחסון על ידי […]

הגב

LEAVE A COMMENT

Make sure you enter the(*) required information where indicated. HTML code is not allowed

הזמן שלך יקר

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

Theme Settings