ಘಟಕಗಳು
1. DevOps ಮತ್ತು Cloud AI ಗೆ ಪರಿಚಯ: ಪಾತ್ರಗಳು, ಗಡಿಗಳು, ದೃಢೀಕರಣ, ಭದ್ರತೆ ಮತ್ತು ರಹಸ್ಯಗಳು 2. ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಯೊಂದಿಗೆ CI/CD ಪೈಪ್‌ಲೈನ್‌ಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸುವುದು: GitHub ಕ್ರಿಯೆಗಳು ಮತ್ತು GitLab CI 3. ಮೂಲಸೌಕರ್ಯವನ್ನು ಕೋಡ್ ಆಗಿ ನಿರ್ವಹಿಸುವುದು: ಟೆರಾಫಾರ್ಮ್ ಮತ್ತು IaC ಜೊತೆಗೆ ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆ 4. ಕಂಟೈನರೈಸೇಶನ್: ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಯೊಂದಿಗೆ ಡಾಕರ್‌ಫೈಲ್ ಮತ್ತು ಇಮೇಜ್ ಆಪ್ಟಿಮೈಸೇಶನ್ 5. ಕುಬರ್ನೆಟ್ಸ್: ಮ್ಯಾನಿಫೆಸ್ಟ್, ಹೆಲ್ಮ್ ಮತ್ತು AI-ಚಾಲಿತ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್ 6. ಮಾನಿಟರಿಂಗ್ ಮತ್ತು ವೀಕ್ಷಣೆ: ಮೆಟ್ರಿಕ್, ಲಾಗ್, ಟ್ರೇಸ್ ಮತ್ತು ಅಲಾರ್ಮ್ ನಿಯಮಗಳು 7. ಘಟನೆ ನಿರ್ವಹಣೆ ಮತ್ತು ಮರಣೋತ್ತರ ಪರೀಕ್ಷೆ: ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಯೊಂದಿಗೆ ಮೂಲ ಕಾರಣ ವಿಶ್ಲೇಷಣೆ 8. ಕ್ಲೌಡ್ ಕಾಸ್ಟ್ ಆಪ್ಟಿಮೈಸೇಶನ್ (ಫಿನ್ಆಪ್ಸ್): ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಯೊಂದಿಗೆ ತ್ಯಾಜ್ಯಕ್ಕಾಗಿ ಬೇಟೆಯಾಡುವುದು 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 ಬರುತ್ತದೆ: ಸರಿಯಾದ ಸಂದರ್ಭದೊಂದಿಗೆ, ಇದು ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಕೆಲಸದ ಡ್ರಾಫ್ಟ್ ಅನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ. ಆದರೆ ಪ್ರತಿ ರಚಿಸಲಾದ ಹಂತವು ಏನು ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಮತ್ತು ಪರಿಶೀಲಿಸುವುದು ನಿಮ್ಮ ಕೆಲಸವಾಗಿದೆ - ಏಕೆಂದರೆ ಇದು ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಉತ್ಪನ್ನಕ್ಕೆ ಸಾಗಿಸುವ ಪೈಪ್ ಆಗಿದೆ.

CI/CD ಪೈಪ್‌ಲೈನ್‌ನ ಅಂಗರಚನಾಶಾಸ್ತ್ರ

ಪ್ರತಿಯೊಂದು ಪೈಪ್ಲೈನ್ ಹಲವಾರು ಮೂಲಭೂತ ಪರಿಕಲ್ಪನೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಇವುಗಳನ್ನು ತಿಳಿಯದೆ ನೀವು AI ಔಟ್‌ಪುಟ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ:

  • ಟ್ರಿಗ್ಗರ್: ಪೈಪ್ಲೈನ್ ಅನ್ನು ಏನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ? ಸಾಮಾನ್ಯವಾಗಿ ಶಾಖೆಗೆ ಪುಶ್, ಪುಲ್ ವಿನಂತಿ (ವಿಲೀನ ವಿನಂತಿ), ಅಥವಾ ವೇಳಾಪಟ್ಟಿ.
  • ಕೆಲಸ: ಹಂತಗಳ ಸರಣಿಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ತಾರ್ಕಿಕ ಘಟಕ; ಉದಾಹರಣೆಗೆ "ಪರೀಕ್ಷೆ", "ನಿರ್ಮಾಣ", "ನಿಯೋಜನೆ".
  • ಹಂತ: ಕೆಲಸದೊಳಗೆ ಒಂದೇ ಆಜ್ಞೆ ಅಥವಾ ಕ್ರಿಯೆ.
  • ರನ್ನರ್: ವರ್ಚುವಲ್ ಯಂತ್ರ ಅಥವಾ ಧಾರಕದಲ್ಲಿ ಕೆಲಸಗಳು ನಡೆಯುತ್ತವೆ.
  • ಕಲಾಕೃತಿ: ಒಂದು ಕೆಲಸದಿಂದ ಉತ್ಪತ್ತಿಯಾಗುವ ಮತ್ತು ನಂತರದ ಕೆಲಸಗಳಿಂದ ಬಳಸಲಾಗುವ ಔಟ್‌ಪುಟ್ (ಉದಾಹರಣೆಗೆ, ಸಂಕಲಿಸಿದ ಫೈಲ್).
  • ರಹಸ್ಯ: ಪೈಪ್‌ಲೈನ್ ಬಳಸುವ ಗೌಪ್ಯ ಮಾಹಿತಿ ಆದರೆ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಸರಳ ಪಠ್ಯದಲ್ಲಿ ಉಳಿಯಬಾರದು.

GitHub ಕ್ರಿಯೆಗಳು ಈ ವ್ಯಾಖ್ಯಾನವನ್ನು .github/workflows/*.yml ಫೈಲ್‌ಗಳಲ್ಲಿ ಇರಿಸುತ್ತದೆ; ಘಟಕವು ಕೆಲಸದ ಹರಿವು → ಕೆಲಸ → ಹಂತದ ಕ್ರಮಾನುಗತವಾಗಿದೆ. GitLab CI, ಮತ್ತೊಂದೆಡೆ, .gitlab-ci.yml ಫೈಲ್‌ನಲ್ಲಿ ಹಂತ → ಕೆಲಸದ ರಚನೆಯನ್ನು ಬಳಸುತ್ತದೆ. AI ಎರಡೂ ಸಿಂಟ್ಯಾಕ್ಸ್‌ಗಳನ್ನು ತಿಳಿದಿದೆ, ಆದರೆ ನಿಮಗೆ ಯಾವುದು ಬೇಕು ಎಂದು ನೀವು ಸ್ಪಷ್ಟವಾಗಿ ಹೇಳಬೇಕು.

ಸಲಹೆ: ಪೈಪ್‌ಲೈನ್‌ಗಳಿಗಾಗಿ AI ಅನ್ನು ಕೇಳುವಾಗ, ಯಾವಾಗಲೂ ನಿರ್ದಿಷ್ಟಪಡಿಸಿ: ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ (GitHub ಕ್ರಿಯೆಗಳು ಅಥವಾ GitLab CI), ಭಾಷೆ/ಫ್ರೇಮ್‌ವರ್ಕ್ (ನೋಡ್, .NET, ಪೈಥಾನ್...), ಟ್ರಿಗ್ಗರ್, ಮತ್ತು ಅದನ್ನು ನಿಯೋಜಿಸಲಾಗುವುದು. ಈ ನಾಲ್ಕು ಮಾಹಿತಿಯ ತುಣುಕುಗಳು ಔಟ್‌ಪುಟ್‌ನ ಉಪಯುಕ್ತತೆಯನ್ನು ದ್ವಿಗುಣಗೊಳಿಸುತ್ತದೆ.

ಹಂತ ಹಂತವಾಗಿ: AI ನೊಂದಿಗೆ ಪೈಪ್ಲೈನ್ ಅನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸುವುದು

  1. ಗುರಿಯನ್ನು ಸ್ಪಷ್ಟಪಡಿಸಿ. "ಮುಖ್ಯಕ್ಕೆ ಪುಶ್‌ನಲ್ಲಿ ಪರೀಕ್ಷೆಗಳನ್ನು ರನ್ ಮಾಡಿ, ಚಿತ್ರವನ್ನು ನಿರ್ಮಿಸಿ, ಆದರೆ ಟ್ಯಾಗ್ ಎಸೆದಾಗ ಮಾತ್ರ ನಿಯೋಜಿಸಿ".
  2. ಅಸ್ಥಿಪಂಜರವನ್ನು ಉತ್ಪಾದಿಸಿ. ಮೂಲಭೂತ ಕೆಲಸದ ಹರಿವುಗಾಗಿ AI ಅನ್ನು ಕೇಳಿ.
  3. ಹಂತಗಳನ್ನು ಓದಿ ಮತ್ತು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ. ಪ್ರತಿ ರನ್ ಮತ್ತು ಬಳಕೆಯ ಸಾಲು ಏನು ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸಿ.
  4. ರಹಸ್ಯ ಉಲ್ಲೇಖಗಳನ್ನು ಪರಿಶೀಲಿಸಿ. ರಹಸ್ಯಗಳನ್ನು ${{ secrets.NAME }} ನೊಂದಿಗೆ ಕರೆಯಲಾಗಿದೆಯೇ ಅಥವಾ ಅವುಗಳನ್ನು ಕೋಡ್‌ನಲ್ಲಿ ಎಂಬೆಡ್ ಮಾಡಲಾಗಿದೆಯೇ?
  5. ಇದನ್ನು ಸ್ಥಳೀಯವಾಗಿ/CI ಪ್ರಯತ್ನಿಸಿ. ಸಣ್ಣ ಪರೀಕ್ಷಾ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಅದನ್ನು ರನ್ ಮಾಡಿ, ಕೆಂಪು-ಹಸಿರು (ಫೇಲ್-ಪಾಸ್) ನಡವಳಿಕೆಯನ್ನು ನೋಡಿ.
  6. ಕ್ರಮೇಣ ವಿಸ್ತರಿಸಿ. ಮೊದಲು ಕೇವಲ CI (ಪರೀಕ್ಷೆ) ಸೇರಿಸಿ, ನಂತರ ನಿರ್ಮಿಸಿ, ಕೊನೆಯದಾಗಿ ನಿಯೋಜನೆ ಸೇರಿಸಿ.

ಭದ್ರತೆ: ಪೈಪ್ಲೈನ್ನಲ್ಲಿ ರಹಸ್ಯ ಮತ್ತು ಅನುಮತಿ

ರಹಸ್ಯಗಳು ಹೆಚ್ಚು ಸೋರಿಕೆಯಾಗುವ ಸ್ಥಳಗಳಲ್ಲಿ CI/CD ಒಂದಾಗಿದೆ. ಮೂರು ಸುವರ್ಣ ನಿಯಮಗಳು:

  1. YAML ನಲ್ಲಿ ಸರಳ ಪಠ್ಯದಲ್ಲಿ ರಹಸ್ಯಗಳನ್ನು ಎಂದಿಗೂ ಬರೆಯಬೇಡಿ. ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನ ರಹಸ್ಯ ರೆಪೊಸಿಟರಿಯನ್ನು ಬಳಸಿ (GitHub ಸೀಕ್ರೆಟ್ಸ್, GitLab CI/CD ವೇರಿಯೇಬಲ್ಸ್) ಮತ್ತು ಅದನ್ನು ${{ secrets.X }} ನೊಂದಿಗೆ ಕರೆ ಮಾಡಿ.
  2. ಕನಿಷ್ಠ ಸವಲತ್ತು. ಪೈಪ್‌ಲೈನ್‌ಗೆ ನೀವು ನೀಡುವ ಟೋಕನ್ ಅಗತ್ಯವಿರುವಷ್ಟು ಅಧಿಕಾರವನ್ನು ಮಾತ್ರ ಹೊಂದಿರುತ್ತದೆ. ಅನುಮತಿಗಳೊಂದಿಗೆ ಇದನ್ನು ಸಂಕುಚಿತಗೊಳಿಸಿ: GitHub ಕ್ರಿಯೆಗಳಲ್ಲಿ ನಿರ್ಬಂಧಿಸಿ.
  3. ಲಾಗ್‌ನಲ್ಲಿ ರಹಸ್ಯವನ್ನು ಒತ್ತಬೇಡಿ. ಪ್ರತಿಧ್ವನಿ $TOKEN ನಂತಹ ಸಾಲುಗಳು ಲಾಗ್‌ನಲ್ಲಿರುವ ರಹಸ್ಯವನ್ನು ಬಹಿರಂಗಪಡಿಸುತ್ತವೆ. ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳು ಮಾಸ್ಕ್, ಆದರೆ ಜಾಗರೂಕರಾಗಿರಿ.
ಎಚ್ಚರಿಕೆ: ಅನುಕೂಲಕ್ಕಾಗಿ, AI ಕೆಲವೊಮ್ಮೆ ಎಂಬೆಡೆಡ್ ಮೌಲ್ಯಗಳನ್ನು ಪಾಸ್‌ವರ್ಡ್: 123456 ಅಥವಾ ಅತಿಯಾಗಿ ವಿಶಾಲವಾದ ಅನುಮತಿಗಳನ್ನು ಇರಿಸುತ್ತದೆ: ಮಾದರಿ ಪೈಪ್‌ಲೈನ್‌ಗಳಲ್ಲಿ ಬರೆಯಿರಿ. ಇದನ್ನು ಯಾವಾಗಲೂ ಸರಿಪಡಿಸಿ: ರಹಸ್ಯವನ್ನು ಉಲ್ಲೇಖಕ್ಕೆ ಬದಲಾಯಿಸಿ, ಅನುಮತಿಯನ್ನು ಕುಗ್ಗಿಸಿ.

ಹೋಲಿಕೆ ಚಾರ್ಟ್

ಪರಿಕಲ್ಪನೆ

GitHub ಕ್ರಿಯೆಗಳು

GitLab CI

ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್

.github/workflows/*.yml

.gitlab-ci.yml

ಕಟ್ಟಡ ಘಟಕ

ಕೆಲಸದ ಹರಿವು → ಕೆಲಸ → ಹಂತ

ಹಂತ → ಕೆಲಸ

ಪ್ರಚೋದಕ

ಹತ್ತು:

ನಿಯಮಗಳು: / ಮಾತ್ರ:

ರಹಸ್ಯವನ್ನು ಕರೆಯಿರಿ

${{ ರಹಸ್ಯಗಳು.NAME }}

$NAME (CI/CD ವೇರಿಯೇಬಲ್‌ಗಳು)

ಸಿದ್ಧ ಘಟಕ

ಬಳಸುತ್ತದೆ: action@v4

ಸೇರಿವೆ: / ಟೆಂಪ್ಲೇಟ್

ಓಟಗಾರ

ರನ್-ಆನ್:

ಟ್ಯಾಗ್ಗಳು:

ಮೂರು ಸಣ್ಣ ಪ್ರಕರಣಗಳು

ಪ್ರಕರಣ 1 - 6 ಗಂಟೆ 40 ನಿಮಿಷಗಳಿಗೆ ಕಡಿಮೆಯಾಗಿದೆ. ಒಂದು ತಂಡವು ತಮ್ಮ ಹಸ್ತಚಾಲಿತ ಪರೀಕ್ಷೆ-ಬಿಲ್ಡ್-ನಿಯೋಜನೆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಲು ಬಯಸಿದೆ, ಆದರೆ ಯಾರೂ YAML ಅನ್ನು ತಿಳಿದಿರಲಿಲ್ಲ. ಅವರು YZ ಅನ್ನು "Node.js ಯೋಜನೆ, GitHub ಕ್ರಿಯೆಗಳು, npm ಪರೀಕ್ಷೆ ಮತ್ತು npm ಬಿಲ್ಡ್ ಇನ್ ಪುಶ್ ಟು ಮೈನ್, ವಿ* ಟ್ಯಾಗ್‌ನಲ್ಲಿ ಮಾತ್ರ ನಿಯೋಜಿಸಿ" ಎಂದು ವಿವರಿಸಿದರು. AI 40 ಸಾಲುಗಳ ಕೆಲಸದ ಅಸ್ಥಿಪಂಜರವನ್ನು ತಯಾರಿಸಿತು; ತಂಡವು ಪ್ರತಿ ಹಂತವನ್ನು ಪರಿಶೀಲಿಸಿತು ಮತ್ತು 40 ನಿಮಿಷಗಳಲ್ಲಿ ನೇರ ಪ್ರಸಾರವಾಯಿತು. ಅವರು ಕೈಯಿಂದ ಬರೆದಿದ್ದರೆ ಅದು ದಿನದ ಕೆಲಸವಾಗುತ್ತಿತ್ತು.

ಪ್ರಕರಣ 2 - ದೃಢೀಕರಣವು ಭದ್ರತಾ ದುರ್ಬಲತೆಯನ್ನು ಹಿಡಿದಿದೆ. ಒಬ್ಬ ಎಂಜಿನಿಯರ್ ವರ್ಕ್‌ಫ್ಲೋ ಅನ್ನು ನಿಯೋಜಿಸಲು AI ಅನ್ನು ಕೇಳಿದರು. ಔಟ್‌ಪುಟ್ ಅನುಮತಿಗಳನ್ನು ಒಳಗೊಂಡಿದೆ: ಎಲ್ಲಾ ಬರೆಯಿರಿ - ಅಂದರೆ ಟೋಕನ್ ರೆಪೊಸಿಟರಿ, ಪ್ಯಾಕೇಜುಗಳು, ಎಲ್ಲದಕ್ಕೂ ಬರೆಯಬಹುದು. ಇಂಜಿನಿಯರ್ ಇದನ್ನು ಗಮನಿಸಿದರು ಮತ್ತು ಅನುಮತಿಗಳೊಂದಿಗೆ ಅದನ್ನು ಸಂಕುಚಿತಗೊಳಿಸಿದರು: {ವಿಷಯಗಳು: ಓದು, ಪ್ಯಾಕೇಜುಗಳು: ಬರೆಯಿರಿ}. ಇದು ಸಂಪೂರ್ಣ ರೆಪೊಸಿಟರಿಯನ್ನು ಬದಲಿಸುವ ಅಪಹರಣದ ಅವಲಂಬನೆಯ ಅಪಾಯವನ್ನು ತೆಗೆದುಹಾಕಿತು.

ಪ್ರಕರಣ 3 - ಭ್ರಮೆಯ ಕ್ರಿಯೆ. ಒಂದು ತಂಡವು AI-ಸೂಚಿಸಿದ ಬಳಕೆಗಳನ್ನು ನಡೆಸಿತು: ಕ್ರಮಗಳು/ನಿಯೋಜನೆ-to-aws@v3 ಲೈನ್; ಅಂತಹ ಯಾವುದೇ ಅಧಿಕೃತ ಕ್ರಮವಿಲ್ಲ, AI ಹೆಸರನ್ನು ಮಾಡಿದೆ. "ಕ್ರಿಯೆ ಕಂಡುಬಂದಿಲ್ಲ" ಎಂದು ಪೈಪ್‌ಲೈನ್ ಸ್ಫೋಟಗೊಂಡಿದೆ. ಪಾಠ: ಮಾರ್ಕೆಟ್‌ಪ್ಲೇಸ್‌ನಲ್ಲಿ ದೃಢೀಕರಿಸಿ ಎಂದು ಕರೆಯಲ್ಪಡುವ ಪ್ರತಿಯೊಂದು ಘಟಕವು ಬಳಕೆಗಳೊಂದಿಗೆ: ನಿಜವಾಗಿ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ.

ನಾಲ್ಕು ನಕಲಿಸಬಹುದಾದ ಟೆಂಪ್ಲೇಟ್‌ಗಳು

1) ಮೂಲ CI ವರ್ಕ್‌ಫ್ಲೋ:

GitHub ಕ್ರಿಯೆಗಳಿಗಾಗಿ CI ವರ್ಕ್‌ಫ್ಲೋ ಬರೆಯಿರಿ. ಯೋಜನೆ: [ಭಾಷೆ/ಫ್ರೇಮ್‌ವರ್ಕ್]. ಟ್ರಿಗ್ಗರ್: ಮುಖ್ಯ ಶಾಖೆಗೆ ವಿನಂತಿಯನ್ನು ಒತ್ತಿ ಮತ್ತು ಎಳೆಯಿರಿ. ಹಂತಗಳು: ಅವಲಂಬನೆಗಳನ್ನು ಸ್ಥಾಪಿಸಿ, ಪರೀಕ್ಷೆಗಳನ್ನು ರನ್ ಮಾಡಿ, ಲಿಂಟ್ ಅನ್ನು ರನ್ ಮಾಡಿ. ನಿಯೋಜನೆ ಇಲ್ಲ. ರನ್ನರ್ ಉಬುಂಟು-ಇತ್ತೀಚಿನ. ಯಾವುದೇ ರಹಸ್ಯ ಅಗತ್ಯವಿಲ್ಲ. YAML ಅನ್ನು ಟಿಪ್ಪಣಿ ಮಾಡಿ.

2) ನಿಯೋಜಿಸಲಾದ ಸಿಡಿ ವರ್ಕ್‌ಫ್ಲೋ (ಸುರಕ್ಷಿತ):

[ಪ್ಲಾಟ್‌ಫಾರ್ಮ್] ಗಾಗಿ ನಿಯೋಜನೆ ವರ್ಕ್‌ಫ್ಲೋ ಅನ್ನು ಬರೆಯಿರಿ. ಇದು 'v*' ಟ್ಯಾಗ್‌ನಲ್ಲಿ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸಬೇಕು. ಗುರಿ: [ಮಾಧ್ಯಮ/ಕ್ಲೌಡ್]. ನಿಯಮಗಳು: - ಎಂದಿಗೂ ಸರಳ ಪಠ್ಯದಲ್ಲಿ ರಹಸ್ಯಗಳನ್ನು ಬರೆಯಬೇಡಿ, ಅವುಗಳನ್ನು ${{ ರಹಸ್ಯಗಳೊಂದಿಗೆ ಕರೆ ಮಾಡಿ.

3) ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪೈಪ್‌ಲೈನ್ ಅನ್ನು ವಿವರಿಸಿ:

ಕೆಳಗಿನ [ಪ್ಲಾಟ್‌ಫಾರ್ಮ್] ಪೈಪ್‌ಲೈನ್ ಅನ್ನು ಸಾಲಿನ ಮೂಲಕ ವಿವರಿಸಿ: ಪ್ರತಿ ಕೆಲಸವು ಏನು ಮಾಡುತ್ತದೆ, ಅದು ಯಾವ ಕ್ರಮದಲ್ಲಿ ಚಲಿಸುತ್ತದೆ, ಅದು ಯಾವ ರಹಸ್ಯವನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು ಅದರ ಎರಡು ಅಪಾಯಕಾರಿ ಅಂಶಗಳು ಯಾವುವು? ಅಂತಿಮವಾಗಿ, 3 ಸುಧಾರಣೆಗಳನ್ನು ಸೂಚಿಸಿ. ಪೈಪ್‌ಲೈನ್: [YAML ವಿಷಯ]

4) ಪೈಪ್‌ಲೈನ್ ಅನ್ನು ವೇಗಗೊಳಿಸಿ:

ಕೆಳಗಿನ CI ಪೈಪ್‌ಲೈನ್ ನಿಧಾನವಾಗಿ ಚಲಿಸುತ್ತಿದೆ (ಅವಧಿ: [X ನಿಮಿಷ]). ಕ್ಯಾಷ್ ಬಳಕೆ, ಸಮಾನಾಂತರ ಉದ್ಯೋಗಗಳು ಮತ್ತು ಅನಗತ್ಯ ಹಂತಗಳಿಗಾಗಿ ಪರೀಕ್ಷಿಸಿ. 5 ಕಾಂಕ್ರೀಟ್, ಕ್ರಿಯಾಶೀಲ ವೇಗವರ್ಧಕ ಸಲಹೆಗಳನ್ನು ನೀಡಿ ಮತ್ತು ಪ್ರತಿಯೊಂದರ ಅಂದಾಜು ಪ್ರಭಾವವನ್ನು ಬರೆಯಿರಿ. ಪೈಪ್ಲೈನ್: [YAML]

ದುರ್ಬಲ ಪ್ರಾಂಪ್ಟ್ / ಬಲವಾದ ಪ್ರಾಂಪ್ಟ್

ದುರ್ಬಲ: "GitHub ಕ್ರಿಯೆಗಳ ಕೆಲಸದ ಹರಿವನ್ನು ಬರೆಯಿರಿ."

ಫಲಿತಾಂಶ: ಯಾವ ಭಾಷೆ, ಯಾವ ಪ್ರಚೋದಕ, ನಿಯೋಜನೆ ಇದೆಯೇ ಎಂಬುದು ಅಸ್ಪಷ್ಟವಾಗಿದೆ; AI ಜೆನೆರಿಕ್ ನೋಡ್ ನಿದರ್ಶನವನ್ನು ನೀಡುತ್ತದೆ, ಬಹುಶಃ ನಿಮ್ಮ ಯೋಜನೆಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ ಮತ್ತು ರಹಸ್ಯವನ್ನು ಹಾರ್ಡ್‌ಕೋಡ್ ಮಾಡಬಹುದು.

ಪ್ರಬಲ: "GitHub ಕ್ರಿಯೆಗಳ ವರ್ಕ್‌ಫ್ಲೋ ಬರೆಯಿರಿ. ಪೈಥಾನ್ 3.12 ಪ್ರಾಜೆಕ್ಟ್, ಪುಲ್ ವಿನಂತಿ ಮತ್ತು ಮುಖ್ಯ ಪುಶ್‌ನಲ್ಲಿ ಪೈಟೆಸ್ಟ್ + ರಫ್ ಅನ್ನು ರನ್ ಮಾಡಿ; ಯಾವುದೇ ನಿಯೋಜಿಸಬೇಡಿ; ಪಿಪ್ ಸಂಗ್ರಹದೊಂದಿಗೆ ಅವಲಂಬನೆಗಳನ್ನು ವೇಗಗೊಳಿಸಿ; ಯಾವುದೇ ರಹಸ್ಯಗಳ ಅಗತ್ಯವಿಲ್ಲ. ಕಾಮೆಂಟ್‌ಗಳೊಂದಿಗೆ YAML ಅನ್ನು ರಫ್ತು ಮಾಡಿ."

ವ್ಯತ್ಯಾಸ: ಎರಡನೇ ಪ್ರಾಂಪ್ಟ್ ಭಾಷೆ, ಪ್ರಚೋದಕ, ವ್ಯಾಪ್ತಿ (ಯಾವುದೇ ನಿಯೋಜನೆ), ಕಾರ್ಯಕ್ಷಮತೆಯ ನಿರೀಕ್ಷೆ ಮತ್ತು ಭದ್ರತಾ ನಿರ್ಬಂಧವನ್ನು ನೀಡುತ್ತದೆ. ಔಟ್ಪುಟ್ ನೇರವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

ಸಾಮಾನ್ಯ ತಪ್ಪುಗಳು

  • YAML ನಲ್ಲಿ ರಹಸ್ಯವನ್ನು ಎಂಬೆಡಿಂಗ್. ಸರಳ ಪಠ್ಯದ ಪಾಸ್‌ವರ್ಡ್/ಟೋಕನ್ ಅತ್ಯಂತ ಸಾಮಾನ್ಯವಾದ CI ದುರ್ಬಲತೆಯಾಗಿದೆ.
  • ಅತಿ ವಿಶಾಲವಾದ ಅನುಮತಿ. ಎಲ್ಲಾ ಬರೆಯುವ ಬದಲು ಅಗತ್ಯವಿರುವ ಕನಿಷ್ಠ ಅನುಮತಿಯನ್ನು ನೀಡಿ.
  • ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ ಕ್ರಿಯೆ/ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಅವಲಂಬಿಸಿದೆ. AI-ನಿರ್ಮಿತ ಉಪಯೋಗಗಳನ್ನು ಪರಿಶೀಲಿಸಿ: ಮಾರುಕಟ್ಟೆ ಸ್ಥಳದಲ್ಲಿ ಸಾಲುಗಳು.
  • CI ನೊಂದಿಗೆ ನಿಯೋಜನೆ ಗೊಂದಲ. ಪರೀಕ್ಷೆಯು ಪ್ರತಿ ಪುಶ್‌ನಲ್ಲಿ ಚಲಿಸಬಹುದು, ಆದರೆ ನಿಯೋಜನೆಯನ್ನು ನಿಯಂತ್ರಿಸಬೇಕು ಮತ್ತು ಅನುಮೋದಿಸಬೇಕು.
  • ಸಂಗ್ರಹವನ್ನು ಬಳಸುತ್ತಿಲ್ಲ. ಪ್ರತಿ ಓಟದಲ್ಲಿ ಮೊದಲಿನಿಂದ ಅವಲಂಬನೆಗಳನ್ನು ಸ್ಥಾಪಿಸುವುದು ಪೈಪ್‌ಲೈನ್ ಅನ್ನು ನಿಮಿಷಗಳವರೆಗೆ ನಿಧಾನಗೊಳಿಸುತ್ತದೆ.
  • ಮುಖ್ಯ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ನೇರವಾಗಿ ಮೊದಲ ಕೆಲಸದ ಹರಿವನ್ನು ಪ್ರಯತ್ನಿಸಲಾಗುತ್ತಿದೆ. ಇದನ್ನು ಮೊದಲು ಪರೀಕ್ಷಾ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಚಲಾಯಿಸಿ.

ಸಾರಾಂಶದಲ್ಲಿ

CI/CD ಪೈಪ್‌ಲೈನ್‌ಗಳು ಸ್ವಯಂಚಾಲಿತ ಪೈಪ್‌ಗಳಾಗಿವೆ, ಅದು ಕೋಡ್ ಅನ್ನು ಉತ್ಪನ್ನಕ್ಕೆ ಸುರಕ್ಷಿತವಾಗಿ ಚಲಿಸುತ್ತದೆ ಮತ್ತು YAML ನೊಂದಿಗೆ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ. AI ತ್ವರಿತವಾಗಿ GitHub ಕ್ರಿಯೆಗಳು ಮತ್ತು GitLab CI ಗಾಗಿ ಕೆಲಸ ಮಾಡುವ ಬ್ಲೂಪ್ರಿಂಟ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ - ಆದರೆ ನೀವು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್, ಭಾಷೆ, ಪ್ರಚೋದಕ ಮತ್ತು ನಿಯೋಜಿಸುವ ವ್ಯಾಪ್ತಿಯ ಬಗ್ಗೆ ಸ್ಪಷ್ಟವಾಗಿರಬೇಕು. ಭದ್ರತೆಯಲ್ಲಿ ಮೂರು ನಿಯಮಗಳಿವೆ: ಉಲ್ಲೇಖದ ಮೂಲಕ ರಹಸ್ಯಗಳನ್ನು ಕರೆ ಮಾಡಿ, ಕನಿಷ್ಠ ಸವಲತ್ತುಗಳನ್ನು ನೀಡಿ, ಲಾಗ್ನಲ್ಲಿ ರಹಸ್ಯಗಳನ್ನು ಮುದ್ರಿಸಬೇಡಿ. ಪ್ರತಿಯೊಂದೂ ಬಳಸುತ್ತದೆ:/include: ಘಟಕವು ನಿಜವಾಗಿ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಮತ್ತು ಪ್ರತಿ ಹಂತವು ಏನು ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸುವುದು ನಿಮ್ಮ ಜವಾಬ್ದಾರಿಯಾಗಿದೆ.

ಅಪ್ಲಿಕೇಶನ್ ಕಾರ್ಯ

ಸರಳ ಮಾದರಿ ಯೋಜನೆಯನ್ನು ಆರಿಸಿ (ನಿಮ್ಮ ಭಾಷೆಯಲ್ಲಿ "ಹಲೋ ವರ್ಲ್ಡ್" ಸಹ ಮಾಡುತ್ತದೆ). AI ಮೇಲಿನ "ಮೂಲ CI ವರ್ಕ್‌ಫ್ಲೋ" ಟೆಂಪ್ಲೇಟ್‌ನೊಂದಿಗೆ ವರ್ಕ್‌ಫ್ಲೋ ಅನ್ನು ಉತ್ಪಾದಿಸುವಂತೆ ಮಾಡಿ. ನಂತರ: (1) ಪ್ರತಿ ಹೆಜ್ಜೆ ಏನು ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ನಿಮ್ಮ ಸ್ವಂತ ಮಾತುಗಳಲ್ಲಿ ಬರೆಯಿರಿ; (2) ಯಾವುದೇ ರಹಸ್ಯಗಳನ್ನು ಎಂಬೆಡ್ ಮಾಡಲಾಗಿಲ್ಲ ಮತ್ತು ಅನುಮತಿಗಳು ಕಿರಿದಾಗಿದೆ ಎಂದು ಪರಿಶೀಲಿಸಿ; (3) ಸಾಧ್ಯವಾದರೆ, ಅದನ್ನು ಪರೀಕ್ಷಾ ತೊಟ್ಟಿಯಲ್ಲಿ ಚಲಾಯಿಸಿ ಮತ್ತು ಕೆಂಪು-ಹಸಿರು ನಡವಳಿಕೆಯನ್ನು ಗಮನಿಸಿ.

ಪರಿಶೀಲನಾಪಟ್ಟಿ

  • [ ] ನನ್ನ ಪ್ರಾಂಪ್ಟ್‌ಗೆ ನಾನು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್, ಭಾಷೆ/ಫ್ರೇಮ್‌ವರ್ಕ್, ಟ್ರಿಗರ್ ಮತ್ತು ಡಿಪ್ಲೋಯ್ ಸ್ಕೋಪ್ ಅನ್ನು ಸೇರಿಸಿದ್ದೇನೆ.
  • [ ] ರಚಿಸಲಾದ YAML ನಲ್ಲಿ ಪ್ರತಿಯೊಂದು ಕೆಲಸ ಮತ್ತು ಹಂತವು ಏನು ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ನಾನು ಅರ್ಥಮಾಡಿಕೊಂಡಿದ್ದೇನೆ.
  • [ ] ಯಾವುದೇ ರಹಸ್ಯವು ಸರಳ ಪಠ್ಯವಲ್ಲ; ಎಲ್ಲಾ ${{ secrets.X }} / CI ವೇರಿಯೇಬಲ್.
  • [ ] ನಾನು ಅನುಮತಿಗಳನ್ನು ಕನಿಷ್ಠ ಅಧಿಕಾರಕ್ಕೆ ಸಂಕುಚಿತಗೊಳಿಸಿದ್ದೇನೆ.
  • [ ] ಎಲ್ಲಾ ಕ್ರಿಯೆಗಳು/ಟೆಂಪ್ಲೇಟ್‌ಗಳು ನಿಜವಾಗಿ ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ ಎಂದು ನಾನು ಪರಿಶೀಲಿಸಿದ್ದೇನೆ.
  • [ ] ನಾನು ನಿಯೋಜನೆ ಹಂತವನ್ನು ಅನುಮೋದನೆ/ರಕ್ಷಣೆಯೊಂದಿಗೆ ನಿಯಂತ್ರಿಸಿದೆ.