Microsoft Fabric CI/CD: פער הפריסה

הפריסה שלכם מסתיימת בהצלחה. ה-Azure DevOps pipeline שלכם עובר. סביבת העבודה (workspace) בייצור נראית מושלמת.

ואז מגיע בוקר יום שני.

רענון ה-semantic model נכשל. ה-Lakehouse partitions שבורים. דוחות נתקעים (timeout) עבור כל משתמש.

זהו הצד של Microsoft Fabric CI/CD שרוב המדריכים מתעלמים ממנו.

רוב המשאבים באנגלית מציגים הגדרת "hello world". הם מראים לכם איך לסנכרן פריטים (items). הם לא מראים לכם איך להריץ סביבת ייצור (production) אמיתית.

למדתי תיעוד מקהילת המפתחים היפנית ב-Qiita. הם הבינו את הבעיות האמיתיות בפריסות Fabric המוכנות לייצור.

Fabric מתייחסת לכל דבר כאל פריטים (items). אלו כוללים semantic models, lakehouses, pipelines, reports ו-notebooks. המטרה היא להתייחס לפריטים הללו כאל קוד.

תהליך העבודה הסטנדרטי נראה כך:

  • Source control: ייצוא פריטים כהגדרות JSON ב-repo שלכם.
  • Build stage: אימות קונפיגורציות ותלויות (dependencies).
  • Release stage: פריסה ל-workspaces היעד באמצעות פרמטרים של סביבה.

אך תהליך העבודה הפשוט הזה נכשל בקנה מידה גדול (at scale). הנה הסיבות לכך:

  1. שגיאות תלות (Dependency errors) המדריכים אומרים שניתן לפרוס פריטים בכל סדר. זה לא נכון. semantic model תלוי ב-lakehouse. אם תפרסו את המודל לפני עדכון ה-lakehouse, הרענון ייכשל.

  2. מגבלות API המדריכים מציעים pipeline אחד לכל דבר. workspaces גדולים מגיעים למגבלות קצב (rate limits) של ה-Fabric API במהלך פריסות מקבילות. אתם זקוקים ללוגיקה שתאט את התהליך.

  3. הבדלי קיבולת (Capacity differences) מודל עשוי לעבוד בסביבת בדיקות אך להיכשל בייצור. ל-workspaces בייצור יש לעיתים קרובות רמות קיבולת (capacity tiers) והגבלות פיצ'רים שונות.

אם אתם רוצים לעבור ממדריך להגדרת ייצור אמיתית, עקבו אחר הכללים הבאים:

  • השתמשו בפריסה סדרתית (sequential deployment). הגדירו את סדר הפריטים על בסיס התלויות שלהם.
  • יישמו נעילת workspace. מנעו משני pipelines לרוץ בו-זמנית. זה מונע שחיתות (corruption) של ה-workspace.
  • שמרו workspace גיבוי. השתמשו בו כיעד rollback אם פריסה נכשלת.
  • השתמשו בפרמטרים מודעי-קיבולת (capacity-aware). בדקו את ההגדרות שלכם מול קיבולת הייצור האמיתית שלכם.

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

האם הצוות שלכם נתקל בכשלים בפריסה שהמדריכים לא ציינו? מה עוד צריך להיכלל ברשימת בדיקה (checklist) לייצור?

Source: https://dev.to/xu_xu_b2179aa8fc958d531d1/microsoft-fabric-cicd-the-deployment-gap-nobody-talks-about-2b44

Optional learning community: https://t.me/GyaanSetuAi