𝗠𝗶𝗰𝗿𝗼𝘀𝗼𝗳𝘁 𝗙𝗮𝗯𝗿𝗶𝗰 𝗖𝗜/𝗖𝗗: 𝗧𝗵𝗲 𝗗𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁 𝗚𝗮𝗽
તમારું ડિપ્લોયમેન્ટ સફળતાપૂર્વક પૂર્ણ થાય છે. તમારી Azure DevOps પાઇપલાઇન પાસ થાય છે. પ્રોડક્શન વર્કસ્પેસ એકદમ પરફેક્ટ લાગે છે.
પછી સોમવારની સવાર આવે છે.
સેમેન્ટિક મોડલ રિફ્રેશ નિષ્ફળ જાય છે. Lakehouse પાર્ટિશન તૂટી જાય છે. દરેક યુઝર માટે રિપોર્ટ્સ ટાઈમઆઉટ થાય છે.
આ Microsoft Fabric CI/CD ની એવી બાજુ છે જેને મોટાભાગના ટ્યુટોરિયલ્સ અવગણે છે.
મોટાભાગના અંગ્રેજી રિસોર્સિસ "hello world" સેટઅપ બતાવે છે. તેઓ તમને આઇટમ્સ કેવી રીતે સિંક કરવી તે બતાવે છે. પરંતુ તેઓ તમને વાસ્તવિક પ્રોડક્શન એન્વાયરમેન્ટ કેવી રીતે ચલાવવું તે નથી બતાવતા.
મેં Qiita પર જાપાનીઝ ડેવલપર કોમ્યુનિટીના ડોક્યુમેન્ટેશનનો અભ્યાસ કર્યો છે. તેઓએ પ્રોડક્શન-રેડી Fabric ડિપ્લોયમેન્ટ્સ સાથેની વાસ્તવિક સમસ્યાઓ શોધી કાઢી છે.
Fabric દરેક વસ્તુને 'items' તરીકે ગણે છે. આમાં semantic models, lakehouses, pipelines, reports અને notebooks નો સમાવેશ થાય છે. ધ્યેય આ આઇટમ્સને કોડ તરીકે ગણવાનો છે.
સ્ટાન્ડર્ડ વર્કફ્લો આવો દેખાય છે:
- Source control: તમારા રિપોમાં આઇટમ્સને JSON ડેફિનેશન તરીકે એક્સપોર્ટ કરો.
- Build stage: કોન્ફિગરેશન અને ડિપેન્ડન્સીઝને વેલિડેટ કરો.
- Release stage: એન્વાયરમેન્ટ પેરામીટર્સનો ઉપયોગ કરીને ટાર્ગેટ વર્કસ્પેસમાં ડિપ્લોય કરો.
પરંતુ આ સરળ વર્કફ્લો મોટા પાયે (at scale) નિષ્ફળ જાય છે. તેનું કારણ નીચે મુજબ છે:
Dependency errors ટ્યુટોરિયલ્સ કહે છે કે તમે કોઈપણ ક્રમમાં આઇટમ્સ ડિપ્લોય કરી શકો છો. આ ખોટું છે. એક semantic model, lakehouse પર આધારિત હોય છે. જો તમે lakehouse અપડેટ થાય તે પહેલા મોડલ ડિપ્લોય કરો છો, તો રિફ્રેશ નિષ્ફળ જાય છે.
API limits ટ્યુટોરિયલ્સ બધી વસ્તુઓ માટે એક જ પાઇપલાઇન સૂચવે છે. મોટા વર્કસ્પેસ જ્યારે એકસાથે ડિપ્લોયમેન્ટ કરે છે ત્યારે Fabric API ની રેટ લિમિટ્સ વટાવી જાય છે. પ્રક્રિયાને ધીમી કરવા માટે તમારે લોજિકની જરૂર પડશે.
Capacity differences એક મોડલ ટેસ્ટ એન્વાયરમેન્ટમાં કામ કરી શકે છે પરંતુ પ્રોડક્શનમાં નિષ્ફળ જઈ શકે છે. પ્રોડક્શન વર્કસ્પેસમાં ઘણીવાર અલગ કેપેસિટી ટિયર્સ અને ફીચર પ્રતિબંધો હોય છે.
જો તમે ટ્યુટોરિયલથી વાસ્તવિક પ્રોડક્શન સેટઅપ પર જવા માંગતા હોવ, તો આ નિયમોનું પાલન કરો:
- Sequential deployment નો ઉપયોગ કરો. તેમની ડિપેન્ડન્સીઝના આધારે આઇટમ્સનો ક્રમ નક્કી કરો.
- Workspace locking લાગુ કરો. બે પાઇપલાઇન્સને એકસાથે ચાલતા અટકાવો. આ વર્કસ્પેસ કરપ્શનને રોકે છે.
- બેકઅપ વર્કસ્પેસ રાખો. જો ડિપ્લોયમેન્ટ નિષ્ફળ જાય તો તેને રોલબેક ટાર્ગેટ તરીકે ઉપયોગ કરો.
- Capacity-aware પેરામીટર્સનો ઉપયોગ કરો. તમારી સેટિંગ્સને તમારી વાસ્તવિક પ્રોડક્શન કેપેસિટી સામે ટેસ્ટ કરો.
સાધનો ઉપલબ્ધ છે. પેટર્ન કામ કરે છે. તમારે ફક્ત એવા નિષ્ફળતાઓ માટે તૈયાર રહેવાની જરૂર છે જેને ટ્યુટોરિયલ્સ અવગણે છે.
શું તમારી ટીમે ડિપ્લોયમેન્ટમાં એવી નિષ્ફળતાઓનો સામનો કર્યો છે જેનો ટ્યુટોરિયલ્સમાં ઉલ્લેખ નહોતો? પ્રોડક્શન ચેકલિસ્ટમાં બીજું શું હોવું જોઈએ?
વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: https://t.me/GyaanSetuAi