𝗠𝗶𝗰𝗿𝗼𝘀𝗼𝗳𝘁 𝗙𝗮𝗯𝗿𝗶𝗰 𝗖𝗜/𝗖𝗗: 𝗧𝗵𝗲 𝗗𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁 𝗚𝗮𝗽

آپ کی ڈیپلائمنٹ کامیابی سے مکمل ہو جاتی ہے۔ آپ کا Azure DevOps پائپ لائن پاس ہو جاتا ہے۔ پروڈکشن ورک اسپیس بالکل ٹھیک نظر آتا ہے۔

پھر پیر کی صبح ہوتی ہے۔

Semantic model ریفریش فیل ہو جاتا ہے۔ Lakehouse پارٹیشنز ٹوٹ جاتے ہیں۔ ہر صارف کے لیے رپورٹس ٹائم آؤٹ ہو جاتی ہیں۔

یہ Microsoft Fabric CI/CD کا وہ پہلو ہے جسے زیادہ تر ٹیوٹوریلز نظر انداز کر دیتے ہیں۔

زیادہ تر انگریزی وسائل "hello world" سیٹ اپ دکھاتے ہیں۔ وہ آپ کو items کو سنک کرنے کا طریقہ دکھاتے ہیں۔ وہ آپ کو یہ نہیں دکھاتے کہ ایک حقیقی پروڈکشن ماحول کو کیسے چلایا جائے۔

میں نے Qiita پر جاپانی ڈویلپر کمیونٹی کی دستاویزات کا مطالعہ کیا۔ انہوں نے پروڈکشن کے لیے تیار Fabric ڈیپلائمنٹس کے حقیقی مسائل کا حل تلاش کر لیا ہے۔

Fabric ہر چیز کو items کے طور پر لیتا ہے۔ ان میں semantic models، lakehouses، pipelines، reports، اور notebooks شامل ہیں۔ مقصد ان items کو کوڈ کے طور پر استعمال کرنا ہے۔

معیاری ورک فلو کچھ اس طرح نظر آتا ہے:

  • Source control: اپنی ریپوزٹری (repo) میں items کو JSON تعریفوں کے طور پر ایکسپورٹ کریں۔
  • Build stage: کنفیگریشنز اور انحصار (dependencies) کی تصدیق کریں۔
  • Release stage: انوائرمنٹ پیرامیٹرز کا استعمال کرتے ہوئے ٹارگٹ ورک اسپیسز میں ڈیپلائ کریں۔

لیکن یہ سادہ ورک فلو بڑے پیمانے پر ناکام ہو جاتا ہے۔ اس کی وجہ یہ ہے:

  1. Dependency کی غلطیاں ٹیوٹوریلز کہتے ہیں کہ آپ کسی بھی ترتیب میں items کو ڈیپلائ کر سکتے ہیں۔ یہ غلط ہے۔ ایک semantic model، lakehouse پر منحصر ہوتا ہے۔ اگر آپ lakehouse اپ ڈیٹ ہونے سے پہلے ماڈل ڈیپلائ کرتے ہیں، تو ریفریش فیل ہو جاتا ہے۔

  2. API کی حدود ٹیوٹوریلز ہر چیز کے لیے ایک ہی پائپ لائن تجویز کرتے ہیں۔ بڑے ورک اسپیسز بیک وقت ہونے والی ڈیپلائمنٹس کے دوران Fabric API کی ریٹ لمٹس (rate limits) کو چھو لیتے ہیں۔ آپ کو عمل کو سست کرنے کے لیے لاجک کی ضرورت ہوتی ہے۔

  3. Capacity کے فرق ایک ماڈل ٹیسٹ انوائرمنٹ میں کام کر سکتا ہے لیکن پروڈکشن میں ناکام ہو سکتا ہے۔ پروڈکشن ورک اسپیسز میں اکثر مختلف capacity tiers اور فیچر کی پابندیاں ہوتی ہیں۔

اگر آپ ایک ٹیوٹوریل سے حقیقی پروڈکشن سیٹ اپ کی طرف بڑھنا چاہتے ہیں، تو ان اصولوں پر عمل کریں:

  • Sequential deployment کا استعمال کریں۔ انحصار (dependencies) کی بنیاد پر items کی ترتیب متعین کریں۔
  • Workspace locking نافذ کریں۔ دو پائپ لائنز کو ایک ہی وقت میں چلنے سے روکیں۔ یہ ورک اسپیس کی خرابی (corruption) کو روکتا ہے۔
  • ایک بیک اپ ورک اسپیس رکھیں۔ اگر ڈیپلائمنٹ فیل ہو جائے تو اسے rollback ٹارگٹ کے طور پر استعمال کریں۔
  • Capacity-aware پیرامیٹرز کا استعمال کریں۔ اپنی سیٹنگز کو اپنی اصل پروڈکشن کیپیسٹی کے مطابق ٹیسٹ کریں۔

ٹولز موجود ہیں۔ پیٹرن کام کرتا ہے۔ آپ کو بس ان ناکامیوں کے لیے تیار رہنے کی ضرورت ہے جنہیں ٹیوٹوریلز نظر انداز کر دیتے ہیں۔

کیا آپ کی ٹیم کو ایسی ڈیپلائمنٹ کی ناکامیوں کا سامنا کرنا پڑا ہے جن کا ذکر ٹیوٹوریلز میں نہیں تھا؟ پروڈکشن چیک لسٹ میں مزید کیا شامل ہونا چاہیے؟

ماخذ: https://dev.to/xu_xu_b2179aa8fc958d531d1/microsoft-fabric-cicd-the-deployment-gap-nobody-talks-about-2b44

اختیاری سیکھنے کی کمیونٹی: https://t.me/GyaanSetuAi