அலகுகள்
1. DevOps மற்றும் Cloud AI அறிமுகம்: பாத்திரங்கள், எல்லைகள், அங்கீகாரம், பாதுகாப்பு மற்றும் இரகசியங்கள் 2. செயற்கை நுண்ணறிவுடன் CI/CD பைப்லைன்களை வடிவமைத்தல்: GitHub செயல்கள் மற்றும் GitLab CI 3. உள்கட்டமைப்பை குறியீடாக நிர்வகித்தல்: டெர்ராஃபார்ம் மற்றும் IaC உடன் செயற்கை நுண்ணறிவு 4. கண்டெய்னரைசேஷன்: செயற்கை நுண்ணறிவுடன் கூடிய டாக்கர்ஃபைல் மற்றும் இமேஜ் ஆப்டிமைசேஷன் 5. குபெர்னெட்ஸ்: மேனிஃபெஸ்ட், ஹெல்ம் மற்றும் AI-பவர்டு ஆர்கெஸ்ட்ரேஷன் 6. கண்காணிப்பு மற்றும் கவனிப்பு: மெட்ரிக், பதிவு, ட்ரேஸ் மற்றும் அலாரம் விதிகள் 7. சம்பவ மேலாண்மை மற்றும் பிரேத பரிசோதனை: செயற்கை நுண்ணறிவுடன் மூல காரண பகுப்பாய்வு 8. கிளவுட் காஸ்ட் ஆப்டிமைசேஷன் (FinOps): செயற்கை நுண்ணறிவு மூலம் கழிவுகளை வேட்டையாடுதல் 9. ஸ்கிரிப்ட் மற்றும் ஆட்டோமேஷன் உருவாக்கம்: பாஷ், பைதான் மற்றும் பவர்ஷெல் 10. பாதுகாப்பு மற்றும் இரகசிய மேலாண்மை: DevSecOps மற்றும் செயற்கை நுண்ணறிவு 11. தயாரிப்பு சரிபார்ப்பு, வெளியீட்டு உத்திகள் மற்றும் முடிவில் இருந்து இறுதி AI பணிப்பாய்வு
அலகு 2 / 11

செயற்கை நுண்ணறிவுடன் CI/CD பைப்லைன்களை வடிவமைத்தல்: GitHub செயல்கள் மற்றும் GitLab CI

ஆதாயங்கள்:

  • CI/CD கான்செப்ட், பைப்லைன் உடற்கூறியல் (தூண்டுதல், வேலை, படி, ரன்னர், கலைப்பொருள்) மற்றும் GitHub செயல்கள் மற்றும் GitLab CI ஆகியவற்றுக்கு இடையேயான வேறுபாடுகளைப் புரிந்துகொள்வதற்கான திறன் மற்றும் செயற்கை நுண்ணறிவு சரியான சூழலுடன் பைப்லைன்களை உருவாக்குகிறது.
  • செயற்கை நுண்ணறிவால் தயாரிக்கப்பட்ட பைப்லைனில் இரகசிய குறிப்புகள், அனுமதிகள் மற்றும் அழைக்கப்படும் கூறுகளின் இருப்பை சரிபார்த்து பாதுகாக்கும் திறன்
  • எளிய உரையில் ரகசியங்களை எழுதக்கூடாது, குறைந்தபட்ச அங்கீகாரத்தை வழங்குதல் மற்றும் CI இலிருந்து பிரிப்பதன் மூலம் வரிசைப்படுத்தலைக் கட்டுப்படுத்துதல் போன்ற கொள்கைகளைப் பயன்படுத்துவதற்கான திறன்

நவீன மென்பொருளின் இதயம் தானியங்கு பைப்லைன் ஆகும், இதன் மூலம் ஒரு டெவலப்பரின் கணினியிலிருந்து குறியீடு வாடிக்கையாளரை பாதுகாப்பாக சென்றடையும் வரை இருக்கும். இந்த குழாய் CI/CD என்று அழைக்கப்படுகிறது. CI (தொடர்ச்சியான ஒருங்கிணைப்பு) என்பது ஒவ்வொரு குறியீடு மாற்றத்தின் தானியங்கி தொகுப்பு மற்றும் சோதனை ஆகும்; டெவலப்பர் விசைப்பலகையை விட்டு வெளியேறுவதற்கு முன்பே ஒரு பிழையைப் பிடிப்பதே இதன் நோக்கம். CD (தொடர்ச்சியான விநியோகம்/பயன்பாடு) என்பது சோதனை செய்யப்பட்ட குறியீட்டின் தானியங்கு தயாரிப்பு அல்லது வெளியீடு ஆகும். CI/CD பைப்லைன் என்பது இந்த படிநிலைகளை வரிசையாக வரையறுக்கும் ஒரு உள்ளமைவு கோப்பாகும் - பொதுவாக YAML இல் எழுதப்படும் (மனிதர்கள் படிக்கக்கூடிய கட்டமைப்பு உரை வடிவம்).

இந்த YAML கோப்புகளை கையால் எழுதுவது கடினமானது, வாய்மொழியானது மற்றும் பிழைகள் ஏற்படக்கூடியது; உள்தள்ளல் ஒரு இடைவெளியில் நழுவினால், முழு குழாய் உடைந்துவிடும். இங்குதான் AI வருகிறது: சரியான சூழலுடன், இது ஒரு வேலை வரைவை நொடிகளில் உருவாக்குகிறது. ஆனால் உருவாக்கப்படும் ஒவ்வொரு படியும் என்ன செய்கிறது என்பதைப் புரிந்துகொண்டு சரிபார்ப்பது உங்கள் வேலை - ஏனெனில் இது உங்கள் குறியீட்டைக் கொண்டு செல்லும் குழாய்.

சிஐ/சிடி பைப்லைனின் உடற்கூறியல்

ஒவ்வொரு பைப்லைனும் பல அடிப்படைக் கருத்துகளைக் கொண்டுள்ளது. இவற்றை அறியாமல் AI வெளியீட்டைக் கட்டுப்படுத்த முடியாது:

  • தூண்டுதல்: பைப்லைனைத் தொடங்குவது எது? வழக்கமாக ஒரு கிளைக்கு தள்ளுதல், இழுத்தல் கோரிக்கை (ஒன்றாக்க கோரிக்கை) அல்லது அட்டவணை.
  • வேலை: தொடர்ச்சியான படிகளை செயல்படுத்தும் தருக்க அலகு; உதாரணமாக "சோதனை", "உருவாக்கம்", "வரிசைப்படுத்து".
  • படி: ஒரு வேலையில் ஒரே கட்டளை அல்லது செயல்.
  • ரன்னர்: வேலைகள் இயங்கும் மெய்நிகர் இயந்திரம் அல்லது கொள்கலன்.
  • கலைப்பொருள்: ஒரு வேலையால் உருவாக்கப்பட்ட மற்றும் அடுத்தடுத்த வேலைகளால் பயன்படுத்தப்படும் வெளியீடு (உதாரணமாக, தொகுக்கப்பட்ட கோப்பு).
  • ரகசியம்: பைப்லைன் பயன்படுத்தும் ரகசிய தகவல் ஆனால் களஞ்சியத்தில் எளிய உரையில் இருக்கக்கூடாது.

GitHub செயல்கள் இந்த வரையறையை .github/workflows/*.yml கோப்புகளில் வைத்திருக்கிறது; அலகு பணிப்பாய்வு → வேலை → படி படிநிலை. GitLab CI, மறுபுறம், .gitlab-ci.yml கோப்பில் நிலை → வேலை அமைப்பைப் பயன்படுத்துகிறது. AI இரண்டு தொடரியல்களையும் அறிந்திருக்கிறது, ஆனால் உங்களுக்கு எது வேண்டும் என்பதை நீங்கள் வெளிப்படையாகச் சொல்ல வேண்டும்.

உதவிக்குறிப்பு: பைப்லைன்களுக்காக AI ஐக் கேட்கும்போது, ​​எப்போதும் குறிப்பிடவும்: இயங்குதளம் (GitHub செயல்கள் அல்லது GitLab CI), மொழி/கட்டமைப்பு (நோட், .NET, பைதான்...), தூண்டுதல் மற்றும் அது பயன்படுத்தப்படுமா. இந்த நான்கு தகவல்களும் வெளியீட்டின் பயனை இரட்டிப்பாக்குகின்றன.

படிப்படியாக: AI உடன் பைப்லைனை வடிவமைத்தல்

  1. இலக்கை தெளிவுபடுத்துங்கள். "புஷ் டு மெயின் மீது சோதனைகளை இயக்கவும், படத்தை உருவாக்கவும், ஆனால் டேக் எறியப்படும் போது மட்டும் பயன்படுத்தவும்".
  2. எலும்புக்கூட்டை உருவாக்குங்கள். அடிப்படை பணிப்பாய்வுக்கு AIயிடம் கேளுங்கள்.
  3. படிகளைப் படித்து புரிந்து கொள்ளுங்கள். ஒவ்வொரு ரன் மற்றும் யூஸ் லைன் என்ன செய்கிறது என்பதை சரிபார்க்கவும்.
  4. இரகசிய குறிப்புகளை சரிபார்க்கவும். இரகசியங்கள் ${{ இரகசியங்கள்.NAME }} உடன் அழைக்கப்படுகின்றனவா அல்லது அவை குறியீட்டில் உட்பொதிக்கப்பட்டதா?
  5. உள்ளூரில்/CI இல் முயற்சிக்கவும். அதை ஒரு சிறிய சோதனை களஞ்சியத்தில் இயக்கவும், சிவப்பு-பச்சை (ஃபெயில்-பாஸ்) நடத்தையைப் பார்க்கவும்.
  6. படிப்படியாக விரிவாக்குங்கள். முதலில் CI (சோதனை) சேர்க்கவும், பின்னர் உருவாக்கவும், கடைசியாக வரிசைப்படுத்தவும்.

பாதுகாப்பு: பைப்லைனில் ரகசியம் மற்றும் அனுமதி

CI/CD என்பது ரகசியங்கள் அதிகம் கசியும் இடங்களில் ஒன்றாகும். மூன்று தங்க விதிகள்:

  1. YAML இல் இரகசியங்களை எளிய உரையில் எழுத வேண்டாம். இயங்குதளத்தின் ரகசிய களஞ்சியத்தை (GitHub சீக்ரெட்ஸ், GitLab CI/CD மாறிகள்) பயன்படுத்தி ${{ secrets.X }} உடன் அழைக்கவும்.
  2. குறைந்த சலுகை. பைப்லைனுக்கு நீங்கள் கொடுக்கும் டோக்கனுக்கு தேவையான அளவு மட்டுமே அதிகாரம் இருக்கும். அனுமதிகள் மூலம் இதை சுருக்கவும்: GitHub செயல்களில் தடுக்கவும்.
  3. பதிவில் ரகசியத்தை அழுத்த வேண்டாம். எதிரொலி $TOKEN போன்ற கோடுகள் பதிவில் உள்ள ரகசியத்தை வெளிப்படுத்துகின்றன. பிளாட்ஃபார்ம்கள் மாஸ்க், ஆனால் கவனமாக இருக்கவும்.
எச்சரிக்கை: வசதிக்காக, AI சில நேரங்களில் கடவுச்சொல் போன்ற உட்பொதிக்கப்பட்ட மதிப்புகளை வைக்கிறது: 123456 அல்லது மிகையான பரந்த அனுமதிகள்: எல்லாவற்றையும் மாதிரி பைப்லைன்களில் எழுதுங்கள். இதை எப்போதும் சரிசெய்யவும்: ரகசியத்தை குறிப்புக்கு மாற்றவும், அனுமதியை சுருக்கவும்.

ஒப்பீட்டு விளக்கப்படம்

கருத்து

GitHub செயல்கள்

கிட்லேப் சிஐ

கட்டமைப்பு கோப்பு

.github/workflows/*.yml

.gitlab-ci.yml

கட்டிட அலகு

பணிப்பாய்வு → வேலை → படி

நிலை → வேலை

தூண்டுதல்

பத்து:

விதிகள்: / மட்டும்:

இரகசியத்தை அழைக்கவும்

${{ இரகசியங்கள்.NAME }}

$NAME (CI/CD மாறிகள்)

தயார் கூறு

பயன்படுத்துகிறது: action@v4

அடங்கும்: /டெம்ப்ளேட்

ஓடுபவர்

ரன்-ஆன்:

குறிச்சொற்கள்:

மூன்று சிறிய வழக்குகள்

வழக்கு 1 - 6 மணிநேரம் மற்றும் 40 நிமிடங்களாக குறைக்கப்பட்டது. ஒரு குழு அவர்களின் கையேடு சோதனை-கட்டமைத்தல்-வரிசைப்படுத்தல் செயல்முறையை தானியக்கமாக்க விரும்பியது, ஆனால் YAML பற்றி யாருக்கும் தெரிந்திருக்கவில்லை. அவர்கள் YZ ஐ "Node.js திட்டம், GitHub செயல்கள், npm சோதனை மற்றும் npm பில்ட் இன் புஷ் டு மெயின், v* டேக்கில் மட்டும் பயன்படுத்துதல்" என்று விவரித்தார்கள். AI 40 கோடுகள் கொண்ட வேலை செய்யும் எலும்புக்கூட்டை உருவாக்கியது; குழு ஒவ்வொரு அடியையும் சரிபார்த்து 40 நிமிடங்களில் நேரலைக்கு வந்தது. கையால் எழுதியிருந்தால் அது ஒரு நாள் வேலையாக இருந்திருக்கும்.

வழக்கு 2 - அங்கீகரிப்பு ஒரு பாதுகாப்புப் பாதிப்பைக் கண்டது. ஒரு பொறியாளர் AI யிடம் பணிப்பாய்வுகளை வரிசைப்படுத்துமாறு கேட்டார். வெளியீட்டில் அனுமதிகள் அடங்கும்: எழுது-அனைத்து — அதாவது டோக்கன் களஞ்சியம், தொகுப்புகள், எல்லாவற்றுக்கும் எழுதலாம். பொறியாளர் இதைக் கவனித்து, அனுமதிகளுடன் சுருக்கினார்: { உள்ளடக்கங்கள்: படிக்கவும், தொகுப்புகள்: எழுதவும் }. இது முழு களஞ்சியத்தையும் மாற்றியமைக்கப்படும் கடத்தப்பட்ட சார்பு அபாயத்தை நீக்கியது.

வழக்கு 3 - மாயத்தோற்றம். ஒரு குழு AI-பரிந்துரைக்கப்பட்ட பயன்பாடுகளை இயக்கியது: actions/deploy-to-aws@v3 வரி; அத்தகைய அதிகாரப்பூர்வ நடவடிக்கை எதுவும் இல்லை, AI பெயரை உருவாக்கியது. "நடவடிக்கை கிடைக்கவில்லை" என்று பைப்லைன் வெடித்தது. பாடம்: மார்க்கெட்பிளேஸில் ஒவ்வொரு கூறுகளும் பயன்படுத்தப்படுகின்றன என்பதைச் சரிபார்க்கவும்: உண்மையில் உள்ளது.

நகலெடுக்கக்கூடிய நான்கு வார்ப்புருக்கள்

1) அடிப்படை CI பணிப்பாய்வு:

GitHub செயல்களுக்கான CI பணிப்பாய்வுகளை எழுதவும். திட்டம்: [மொழி/கட்டமைப்பு]. தூண்டுதல்: முக்கிய கிளைக்கு கோரிக்கையை அழுத்தி இழுக்கவும். படிகள்: சார்புகளை நிறுவவும், சோதனைகளை இயக்கவும், லின்ட்டை இயக்கவும். NO Deploy.Runner ubuntu-latest. ரகசியம் தேவையில்லை. குறிப்பு YAML.

2) பயன்படுத்தப்பட்ட சிடி பணிப்பாய்வு (பாதுகாப்பானது):

[பிளாட்ஃபார்ம்]க்கான வரிசைப்படுத்தல் பணிப்பாய்வுகளை எழுதவும். இது 'v*' குறிச்சொல்லில் மட்டுமே வேலை செய்ய வேண்டும். இலக்கு: [MEDIA/CLOUD]. விதிகள்: - இரகசியங்களை எளிய உரையில் எழுத வேண்டாம், ${{ இரகசியங்களுடன் அவற்றை அழைக்கவும்.

3) தற்போதுள்ள பைப்லைனை விவரிக்கவும்:

பின்வரும் [பிளாட்ஃபார்ம்] பைப்லைனை வரிக்கு வரியாக விவரிக்கவும்: ஒவ்வொரு வேலையும் என்ன செய்கிறது, எந்த வரிசையில் இயங்குகிறது, என்ன ரகசியத்தைப் பயன்படுத்துகிறது மற்றும் அதன் இரண்டு ஆபத்தான புள்ளிகள் என்ன? இறுதியாக, 3 மேம்பாடுகளைப் பரிந்துரைக்கவும். பைப்லைன்: [YAML உள்ளடக்கம்]

4) பைப்லைனை விரைவுபடுத்துதல்:

பின்வரும் CI பைப்லைன் மெதுவாக இயங்குகிறது (காலம்: [X நிமிடம்]). கேச் பயன்பாடு, இணையான வேலைகள் மற்றும் தேவையற்ற படிகள் ஆகியவற்றை ஆராயுங்கள். 5 உறுதியான, செயல்படக்கூடிய முடுக்கம் பரிந்துரைகளை வழங்கவும் மற்றும் ஒவ்வொன்றின் மதிப்பிடப்பட்ட தாக்கத்தை எழுதவும். பைப்லைன்: [YAML]

பலவீனமான வரியில் / வலுவான வரியில்

பலவீனமானது: "GitHub செயல்களின் பணிப்பாய்வுகளை எழுது."

முடிவு: எந்த மொழி, எது தூண்டுகிறது, வரிசைப்படுத்தல் உள்ளதா என்பது தெளிவாக இல்லை; AI ஒரு பொதுவான நோட் நிகழ்வை வழங்குகிறது, ஒருவேளை உங்கள் திட்டத்திற்கு பொருந்தாது, மேலும் ரகசியத்தை கடின குறியீடு செய்யலாம்.

வலிமையானது: "GitHub செயல்களின் பணிப்பாய்வுகளை எழுதுங்கள். Python 3.12 திட்டம், இழுக்கும் கோரிக்கை மற்றும் முக்கிய புஷ் ஆகியவற்றில் pytest + ruff ஐ இயக்கவும்; வரிசைப்படுத்த வேண்டாம்; பிப் கேச் மூலம் சார்புகளை விரைவுபடுத்தவும்; இரகசியங்கள் தேவையில்லை. கருத்துகளுடன் YAML ஐ ஏற்றுமதி செய்யவும்."

வேறுபாடு: இரண்டாவது வரியில் மொழி, தூண்டுதல், நோக்கம் (வரிசைப்படுத்தல் இல்லை), செயல்திறன் எதிர்பார்ப்பு மற்றும் பாதுகாப்பு கட்டுப்பாடு ஆகியவற்றை வழங்குகிறது. வெளியீடு நேரடியாக வேலை செய்கிறது.

பொதுவான தவறுகள்

  • YAML இல் இரகசியத்தை உட்பொதித்தல். எளிய உரை கடவுச்சொல்/டோக்கன் மிகவும் பொதுவான CI பாதிப்பு ஆகும்.
  • மிகவும் பரந்த அனுமதி. அனைத்தையும் எழுதுவதற்குப் பதிலாக தேவையான குறைந்தபட்ச அனுமதியைக் கொடுங்கள்.
  • இல்லாத செயல்/டெம்ப்ளேட்டை நம்பி. AI-உருவாக்கப்பட்ட பயன்பாடுகளைச் சரிபார்க்கவும்: சந்தைப் பகுதியில் உள்ள வரிகள்.
  • CI உடன் குழப்பமான வரிசைப்படுத்தல். சோதனை ஒவ்வொரு அழுத்தத்திலும் இயங்க முடியும், ஆனால் வரிசைப்படுத்தல் கட்டுப்படுத்தப்பட்டு அங்கீகரிக்கப்பட வேண்டும்.
  • தற்காலிக சேமிப்பைப் பயன்படுத்துவதில்லை. ஒவ்வொரு ஓட்டத்திலும் புதிதாக சார்புகளை நிறுவுவது பைப்லைனை நிமிடங்களுக்கு குறைக்கிறது.
  • முதன்மைக் களஞ்சியத்தில் நேரடியாக முதல் பணிப்பாய்வு முயற்சி. அதை முதலில் ஒரு சோதனை களஞ்சியத்தில் இயக்கவும்.

சுருக்கமாக

CI/CD பைப்லைன்கள் தானியங்கு குழாய்கள் ஆகும், அவை குறியீட்டை பாதுகாப்பாக தயாரிப்புக்கு நகர்த்துகின்றன மற்றும் YAML உடன் வரையறுக்கப்படுகின்றன. AI ஆனது GitHub Actions மற்றும் GitLab CI ஆகியவற்றிற்கான வேலை வரைபடங்களை விரைவாக உருவாக்குகிறது - ஆனால் நீங்கள் இயங்குதளம், மொழி, தூண்டுதல் மற்றும் வரிசைப்படுத்தல் நோக்கம் பற்றி தெளிவாக இருக்க வேண்டும். பாதுகாப்பில் மூன்று விதிகள் உள்ளன: குறிப்பு மூலம் ரகசியங்களை அழைக்கவும், குறைந்தபட்ச சலுகைகளை வழங்கவும், பதிவில் ரகசியங்களை அச்சிட வேண்டாம். ஒவ்வொன்றும் பயன்படுத்துகிறது:/உள்ளடக்கம்: கூறு உண்மையில் உள்ளது மற்றும் ஒவ்வொரு அடியும் என்ன செய்கிறது என்பதை சரிபார்க்க வேண்டியது உங்கள் பொறுப்பு.

விண்ணப்ப பணி

எளிய மாதிரித் திட்டத்தைத் தேர்வுசெய்யவும் (உங்கள் மொழியில் "ஹலோ வேர்ல்ட்" கூட செய்யும்). மேலே உள்ள "அடிப்படை CI பணிப்பாய்வு" டெம்ப்ளேட்டுடன் AI ஒரு பணிப்பாய்வு உருவாக்க வேண்டும். பின்னர்: (1) ஒவ்வொரு அடியும் என்ன செய்கிறது என்பதை உங்கள் சொந்த வார்த்தைகளில் எழுதுங்கள்; (2) எந்த ரகசியங்களும் உட்பொதிக்கப்படவில்லை மற்றும் அனுமதிகள் குறுகியவை என்பதை சரிபார்க்கவும்; (3) முடிந்தால், அதை ஒரு சோதனை தொட்டியில் இயக்கவும் மற்றும் சிவப்பு-பச்சை நடத்தையை கவனிக்கவும்.

சரிபார்ப்பு பட்டியல்

  • [ ] தளம், மொழி/கட்டமைப்பு, தூண்டுதல் மற்றும் வரிசைப்படுத்தல் ஸ்கோப் ஆகியவற்றை எனது வரியில் சேர்த்துள்ளேன்.
  • [ ] உருவாக்கப்பட்ட YAML இல் ஒவ்வொரு வேலையும் படியும் என்ன செய்கிறது என்பதை நான் புரிந்துகொள்கிறேன்.
  • [ ] எந்த ரகசியமும் எளிய உரை அல்ல; அனைத்து ${{ இரகசியங்கள்.X }} / CI மாறி.
  • [ ] நான் அனுமதிகளை குறைந்தபட்ச அதிகாரத்திற்குக் குறைத்தேன்.
  • [ ] செயல்கள்/டெம்ப்ளேட்கள் என்று அழைக்கப்படும் அனைத்தும் உண்மையில் உள்ளனவா என்பதைச் சரிபார்த்தேன்.
  • [ ] நான் வரிசைப்படுத்தல் படியை ஒப்புதல்/பாதுகாப்புடன் கட்டுப்படுத்தினேன்.