החלטות ארכיטקטורה שמתקבלות בתחילת פרויקט קובעות את העלות של כל פיצ'ר עתידי. בחירה שגויה — אחסון נתונים במאפייני אינפובלוק במקום בטבלאות נפרדות כשיש לך 100,000 פריטים — תהפוך שאילתות פשוטות לאיטיות באופן בלתי אפשרי תוך שנתיים. תיקון מאוחר יותר עולה פי 10–30 יותר מאשר לעשות את זה נכון מההתחלה. כל יום אנחנו רואים פרויקטים שבהם ארכיטקטורה גרועה מאלצת את הצוות לבזבז 70% מהזמן על תחזוקה במקום על פיתוח. ב-10+ שנות עבודה, ביצענו מעל 50 ייעוצי ארכיטקטורה ובנינו 30+ פרויקטים מאפס.
נקודות החלטה ארכיטקטוניות טיפוסיות
אינפובלוקים מול טבלאות ORM: מה לבחור?
אינפובלוקים הם גמישים וניתנים לניהול דרך ממשק הניהול — מצוינים לתוכן. אבל עבור קשרים מורכבים, תדירות כתיבה גבוהה, או שאילתות לא סטנדרטיות, טבלאות ORM מותאמות אישית (\Bitrix\Main\ORM\Data\DataManager) פועלות פי 5–50 מהר יותר.
כלל אצבע: אם הנתונים נערכים דרך פאנל הניהול על ידי מנהלי תוכן — השתמש באינפובלוקים. אם הנתונים מטופלים רק על ידי קוד (לוגים, תורים, אירועים, עסקאות) — השתמש בטבלאות ORM.
מונולית מול ארכיטקטורה מודולרית
בהתחלה, נוח לכתוב הכל ברכיב מותאם אישית אחד. שנה לאחר מכן, הרכיב הזה עם 3,000 שורות הופך לבלתי ניתן לבדיקה וקשה להעברה. גישה מודולרית: /local/modules/company.module_name/ עם API ציבורי ברור, אירועים, ותלותיות Composer.
רכיבי AJAX מול גישת SPA
ביטריקס תומך בשניהם. רכיבי AJAX (bitrix:main.loader) עובדים באופן טבעי עם הליבה אבל יש להם יכולות מוגבלות. SPA עם React/Vue (דרך bitrix:ui.sidepanel או SPA מלא) מספק חוויית משתמש טובה יותר אבל דורש API נפרד ומסבך SSR/SEO.
למה קאשינג הוא גורם מפתח בביצועים
קאשינג נכון יכול להאיץ אתר פי 10–50 ללא שינוי בלוגיקה. ביטריקס מספקת מספר שכבות:
| שכבה | מנגנון | יישום |
|---|---|---|
| קאש מנוהל | \Bitrix\Main\Data\ManagedCache |
אובייקטים עם תגי invalidation |
| קאש דפים | הגדרות רכיב | דפים/בלוקים שלמים |
| memcache / Redis | /bitrix/.settings.php |
סשנים, קאש אובייקטים |
| CDN | CDN חיצוני | קבצים סטטיים, תמונות |
בחירת מהדורה ורישיון
| משימה | המלצה |
|---|---|
| פורטל ארגוני | Bitrix24 on-premise, Enterprise |
| חנות מקוונת עם B2B | 1C-Bitrix: Business או Small Business |
| מרקטפלייס בעומס גבוה | Enterprise + קלאסטר |
| דף נחיתה + CRM | Bitrix24 cloud |
המהדורה קובעת את המודולים הזמינים: b2b, catalog (קטלוג מסחר B2B), sale.crm (אינטגרציית CRM בהזמנות).
אינטגרציית 1C: החלטות ארכיטקטוניות
החלפה קלאסית דרך CommerceML (מבוססת קבצים) עובדת עד ~50,000 SKU. עבור נפחים גדולים יותר או דרישות זמן אמת, השתמש בהחלפת REST דרך 1C API או ברוקר הודעות (RabbitMQ).
ארכיטקטורת ברוקר: 1C → מפרסם אירוע ל-RabbitMQ → עובד Bitrix נרשם ומעבד → מעדכן נתונים בזמן אמת. זמן השהייה הוא שניות במקום שעות עם החלפת קבצים.
איך אנחנו מייעצים על ארכיטקטורה
- ניתוח דרישות עסקיות ומגבלות (תעבורה, נפח נתונים, תקציב)
- השוואת אפשרויות ארכיטקטוניות עם הערכת סיכון ועלות
- בחירת מהדורת ביטריקס והרכב מודולים
- עיצוב סכמת נתונים ומבנה מודולים
- ארכיטקטורה של 1C ואינטגרציות חיצוניות
- המלצות על מחסנית טכנולוגית (קאש, חיפוש, תורים)
- הפקת מסמך 'החלטת ארכיטקטורה' עבור צוות הפיתוח
מקרה מהפרקטיקה שלנו: פלטפורמת B2B עם 500,000 SKU
משימה: חנות מקוונת ללקוחות ארגוניים עם תמחור אישי, מכסות, ותנאי משלוח לכל צד מתקשר.
בעיות עם הגישה הסטנדרטית:
- אחסון מחירים ב-
b_catalog_price— 500,000 SKU × 200 קבוצות קונים = 100 מיליון רשומות; כל שאילתת מחיר >500ms - סינון קטלוג דרך מאפייני אינפובלוק — סריקה רציפה על טבלה עם 5 מיליון שורות מאפיינים
- עגלת קניות והזמנות סטנדרטיות של
saleלא תומכות במכסות ותנאים לכל צד מתקשר
פתרון ארכיטקטוני:
- מחירים הועברו לטבלת ORM נפרדת
bl_b2b_priceעם אינדקס על(user_group_id, product_id)— שאילתת מחיר ב-5ms - סינון דרך ElasticSearch (משולב עם ביטריקס דרך רכיב מותאם אישית)
saleהסטנדרטי הורחב עם מודולcompany.b2b_sale— נוספו שדות צד מתקשר, מכסות ותנאים מיוחדים- מחירים מ-1C מועברים דרך RabbitMQ → עובד מעדכן
bl_b2b_priceבזמן אמת
תוצאה: דף קטלוג עם סינון נטען ב-300ms, עדכוני מחירים מ-1C מגיעים תוך 30 שניות במקום 4 שעות.
| רכיב פתרון | טכנולוגיה | נימוק |
|---|---|---|
| אחסון מחירים | טבלת ORM + אינדקסים | \Bitrix\Sale לא מתאים ל-100M רשומות |
| חיפוש וסינון | ElasticSearch | חיפוש טקסט מלא + סינון פאקטי ב-<100ms |
| סנכרון 1C | RabbitMQ + עובד | זמן אמת במקום החלפת קבצים |
| עגלה והזמנות | הרחבה של \Bitrix\Sale |
שמירה על תאימות עם מודולי ביטריקס |
קבל ייעוץ על הארכיטקטורה של הפרויקט שלך — נבדוק סיכונים ונציע פתרון אופטימלי תוך 2–3 ימים. בקש ביקורת ארכיטקטורה כדי להימנע מעבודות תיקון יקרות בעתיד.







