Microsoft Fabric CI/CD: డిప్లాయ్‌మెంట్‌లో ఉన్న లోపం (The Deployment Gap)

మీ డిప్లాయ్‌మెంట్ విజయవంతంగా పూర్తవుతుంది. మీ Azure DevOps పైప్‌లైన్ పాస్ అవుతుంది. ప్రొడక్షన్ వర్క్‌స్పేస్ అద్భుతంగా కనిపిస్తుంది.

కానీ సోమవారం ఉదయం వచ్చేసరికి పరిస్థితి మారుతుంది.

సెమాంటిక్ మోడల్ రిఫ్రెష్ ఫెయిల్ అవుతుంది. లేక్‌హౌస్ పార్టిషన్లు దెబ్బతింటాయి. ప్రతి యూజర్‌కు రిపోర్ట్‌లు టైమ్ అవుట్ అవుతాయి.

చాలా ట్యుటోరియల్స్ విస్మరించే Microsoft Fabric CI/CD యొక్క మరో కోణం ఇది.

చాలా ఇంగ్లీష్ వనరులు కేవలం "hello world" సెటప్‌ను మాత్రమే చూపిస్తాయి. ఐటమ్స్‌ను ఎలా సింక్ చేయాలో మాత్రమే చెబుతాయి. కానీ ఒక నిజమైన ప్రొడక్షన్ ఎన్విరాన్‌మెంట్‌ను ఎలా నడపాలో అవి చూపించవు.

నేను Qiita లోని జపనీస్ డెవలపర్ కమ్యూనిటీ డాక్యుమెంటేషన్‌ను అధ్యయనం చేశాను. ప్రొడక్షన్-రెడీ Fabric డిప్లాయ్‌మెంట్లలో ఎదురయ్యే నిజమైన సమస్యలను వారు గుర్తించారు.

Fabric ప్రతిదీ ఒక 'ఐటమ్' (item) గా పరిగణిస్తుంది. వీటిలో సెమాంటిక్ మోడల్స్, లేక్‌హౌస్‌లు, పైప్‌లైన్‌లు, రిపోర్ట్‌లు మరియు నోట్‌బుక్‌లు ఉంటాయి. ఈ ఐటమ్స్‌ను కోడ్‌గా పరిగణించడమే దీని లక్ష్యం.

ప్రామాణిక వర్క్‌ఫ్లో ఇలా ఉంటుంది:

  • Source control: మీ రిపో (repo) లో ఐటమ్స్‌ను JSON డెఫినిషన్లుగా ఎగుమతి చేయండి.
  • Build stage: కాన్ఫిగరేషన్లు మరియు డిపెండెన్సీలను ధృవీకరించండి (Validate).
  • Release stage: ఎన్విరాన్‌మెంట్ పారామీటర్లను ఉపయోగించి టార్గెట్ వర్క్‌స్పేస్‌లకు డిప్లాయ్ చేయండి.

కానీ ఈ సరళమైన వర్క్‌ఫ్లో పెద్ద ఎత్తున (at scale) విఫలమవుతుంది. దానికి కారణాలు ఇవే:

  1. డిపెండెన్సీ ఎర్రర్స్ (Dependency errors) ఐటమ్స్‌ను ఏ క్రమంలోనైనా డిప్లాయ్ చేయవచ్చని ట్యుటోరియల్స్ చెబుతాయి. ఇది తప్పు. ఒక సెమాంటిక్ మోడల్ లేక్‌హౌస్‌పై ఆధారపడి ఉంటుంది. లేక్‌హౌస్ అప్‌డేట్ కావడానికి ముందే మీరు మోడల్‌ను డిప్లాయ్ చేస్తే, రిఫ్రెష్ ఫెయిల్ అవుతుంది.

  2. API పరిమితులు (API limits) ట్యుటోరియల్స్ అన్నింటికీ ఒకే పైప్‌లైన్‌ను సూచిస్తాయి. పెద్ద వర్క్‌స్పేస్‌లలో ఒకేసారి (concurrent) డిప్లాయ్‌మెంట్లు జరుగుతున్నప్పుడు Fabric API రేట్ లిమిట్స్‌ను చేరుకుంటాయి. ఈ ప్రక్రియను నెమ్మదింపజేయడానికి మీకు తగిన లాజిక్ అవసరం.

  3. కెపాసిటీ తేడాలు (Capacity differences) ఒక మోడల్ టెస్ట్ ఎన్విరాన్‌మెంట్‌లో పనిచేయవచ్చు కానీ ప్రొడక్షన్‌లో విఫలం కావచ్చు. ప్రొడక్షన్ వర్క్‌స్పేస్‌లు తరచుగా వేర్వేరు కెపాసిటీ టైర్లు మరియు ఫీచర్ పరిమితులను కలిగి ఉంటాయి.

మీరు ఒక ట్యుటోరియల్ నుండి నిజమైన ప్రొడక్షన్ సెటప్‌కు మారాలనుకుంటే, ఈ నియమాలను పాటించండి:

  • సీక్వెన్షియల్ డిప్లాయ్‌మెంట్‌ను (sequential deployment) ఉపయోగించండి. వాటి డిపెండెన్సీల ఆధారంగా ఐటమ్స్ యొక్క క్రమాన్ని నిర్ణయించండి.
  • వర్క్‌స్పేస్ లాకింగ్‌ను (workspace locking) అమలు చేయండి. రెండు పైప్‌లైన్‌లు ఒకే సమయంలో నడవకుండా నిరోధించండి. ఇది వర్క్‌స్పేస్ కరప్షన్‌ను అడ్డుకుంటుంది.
  • బ్యాకప్ వర్క్‌స్పేస్‌ను ఉంచుకోండి. డిప్లాయ్‌మెంట్ విఫలమైతే దానిని రోల్‌బ్యాక్ (rollback) టార్గెట్‌గా ఉపయోగించండి.
  • కెపాసిటీ-అవేర్ పారామీటర్లను (capacity-aware parameters) ఉపయోగించండి. మీ సెట్టింగ్‌లను మీ అసలు ప్రొడక్షన్ కెపాసిటీతో పరీక్షించండి.

సాధనాలు అందుబాటులో ఉన్నాయి. ఈ పద్ధతి పనిచేస్తుంది. ట్యుటోరియల్స్ విస్మరించే వైఫల్యాల కోసం మీరు సిద్ధంగా ఉండాలి.

ట్యుటోరియల్స్‌లో పేర్కొనని డిప్లాయ్‌మెంట్ వైఫల్యాలను మీ టీమ్ ఎదుర్కొందా? ప్రొడక్షన్ చెక్‌లిస్ట్‌లో ఇంకా ఏమేమి ఉండాలి?

మూలం: https://dev.to/xu_xu_b2179aa8fc958d531d1/microsoft-fabric-cicd-the-deployment-gap-nobody-talks-about-2b44

ఐచ్ఛిక అభ్యాస సమూహం: https://t.me/GyaanSetuAi