എന്താണ് CI/CD? Continuous Integration, Delivery എന്നിവ ലളിതമായി വിശദീകരണം
ഓരോ കോഡ് മാറ്റവും സ്വയമേവ ബിൽഡ് ചെയ്ത്, പരിശോധിച്ച്, വിജയിക്കുകയാണെങ്കിൽ റിലീസിനായി തയ്യാറാക്കുകയോ പുറത്തിറക്കുകയോ ചെയ്യുന്ന സോഫ്റ്റ്വെയർ ഷിപ്പ് ചെയ്യുന്ന രീതിയാണ് CI/CD. CI (continuous integration) എന്നാൽ മാറ്റങ്ങൾ പതിവായി ലയിപ്പിക്കുകയും ഓരോ തവണയും ഓട്ടോമേറ്റഡ് ടെസ്റ്റുകൾ പരിശോധിക്കുകയും ചെയ്യുന്നു. CD (continuous delivery അല്ലെങ്കിൽ deployment) എന്നാൽ വിജയിക്കുന്ന മാറ്റങ്ങൾ പാക്ക് ചെയ്ത്, മനുഷ്യ ജോലി കുറവോ ഇല്ലാതെയോ നിങ്ങളുടെ ഉപയോക്താക്കളിലേക്ക് എത്തിക്കുന്നു.
കാര്യം ലളിതമാണ്: തെറ്റുകൾ സംഭവിച്ച് ആഴ്ചകൾക്ക് ശേഷം ഒരു ഉപഭോക്താവ് കണ്ടെത്തുന്നതിനു പകരം, ഉണ്ടായ ഉടനെ മിനിറ്റുകൾക്കുള്ളിൽ പിടികൂടുക.
AI ഉപയോഗിച്ച് നിർമ്മിക്കുമ്പോൾ CI/CD പ്രധാനമായത് എന്തുകൊണ്ട്
AI ബിൽഡറുകൾ കോഡ് മാറ്റങ്ങൾ വേഗത്തിൽ വരുത്തുന്നു. ഒരൊറ്റ പ്രോംപ്റ്റ് പത്ത് ഫയലുകളെ തൊട്ടേക്കാം. ചെക്ക്-ഔട്ട് പേജിലെ ഒരു മാറ്റം നിശബ്ദമായി ലോഗിൻ പേജ് തകർക്കുകയും, ഒരു ഉപയോക്താവ് ഇമെയിൽ അയക്കുന്നതുവരെ ആരും ശ്രദ്ധിക്കാതിരിക്കുകയും ചെയ്യുന്നതുവരെ ആ വേഗത വളരെ നല്ലതാണ്.
ഇതിനുള്ള സുരക്ഷാ വലയാണ് CI/CD. ഓരോ മാറ്റവും ശരിയാണെന്ന് വിശ്വസിക്കുന്നതിനു പകരം, ഒരു പൈപ്പ്ലൈൻ ഓരോ തവണയും ഒരേ പരിശോധനകൾ നടത്തുന്നു:
- ആപ്പ് ഇപ്പോഴും പിശകുകളില്ലാതെ ബിൽഡ് ആകുന്നുണ്ടോ?
- ഓട്ടോമേറ്റഡ് ടെസ്റ്റുകൾ ഇപ്പോഴും വിജയിക്കുന്നുണ്ടോ?
- കോഡ് പ്രോജക്റ്റിന്റെ നിയമങ്ങൾ പാലിക്കുന്നുണ്ടോ (ടൈപ്പുകൾ, ഫോർമാറ്റിംഗ്, സുരക്ഷാ പരിശോധനകൾ)?
ഏതെങ്കിലും പരിശോധന പരാജയപ്പെട്ടാൽ, മാറ്റം ഉപയോക്താക്കളിൽ എത്തുന്നതിന് മുമ്പ് തടയപ്പെടുന്നു. നിങ്ങളുടെ കോഡ് മാറ്റങ്ങൾ വേഗത്തിലാകുന്തോറും, ഒരിക്കലും മടുക്കാതെയോ ഒരു ഘട്ടം ഒഴിവാക്കാതെയോ പ്രവർത്തിക്കുന്ന പരിശോധന കൂടുതൽ വിലപ്പെട്ടതാകുന്നു.
ദൈനംദിന ഉദാഹരണം
എല്ലാ ദിവസവും രാവിലെ കടകളിലേക്ക് റൊട്ടി വിൽക്കുന്ന ഒരു ബേക്കറി സങ്കൽപ്പിക്കുക.
- CI/CD ഇല്ലാതെ, ഓരോ ബേക്കറും ഒരാഴ്ച സ്വന്തം പാചകക്കുറിപ്പ് മാറ്റങ്ങളിൽ പ്രവർത്തിക്കുന്നു, പിന്നെ വെള്ളിയാഴ്ച രാത്രി എല്ലാവരും അവ ഒന്നിപ്പിച്ച് റൊട്ടി ഇപ്പോഴും പൊങ്ങുമോ എന്ന് പ്രതീക്ഷിക്കുന്നു. പൊങ്ങാതിരുന്നാൽ, ഏത് മാറ്റമാണ് കാരണമെന്ന് ആർക്കും അറിയില്ല.
- CI ഉപയോഗിച്ച്, ഓരോ ചെറിയ പാചകക്കുറിപ്പ് മാറ്റവും ഉടനെ ഒരു ടെസ്റ്റ് അപ്പത്തിൽ ചുട്ട് — രുചി, ഭാരം, ആകൃതി — പരിശോധിക്കുന്നു. മോശം മാറ്റം അന്നുതന്നെ പിടികൂടുന്നു, ഏതാണെന്ന് കൃത്യമായി അറിയാം.
- CD ഉപയോഗിച്ച്, പരിശോധന കടക്കുന്ന അപ്പങ്ങൾ നേരിട്ട് ഡെലിവറി വാനിലേക്ക് പോകുന്നു, ഓരോ തവണയും ഒരേ രീതിയിൽ പാക്ക് ചെയ്ത് ലേബൽ ചെയ്ത്, പുലർച്ചെ 5 മണിക്ക് ആരെങ്കിലും കൈകൊണ്ട് പെട്ടികൾ പാക്ക് ചെയ്യുന്നതിനു പകരം.
പരിശോധന ബേക്കർമാരെ മെച്ചപ്പെടുത്തുന്നില്ല. അവരുടെ തെറ്റുകളുടെ വില കുറയ്ക്കുകയാണ് ചെയ്യുന്നത്.
ഒരു CI/CD പൈപ്പ്ലൈൻ എങ്ങനെ പ്രവർത്തിക്കുന്നു
പൈപ്പ്ലൈൻ എന്നത് എന്തെങ്കിലും സംഭവിക്കുമ്പോൾ ഒരു CI/CD സേവനം സ്വയമേവ പ്രവർത്തിപ്പിക്കുന്ന ഘട്ടങ്ങളുടെ പട്ടികയാണ് — സാധാരണയായി GitHub പോലുള്ള ഒരു റിപ്പോസിറ്ററിയിലേക്ക് ആരെങ്കിലും കോഡ് പുഷ് ചെയ്യുമ്പോൾ. ഒരു സാധാരണ പൈപ്പ്ലൈൻ ഇങ്ങനെയാണ്:
| ഘട്ടം | എന്ത് സംഭവിക്കുന്നു | എന്ത് പിടികൂടുന്നു |
|---|---|---|
| 1. ട്രിഗർ | കോഡ് പുഷ് ചെയ്യുന്നു അല്ലെങ്കിൽ പുൾ റിക്വസ്റ്റ് തുറക്കുന്നു | — |
| 2. ഇൻസ്റ്റാൾ | ഒരു പുതിയ മെഷീൻ കോഡും അതിന്റെ ഡിപെൻഡൻസികളും ഡൗൺലോഡ് ചെയ്യുന്നു | കാണാത്തതോ തകർന്നതോ ആയ പാക്കേജുകൾ |
| 3. ബിൽഡ് | ആപ്പ് കമ്പൈൽ ചെയ്യുന്നു അല്ലെങ്കിൽ ബണ്ടിൽ ചെയ്യുന്നു | സിന്റാക്സ്, ടൈപ്പ് പിശകുകൾ, തകർന്ന ഇംപോർട്ടുകൾ |
| 4. ടെസ്റ്റ് | ഓട്ടോമേറ്റഡ് ടെസ്റ്റുകൾ പ്രവർത്തിക്കുന്നു | ഇനി പ്രവർത്തിക്കാത്ത ഫീച്ചറുകൾ |
| 5. പരിശോധനകൾ | ലിന്റിംഗ്, ഫോർമാറ്റിംഗ്, സുരക്ഷാ സ്കാനുകൾ | സ്റ്റൈൽ പ്രശ്നങ്ങൾ, അറിയപ്പെട്ട ദുർബല പാക്കേജുകൾ, ചോർന്ന കീകൾ |
| 6. സ്റ്റേജിംഗിലേക്ക് ഡിപ്ലോയ് | ആപ്പ് പ്രൊഡക്ഷന്റെ ഒരു ടെസ്റ്റ് കോപ്പിയിലേക്ക് പോകുന്നു | യഥാർത്ഥ പരിസ്ഥിതിയിൽ മാത്രം കാണുന്ന പ്രശ്നങ്ങൾ |
| 7. പ്രൊഡക്ഷനിലേക്ക് ഡിപ്ലോയ് | ആപ്പ് സ്വയമേവയോ അംഗീകാരത്തിന് ശേഷമോ ലൈവാകുന്നു | — |
ഓരോ ഘട്ടവും വൃത്തിയുള്ള മെഷീനിലാണ് പ്രവർത്തിക്കുന്നത്, ആരുടെയെങ്കിലും ലാപ്ടോപ്പിലല്ല, അതിനാൽ “എന്റെ കമ്പ്യൂട്ടറിൽ പ്രവർത്തിക്കുന്നുണ്ട്” എന്ന ഒഴികഴിവ് ഇല്ലാതാകുന്നു. ഒരു ഘട്ടം പരാജയപ്പെട്ടാൽ പൈപ്പ്ലൈൻ നിൽക്കുകയും മാറ്റം വരുത്തിയ ആളോട് അത് പറയുകയും ചെയ്യുന്നു.
ഘട്ടങ്ങൾ കോഡിനൊപ്പം ഉള്ള ഒരു കോൺഫിഗറേഷൻ ഫയലിലാണ് നിർവചിച്ചിരിക്കുന്നത്. ഉദാഹരണത്തിന് GitHub Actions-ൽ, അത് റിപ്പോസിറ്ററിയുടെ .github/workflows ഫോൾഡറിലുള്ള ഒരു YAML ഫയലാണ്.
Continuous delivery vs continuous deployment
“CD” എന്നത് അവ്യക്തമാണ്, ആളുകൾ രണ്ട് അർത്ഥത്തിലും ഉപയോഗിക്കുന്നു:
| Continuous delivery | Continuous deployment | |
|---|---|---|
| ടെസ്റ്റുകൾ സ്വയമേവ പ്രവർത്തിക്കുന്നു | അതെ | അതെ |
| റിലീസ് സ്വയമേവ പാക്ക് ചെയ്യുന്നു | അതെ | അതെ |
| സ്വയമേവ ലൈവാകുന്നു | ഇല്ല — ഒരാൾ “release” ക്ലിക്ക് ചെയ്യുന്നു | അതെ — വിജയിക്കുന്ന ഓരോ മാറ്റവും ഷിപ്പ് ചെയ്യുന്നു |
| ഏതിന് യോജിക്കുന്നു | മിക്ക ചെറിയ ടീമുകൾക്കും പണം നൽകുന്ന ഉപയോക്താക്കളുള്ള ആപ്പുകൾക്കും | ശക്തമായ ടെസ്റ്റ് കവറേജും മോണിറ്ററിംഗും ഉള്ള ടീമുകൾക്ക് |
ടെസ്റ്റുകൾ നല്ലതാണെങ്കിൽ മാത്രമേ continuous deployment നന്നായി പ്രവർത്തിക്കൂ. നിങ്ങളുടെ ടെസ്റ്റുകൾ ചെക്ക്-ഔട്ട് മൂടുന്നില്ലെങ്കിൽ, continuous deployment സന്തോഷത്തോടെ തകർന്ന ചെക്ക്-ഔട്ട് ഷിപ്പ് ചെയ്യും.
ഒരു ഉദാഹരണം: പൈപ്പ്ലൈനുള്ള ഒരു ബുക്കിംഗ് ആപ്പ്
നിങ്ങൾക്ക് ഒരു സലൂൺ ബുക്കിംഗ് ആപ്പുണ്ട്, അതിന്റെ കോഡ് GitHub റിപ്പോസിറ്ററിയിലാണ്. “ആദ്യമായി വരുന്ന ഉപഭോക്താക്കൾക്ക് 10% കിഴിവ് ചേർക്കൂ” എന്ന് AI ബിൽഡറിനോട് ആവശ്യപ്പെടുന്നു എന്ന് കരുതുക.
- മാറ്റം ഒരു പുതിയ ബ്രാഞ്ചിലേക്ക് പുഷ് ചെയ്യുന്നു, ഒരു പുൾ റിക്വസ്റ്റ് തുറക്കുന്നു.
- പൈപ്പ്ലൈൻ ആരംഭിക്കുന്നു. പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്ത് ആപ്പ് ബിൽഡ് ചെയ്യുന്നു — ഇത് വിജയിക്കുന്നു.
- ടെസ്റ്റുകൾ പ്രവർത്തിപ്പിക്കുന്നു. “തിരികെ വരുന്ന ഉപഭോക്താവ് മുഴുവൻ വില നൽകുന്നു” എന്ന ഒരു ടെസ്റ്റ് പരാജയപ്പെടുന്നു: കിഴിവ് എല്ലാവർക്കും ബാധകമാക്കുന്നു.
- പുൾ റിക്വസ്റ്റിൽ ചുവന്ന കുരിശ് കാണിക്കുന്നു. മാറ്റം ലയിപ്പിക്കാനാവില്ല.
- ഇത് ശരിയാക്കാൻ AI-യോട് ആവശ്യപ്പെടുന്നു. അത് ഒരു തിരുത്തൽ പുഷ് ചെയ്യുന്നു; പൈപ്പ്ലൈൻ വീണ്ടും പ്രവർത്തിച്ച് എല്ലാം വിജയിക്കുന്നു.
- മാറ്റം ലയിപ്പിക്കുന്നു. പൈപ്പ്ലൈൻ അത് ഒരു സ്റ്റേജിംഗ് എൻവയോൺമെന്റിലേക്ക് ഡിപ്ലോയ് ചെയ്യുന്നു, അവിടെ ഒരു ടെസ്റ്റ് ബുക്കിംഗ് പരീക്ഷിക്കുന്നു.
- നിങ്ങൾ അംഗീകരിക്കുന്നു, അത് പ്രൊഡക്ഷനിലേക്ക് ഡിപ്ലോയ് ചെയ്യുന്നു.
പൈപ്പ്ലൈൻ ഇല്ലായിരുന്നെങ്കിൽ, ഘട്ടം 3-ൽ സംഭവിക്കേണ്ടിയിരുന്നത് ഉപഭോക്താക്കളുടെ കീശയിലാണ് സംഭവിക്കുക.
പ്രധാന പദങ്ങൾ
| പദം | അർത്ഥം |
|---|---|
| പൈപ്പ്ലൈൻ | ഓരോ മാറ്റത്തിലും പ്രവർത്തിക്കുന്ന ഘട്ടങ്ങളുടെ സ്വയംപ്രവർത്തിത ക്രമം. |
| ബിൽഡ് | സോഴ്സ് കോഡിനെ പ്രവർത്തിക്കാവുന്ന ഒന്നാക്കി മാറ്റൽ. |
| ഓട്ടോമേറ്റഡ് ടെസ്റ്റ് | മറ്റൊരു കോഡ് ചെയ്യേണ്ടത് ചെയ്യുന്നുണ്ടോ എന്ന് പരിശോധിക്കുന്ന കോഡ്. |
| പുൾ റിക്വസ്റ്റ് (PR) | ലയിപ്പിക്കുന്നതിന് മുമ്പ് മറ്റുള്ളവരും (പൈപ്പ്ലൈനും) അവലോകനം ചെയ്യുന്ന നിർദ്ദിഷ്ട മാറ്റം. GitHub എന്താണ് കാണുക. |
| ബ്രാഞ്ച് | പ്രധാന കോഡിനെ ബാധിക്കാതിരിക്കാൻ മാറ്റങ്ങളുടെ പ്രത്യേക നിര. |
| സ്റ്റേജിംഗ് | ഉപയോക്താക്കൾ കാണുന്നതിന് മുമ്പ് മാറ്റങ്ങൾ പരിശോധിക്കാൻ പ്രൊഡക്ഷനെ പ്രതിഫലിപ്പിക്കുന്ന നിങ്ങളുടെ ആപ്പിന്റെ സ്വകാര്യ കോപ്പി. |
| പ്രൊഡക്ഷൻ | നിങ്ങളുടെ ഉപയോക്താക്കൾ ഉപയോഗിക്കുന്ന ലൈവ് ആപ്പ്. |
| റോൾബാക്ക് | റിലീസ് തെറ്റിയാൽ മുമ്പത്തെ പ്രവർത്തിക്കുന്ന പതിപ്പിലേക്ക് തിരികെ പോകൽ. |
| Green / red build | പൈപ്പ്ലൈൻ റൺ വിജയിച്ചത് / പരാജയപ്പെട്ടത്. |
സാധാരണ തെറ്റിദ്ധാരണകൾ
- “CI/CD എന്നാൽ എന്റെ ആപ്പ് ടെസ്റ്റ് ചെയ്യപ്പെടുന്നു എന്നാണ്.” നിങ്ങൾക്കുള്ള ടെസ്റ്റുകൾ മാത്രമേ പൈപ്പ്ലൈൻ പ്രവർത്തിപ്പിക്കൂ. ടെസ്റ്റുകൾ ഇല്ലെങ്കിൽ, CI തെളിയിക്കുന്നത് ആപ്പ് ബിൽഡ് ആകുന്നു എന്നത് മാത്രമാണ്. ഏറ്റവും പ്രധാനപ്പെട്ട ഫ്ലോകൾക്കായി ടെസ്റ്റുകൾ എഴുതാൻ AI-യോട് ആവശ്യപ്പെടുക.
- “CI/CD വലിയ കമ്പനികൾക്ക് മാത്രമുള്ളതാണ്.” GitHub Actions പോലുള്ള ഹോസ്റ്റ് ചെയ്ത ടൂളുകൾ സെറ്റപ്പ് ചെയ്യാൻ ചെറിയ ഒരു കോൺഫിഗറേഷൻ ഫയൽ മതി, ചെറിയ ടീമുകൾ അവ സാധാരണയായി ഉപയോഗിക്കുന്നു. പരിശ്രമം വേണ്ടത് ടൂളിങ്ങിനല്ല, ടെസ്റ്റുകൾക്കാണ്.
- “ഓട്ടോമാറ്റിക് ഡിപ്ലോയ് എന്നാൽ ആരും ഒന്നും പരിശോധിക്കുന്നില്ല.” നല്ല പൈപ്പ്ലൈനുകൾ പരിശോധനകൾ ചേർക്കുന്നു, നീക്കം ചെയ്യുന്നില്ല. പല ടീമുകളും പ്രൊഡക്ഷന് മുമ്പ് മനുഷ്യ അംഗീകാര ഘട്ടം നിലനിർത്തുന്നു.
- “പൈപ്പ്ലൈൻ പച്ചയാണെങ്കിൽ ആപ്പ് പ്രവർത്തിക്കുന്നു.” അർത്ഥമാക്കുന്നത് ഓട്ടോമേറ്റഡ് പരിശോധനകൾ വിജയിച്ചു എന്നാണ്. മാറ്റം നിങ്ങൾ തന്നെ പരീക്ഷിക്കണം, കഴിയുമെങ്കിൽ പ്രിവ്യൂവിലോ സ്റ്റേജിംഗിലോ.
- “CI/CD ബാക്കപ്പുകൾക്ക് പകരമാണ്.” അല്ല. ടെസ്റ്റുകൾ കടക്കുന്ന മോശം ഡാറ്റാബേസ് മൈഗ്രേഷൻ യഥാർത്ഥ ഡാറ്റയെ ഇപ്പോഴും നശിപ്പിക്കാം. ബാക്കപ്പുകളും റോൾബാക്ക് ചെയ്യാനുള്ള മാർഗ്ഗവും സൂക്ഷിക്കുക.
നിങ്ങളുടെ AI ബിൽഡറോട് ചോദിക്കേണ്ടത്
- “സൈൻ-അപ്പ്, ലോഗിൻ, ചെക്ക്-ഔട്ട് എന്നിവയ്ക്കായി ഓട്ടോമേറ്റഡ് ടെസ്റ്റുകൾ എഴുതൂ, അവ എങ്ങനെ പ്രവർത്തിപ്പിക്കാം എന്ന് കാണിക്കൂ.”
- “ഓരോ പുൾ റിക്വസ്റ്റിലും ഡിപെൻഡൻസികൾ ഇൻസ്റ്റാൾ ചെയ്ത്, ആപ്പ് ബിൽഡ് ചെയ്ത്, ടെസ്റ്റുകൾ പ്രവർത്തിപ്പിക്കുന്ന ഒരു GitHub Actions വർക്ക്ഫ്ലോ സെറ്റ് ചെയ്യൂ.”
- “പൈപ്പ്ലൈനിൽ ഒരു ടൈപ്പ് ചെക്കും ലിന്ററും ചേർക്കൂ, പിശകുകളിൽ പരാജയപ്പെടുത്തൂ.”
- “പൈപ്പ്ലൈനിലെ ഓരോ ഘട്ടവും എന്ത് ചെയ്യുന്നു എന്ന് ലളിതമായ മലയാളത്തിൽ വിശദീകരിക്കൂ.”
- “ഒരു ഡിപ്ലോയ് പകുതിയിൽ പരാജയപ്പെട്ടാൽ എന്ത് സംഭവിക്കും? എങ്ങനെ റോൾബാക്ക് ചെയ്യും?”
- “റിപ്പോസിറ്ററിയിലോ പൈപ്പ്ലൈൻ ലോഗുകളിലോ സീക്രട്ടുകളൊന്നും കോഡ് ചെയ്യപ്പെടുകയോ പ്രിന്റ് ചെയ്യപ്പെടുകയോ ചെയ്യുന്നില്ലെന്ന് പരിശോധിക്കൂ.”
നിങ്ങളുടെ ആപ്പ് API കീകൾ ഉപയോഗിക്കുന്നെങ്കിൽ, പൈപ്പ്ലൈനിനും അവ വേണം — CI ടൂളിൽ എൻക്രിപ്റ്റ് ചെയ്ത സീക്രട്ടുകളായി, ഒരിക്കലും കോൺഫിഗറേഷൻ ഫയലിൽ അല്ല. എൻവയോൺമെന്റ് വേരിയബിളുകളും സീക്രട്ടുകളും കാണുക.
CI/CD-ഉം Mythex-ഉം
Mythex നിങ്ങൾക്കായി ഒരു CI പൈപ്പ്ലൈൻ പ്രവർത്തിപ്പിക്കുന്നില്ല, പക്ഷേ സമാനമായ ചില ആവശ്യങ്ങൾ സ്വന്തം രീതിയിൽ നിറവേറ്റുന്നു:
- ചെക്ക്പോയിന്റുകൾ. ഏജന്റിന്റെ ഓരോ വിജയകരമായ ടേണിന് ശേഷവും Mythex ഒരു git ചെക്ക്പോയിന്റ് സേവ് ചെയ്യുന്നു, മാറ്റം തെറ്റിയാൽ Revert to this point പ്രോജക്റ്റ് മുൻ അവസ്ഥയിലേക്ക് തിരികെ കൊണ്ടുപോകുന്നു. Chat കാണുക.
- App Testing.
/testഎന്ന് ടൈപ്പ് ചെയ്താൽ, ഏജന്റ് ഉപയോക്താവിനെപ്പോലെ നിങ്ങളുടെ ലൈവ് പ്രിവ്യൂവിൽ ക്ലിക്ക് ചെയ്ത്, തകർന്ന ഫ്ലോകൾ റിപ്പോർട്ട് ചെയ്യുന്നു — ഓരോ പ്രസിദ്ധീകരണത്തിനും മുമ്പ് ഉപയോഗപ്രദം. App Testing കാണുക. - പ്രസിദ്ധീകരണം ബോധപൂർവ്വമായ ഘട്ടമാണ്. മാറ്റങ്ങൾ ആദ്യം സ്വകാര്യ പ്രിവ്യൂവിൽ കാണിക്കുന്നു; നിങ്ങളുടെ പബ്ലിക് ആപ്പ് വീണ്ടും പ്രസിദ്ധീകരിക്കുമ്പോൾ മാത്രമേ അപ്ഡേറ്റ് ചെയ്യപ്പെടൂ — continuous deployment-നെക്കാൾ continuous delivery-ക്ക് അടുത്താണിത്.
- GitHub സിങ്ക് (Pro). പ്രോജക്റ്റ് ഒരു GitHub റിപ്പോസിറ്ററിയുമായി സിങ്ക് ചെയ്താൽ, ഓരോ push-ലും ടെസ്റ്റുകൾ പ്രവർത്തിപ്പിക്കാൻ സ്വന്തം GitHub Actions വർക്ക്ഫ്ലോകൾ ചേർക്കാം. GitHub and export കാണുക.
ലൈവ് ആകുന്നതിന് മുമ്പ് കൈകൊണ്ട് പരീക്ഷിക്കേണ്ടവയുടെ ചെക്ക്ലിസ്റ്റിന്, നിങ്ങളുടെ ആപ്പ് ലോഞ്ചിന് മുമ്പ് എങ്ങനെ പരീക്ഷിക്കാം കാണുക. വേർഷൻ കൺട്രോളുമായി പ്രവർത്തിക്കുന്നതിന്, AI നിർമ്മിത ആപ്പിനൊപ്പം Git എങ്ങനെ ഉപയോഗിക്കാം കാണുക.
ചോദ്യങ്ങൾ
CI/CD എന്നതിന്റെ പൂർണ്ണരൂപം എന്താണ്?
CI എന്നാൽ continuous integration: ഓരോ കോഡ് മാറ്റവും പതിവായി ലയിപ്പിച്ച്, സ്വയമേവ ബിൽഡ് ചെയ്ത് പരിശോധിക്കുന്നു. CD എന്നാൽ continuous delivery അല്ലെങ്കിൽ continuous deployment: പരിശോധന കടക്കുന്ന മാറ്റങ്ങൾ റിലീസിനായി സ്വയമേവ തയ്യാറാക്കുന്നു (delivery) അല്ലെങ്കിൽ മനുഷ്യ ഘട്ടമില്ലാതെ ഉപയോക്താക്കളിലേക്ക് റിലീസ് ചെയ്യുന്നു (deployment).
Continuous delivery-യും continuous deployment-ഉം തമ്മിലുള്ള വ്യത്യാസം എന്താണ്?
Continuous delivery-യിൽ പൈപ്പ്ലൈൻ കടക്കുന്ന ഓരോ മാറ്റവും റിലീസിന് തയ്യാറാണ്, പക്ഷേ എപ്പോൾ ലൈവ് ആക്കണമെന്ന് ഇപ്പോഴും ഒരാൾ തീരുമാനിക്കുന്നു. Continuous deployment-ൽ വിജയിക്കുന്ന ഓരോ മാറ്റവും മനുഷ്യ അംഗീകാര ഘട്ടമില്ലാതെ സ്വയമേവ ലൈവാകുന്നു.
AI ഉപയോഗിച്ച് നിർമ്മിച്ച ചെറിയ ആപ്പിന് CI/CD വേണോ?
ആദ്യ ദിവസം തന്നെ വേണ്ട. കുറച്ച് ഉപയോക്താക്കളുള്ള ചെറിയ ആപ്പിന് പ്രിവ്യൂവിൽ പരീക്ഷിച്ച് കൈകൊണ്ട് പ്രസിദ്ധീകരിച്ച് മുന്നോട്ട് പോകാം. പലർ കോഡ് മാറ്റാൻ തുടങ്ങുമ്പോഴോ യഥാർത്ഥ ഉപഭോക്താക്കൾ ആപ്പിനെ ആശ്രയിക്കുമ്പോഴോ മുമ്പ് പ്രവർത്തിച്ചിരുന്നത് പതിവായി തകർക്കാൻ തുടങ്ങുമ്പോഴോ CI/CD അതിന്റെ മൂല്യം തെളിയിക്കുന്നു.
CI/CD-ക്ക് ഏത് ടൂളുകളാണ് ഉപയോഗിക്കുന്നത്?
GitHub Actions, GitLab CI/CD, CircleCI, Jenkins എന്നിവയും ഹോസ്റ്റിംഗ് പ്ലാറ്റ്ഫോമുകളുടെ അന്തർനിർമ്മിത ഡിപ്ലോയ് പൈപ്പ്ലൈനുകളും സാധാരണമാണ്. കോഡ് മാറുമ്പോഴെല്ലാം ഘട്ടങ്ങളുടെ പട്ടിക സ്വയമേവ പ്രവർത്തിപ്പിക്കുക എന്ന ഒരേ അടിസ്ഥാന ജോലിയാണ് അവയെല്ലാം ചെയ്യുന്നത്.