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

ಮೂಲಸೌಕರ್ಯವನ್ನು ಕೋಡ್ ಆಗಿ ನಿರ್ವಹಿಸುವುದು: ಟೆರಾಫಾರ್ಮ್ ಮತ್ತು IaC ಜೊತೆಗೆ ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆ

ಲಾಭಗಳು:

  • IaC ಪರಿಕಲ್ಪನೆ ಮತ್ತು ಟೆರಾಫಾರ್ಮ್‌ನ ಕೆಲಸದ ಚಕ್ರವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಸಾಮರ್ಥ್ಯ (init, ಯೋಜನೆ, ಅನ್ವಯಿಸು, ಸ್ಥಿತಿ, ಮಾಡ್ಯೂಲ್) ಮತ್ತು ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಯು ಸುರಕ್ಷಿತ HCL ಡ್ರಾಫ್ಟ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ
  • ಅನ್ವಯಿಸುವ ಮೊದಲು ಯೋಜನೆಯೊಂದಿಗೆ ಪ್ರತಿ ಬದಲಾವಣೆಯನ್ನು ಪರಿಶೀಲಿಸುವ ಸಾಮರ್ಥ್ಯ ಮತ್ತು ಅನಿರೀಕ್ಷಿತ ನಾಶ/ಬದಲಿ ಸಾಲುಗಳನ್ನು ಹಿಡಿಯುವುದು
  • ಕೋಡ್‌ನಿಂದ ರಹಸ್ಯಗಳನ್ನು ಇಟ್ಟುಕೊಳ್ಳುವುದು, ಸ್ಥಿತಿಯನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಇಟ್ಟುಕೊಳ್ಳುವುದು ಮತ್ತು IAM ಅನುಮತಿಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುವ ತತ್ವಗಳನ್ನು ಅನ್ವಯಿಸುವ ಸಾಮರ್ಥ್ಯ

ಹಿಂದೆ, ಸರ್ವರ್ ಅನ್ನು ಹೊಂದಿಸುವುದು ಕ್ಲೌಡ್ ಪ್ಯಾನೆಲ್ ಮೂಲಕ ಕ್ಲಿಕ್ ಮಾಡುವ ವಿಷಯವಾಗಿತ್ತು: ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ರಚಿಸಿ, ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಹೊಂದಿಸಿ, ಭದ್ರತಾ ನಿಯಮವನ್ನು ಸೇರಿಸಿ. ಈ ವಿಧಾನವು ನಿಧಾನ, ದೋಷ-ಪೀಡಿತ ಮತ್ತು ಪುನರಾವರ್ತನೆಯಾಗುವುದಿಲ್ಲ - ಅದೇ ಪರಿಸರವನ್ನು ಎರಡನೇ ಬಾರಿಗೆ ಹೊಂದಿಸುವುದು ಅಸಾಧ್ಯವಾಗಿತ್ತು. ಇಂದು, ಮೂಲಸೌಕರ್ಯವನ್ನು ಕೋಡ್ ಆಗಿ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ. IaC (ಇನ್‌ಫ್ರಾಸ್ಟ್ರಕ್ಚರ್ ಆಸ್ ಕೋಡ್) ಕ್ಲೌಡ್ ಸಂಪನ್ಮೂಲಗಳಾದ ಸರ್ವರ್‌ಗಳು, ನೆಟ್‌ವರ್ಕ್‌ಗಳು ಮತ್ತು ಡೇಟಾಬೇಸ್‌ಗಳನ್ನು ಪಠ್ಯ ಫೈಲ್‌ಗಳಲ್ಲಿ ಹಸ್ತಚಾಲಿತವಾಗಿ ವಿವರಿಸುವ ವಿಧಾನವಾಗಿದೆ. ಈ ಫೈಲ್‌ಗಳು ಆವೃತ್ತಿ ನಿಯಂತ್ರಣದಲ್ಲಿ (Git) ಕುಳಿತುಕೊಳ್ಳುತ್ತವೆ; ಯಾರು ಏನು, ಯಾವಾಗ ಮತ್ತು ಏನನ್ನು ಬದಲಾಯಿಸಿದ್ದಾರೆ ಎಂಬುದನ್ನು ನೀವು ನೋಡಬಹುದು; ನೀವು ಒಂದೇ ರೀತಿಯ ಮೂಲಸೌಕರ್ಯವನ್ನು ಹಲವು ಬಾರಿ ಹೊಂದಿಸಬಹುದು, ಅದೇ ರೀತಿಯಲ್ಲಿ, ಒಂದು ಆಜ್ಞೆಯೊಂದಿಗೆ.

ಅತ್ಯಂತ ಸಾಮಾನ್ಯವಾದ IaC ಸಾಧನವೆಂದರೆ ಟೆರಾಫಾರ್ಮ್. ಟೆರಾಫಾರ್ಮ್ ನೀವು HCL (HashiCorp ಕಾನ್ಫಿಗರೇಶನ್ ಲಾಂಗ್ವೇಜ್ — Terraform ನ ಕಾನ್ಫಿಗರೇಶನ್ ಭಾಷೆ) ಎಂಬ ಓದಬಲ್ಲ ಭಾಷೆಯಲ್ಲಿ ಬರೆಯುವ ವ್ಯಾಖ್ಯಾನಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ಅವುಗಳನ್ನು ಕ್ಲೌಡ್ ಪ್ರೊವೈಡರ್‌ನ (AWS, Azure, GCP) API ಗೆ ಅನುವಾದಿಸುತ್ತದೆ ಮತ್ತು ಸಂಪನ್ಮೂಲಗಳನ್ನು ರಚಿಸುತ್ತದೆ. AI HCL ಅನ್ನು ಚೆನ್ನಾಗಿ ತಿಳಿದಿದೆ ಮತ್ತು ಸಂಕೀರ್ಣ ಬ್ಲಾಕ್‌ಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಉತ್ಪಾದಿಸುತ್ತದೆ. ಆದರೆ IaC ನಲ್ಲಿ, ತಪ್ಪಿನ ವೆಚ್ಚವು ಹೆಚ್ಚು: ಒಂದು ತಪ್ಪು ವ್ಯಾಖ್ಯಾನವು ಸಂಪೂರ್ಣ ಉತ್ಪಾದನಾ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಅಳಿಸಿಹಾಕುತ್ತದೆ. ಅದಕ್ಕಾಗಿಯೇ ಟೆರಾಫಾರ್ಮ್‌ನಲ್ಲಿನ ಸುವರ್ಣ ನಿಯಮವೆಂದರೆ ಪ್ರತಿ ಬದಲಾವಣೆಯನ್ನು ಅನುಷ್ಠಾನಗೊಳಿಸುವ ಮೊದಲು 'ಯೋಜನೆ'ಯೊಂದಿಗೆ ನೋಡುವುದು.

ಟೆರ್ರಾಫಾರ್ಮ್ ರನ್ಟೈಮ್

ಟೆರಾಫಾರ್ಮ್ ಮೂರು ಮೂಲಭೂತ ಆಜ್ಞೆಗಳೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ - ಇವುಗಳನ್ನು ತಿಳಿದುಕೊಳ್ಳುವುದು AI ಔಟ್‌ಪುಟ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲು ಪೂರ್ವಾಪೇಕ್ಷಿತವಾಗಿದೆ:

  • `terraform init`: ಯೋಜನೆಯನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ, ಅಗತ್ಯ ಪೂರೈಕೆದಾರರ ಪ್ಲಗಿನ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡುತ್ತದೆ.
  • `ಟೆರಾಫಾರ್ಮ್ ಯೋಜನೆ`: ಪ್ರಸ್ತುತ ಪರಿಸ್ಥಿತಿಯನ್ನು ಅಪೇಕ್ಷಿತ ಸನ್ನಿವೇಶದೊಂದಿಗೆ ಹೋಲಿಸುತ್ತದೆ ಮತ್ತು ಏನನ್ನು ಸೇರಿಸಬೇಕು, ಯಾವುದನ್ನು ಬದಲಾಯಿಸಬೇಕು, ಯಾವುದನ್ನು ಅಳಿಸಬೇಕು ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ. ಯಾವುದನ್ನೂ ಕಾರ್ಯಗತಗೊಳಿಸುವುದಿಲ್ಲ. ಇದು ಅತ್ಯಂತ ನಿರ್ಣಾಯಕ ಭದ್ರತಾ ಹಂತವಾಗಿದೆ.
  • `ಟೆರಾಫಾರ್ಮ್ ಅನ್ವಯಿಸು`: ವಾಸ್ತವವಾಗಿ ಯೋಜನೆಯನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ, ಸಂಪನ್ಮೂಲಗಳನ್ನು ರಚಿಸುವುದು/ಮಾರ್ಪಡಿಸುವುದು.

ಹೆಚ್ಚುವರಿಯಾಗಿ, ಎರಡು ಪರಿಕಲ್ಪನೆಗಳು ಪ್ರಮುಖವಾಗಿವೆ. ರಾಜ್ಯ (ಸ್ಟೇಟ್ ಫೈಲ್): ಇದು ಟೆರಾಫಾರ್ಮ್ ನಿರ್ವಹಿಸುವ ಸಂಪನ್ಮೂಲಗಳ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯನ್ನು ಇರಿಸಿಕೊಳ್ಳುವ ಫೈಲ್ ಆಗಿದೆ; ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ರಿಮೋಟ್ ಮತ್ತು ಲಾಕ್ ಮಾಡಿದ ಗೋದಾಮಿನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಇದರಿಂದ ಇಬ್ಬರು ವ್ಯಕ್ತಿಗಳು ಒಂದೇ ಸಮಯದಲ್ಲಿ ಅದನ್ನು ಬದಲಾಯಿಸಲು ಅಥವಾ ನಾಶಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಮಾಡ್ಯೂಲ್: ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಸಂರಚನಾ ಪ್ಯಾಕೇಜ್; ಉದಾಹರಣೆಗೆ, ನೀವು ಅನೇಕ ಯೋಜನೆಗಳಲ್ಲಿ "ನೆಟ್‌ವರ್ಕ್ ಹೊಂದಿಸು" ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಬಳಸಬಹುದು.

ಸಲಹೆ: ಟೆರಾಫಾರ್ಮ್ ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿನ ಅತ್ಯಂತ ಅಪಾಯಕಾರಿ ಚಿಹ್ನೆಯು ಪ್ಲಾನ್ ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿ ನಾಶ ಅಥವಾ -/+ (ಬದಲಿ) ಸಾಲುಗಳು. ಇದರರ್ಥ ಸಂಪನ್ಮೂಲವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ. ಯೋಜನೆಯಲ್ಲಿ ಅನಿರೀಕ್ಷಿತ ನಾಶವನ್ನು ನೀವು ನೋಡಿದರೆ, ಎಂದಿಗೂ ಅನ್ವಯಿಸಬೇಡಿ, ಅದು ಏಕೆ ಕಾಣಿಸಿಕೊಂಡಿತು ಎಂಬುದನ್ನು ಮೊದಲು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ.

ಹಂತ ಹಂತವಾಗಿ: AI ಜೊತೆಗೆ IaC ಬರೆಯುವುದು

  1. ಬಯಸಿದ ಮೂಲಸೌಕರ್ಯವನ್ನು ಸ್ಪಷ್ಟಪಡಿಸಿ. "ಒಂದು VPC, ಎರಡು ಸಬ್‌ನೆಟ್‌ಗಳು, ಒಂದು ಭದ್ರತಾ ಗುಂಪು ಮತ್ತು eu-central-1 ನಲ್ಲಿ ಒಂದು t3.micro EC2" ನಂತೆ ಕಾಂಕ್ರೀಟ್ ಆಗಿರಿ.
  2. ಒದಗಿಸುವವರು ಮತ್ತು ಆವೃತ್ತಿಯನ್ನು ಸೂಚಿಸಿ. ಯಾವ ಕ್ಲೌಡ್, ಯಾವ ಟೆರಾಫಾರ್ಮ್ ಮತ್ತು ಪ್ರೊವೈಡರ್ ಆವೃತ್ತಿ? ನೀವು ಆವೃತ್ತಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದಿದ್ದರೆ, AI ಹಳೆಯ/ಹೊಂದಾಣಿಕೆಯಿಲ್ಲದ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸಬಹುದು.
  3. HCL ಡ್ರಾಫ್ಟ್ ಅನ್ನು ತಯಾರಿಸಿ. ವೇರಿಯೇಬಲ್‌ಗಳು ಮತ್ತು ಔಟ್‌ಪುಟ್‌ಗಳನ್ನು ಸಹ ವಿನಂತಿಸಿ.
  4. ರಹಸ್ಯವನ್ನು ಹೊರತೆಗೆಯಿರಿ. ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಕೀಗಳಂತಹ ಮೌಲ್ಯಗಳು ವೇರಿಯಬಲ್ ಮತ್ತು ರಹಸ್ಯ ವಾಲ್ಟ್‌ಗೆ ಹೋಗಬೇಕು, ಕೋಡ್‌ಗೆ ಅಲ್ಲ.
  5. `init` + `ಪ್ಲಾನ್` ರನ್ ಮಾಡಿ. ಯೋಜನೆಯ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಸಾಲಿನ ಮೂಲಕ ಓದಿ; ಅನಿರೀಕ್ಷಿತ ಅಳಿಸುವಿಕೆಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸಿ.
  6. ಚಿಕ್ಕದಾಗಿ ಪ್ರಾರಂಭಿಸಿ, ಕ್ರಮೇಣ ಕಾರ್ಯಗತಗೊಳಿಸಿ. ಇದನ್ನು ಮೊದಲು ಪ್ರತ್ಯೇಕ ಪರೀಕ್ಷಾ ಖಾತೆ/ಪರಿಸರದಲ್ಲಿ ಅನ್ವಯಿಸಿ.

ಭದ್ರತೆ: IaC-ನಿರ್ದಿಷ್ಟ ಅಪಾಯಗಳು

IaC ಎಷ್ಟು ಶಕ್ತಿಶಾಲಿಯೋ ಅಷ್ಟೇ ಅಪಾಯಕಾರಿ. ಮೂರು ನಿರ್ಣಾಯಕ ಅಂಶಗಳು:

  1. ರಾಜ್ಯದ ಕಡತದಲ್ಲಿ ರಹಸ್ಯವಿದೆ. ಟೆರಾಫಾರ್ಮ್ ಸ್ಥಿತಿಯು ಕೆಲವೊಮ್ಮೆ ಡೇಟಾಬೇಸ್ ಪಾಸ್‌ವರ್ಡ್‌ಗಳಂತಹ ಸೂಕ್ಷ್ಮ ಮೌಲ್ಯಗಳನ್ನು ಸರಳ ಪಠ್ಯದಲ್ಲಿ ಇರಿಸುತ್ತದೆ. ರಾಜ್ಯವನ್ನು ಎಂದಿಗೂ ಸಾರ್ವಜನಿಕ ಭಂಡಾರದಲ್ಲಿ ಇರಿಸಬೇಡಿ; ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ, ನಿರ್ಬಂಧಿತ-ಪ್ರವೇಶ ರಿಮೋಟ್ ಬ್ಯಾಕೆಂಡ್ ಬಳಸಿ.
  2. HCL ನಲ್ಲಿ ರಹಸ್ಯಗಳನ್ನು ಎಂಬೆಡ್ ಮಾಡಬೇಡಿ. ಪಾಸ್‌ವರ್ಡ್="prod123" ನಂತಹ ಸಾಲುಗಳನ್ನು Git ಇತಿಹಾಸಕ್ಕೆ ಶಾಶ್ವತವಾಗಿ ಬರೆಯಲಾಗುತ್ತದೆ. ಬದಲಾಗಿ, ವೇರಿಯೇಬಲ್ ಅನ್ನು ಬಳಸಿ ಮತ್ತು ಪರಿಸರ ವೇರಿಯಬಲ್ (TF_VAR_...) ಅಥವಾ ರಹಸ್ಯ ವಾಲ್ಟ್‌ನಿಂದ ರನ್‌ಟೈಮ್‌ನಲ್ಲಿ ಮೌಲ್ಯವನ್ನು ನೀಡಿ.
  3. ಬಹಳ ವಿಶಾಲವಾದ IAM ಅನುಮತಿ. AI ಕೆಲವೊಮ್ಮೆ ಆಕ್ಷನ್‌ನಂತಹ ಬ್ಲಾಕ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ: "*" (ಎಲ್ಲವನ್ನೂ ಅನುಮತಿಸಿ) "ಅದನ್ನು ಕೆಲಸ ಮಾಡಲು". ಇದು ದುರ್ಬಲತೆ; ಅನುಮತಿಯನ್ನು ಅಗತ್ಯವಿರುವ ಕನಿಷ್ಠಕ್ಕೆ ಸಂಕುಚಿತಗೊಳಿಸಿ.
ಗಮನ: ಒಮ್ಮೆ ರಹಸ್ಯವು Git ಇತಿಹಾಸವನ್ನು ಪ್ರವೇಶಿಸಿದರೆ, ಅದು ಹಿಂದೆಯೇ ಉಳಿಯುತ್ತದೆ ಮತ್ತು ನೀವು ಫೈಲ್ ಅನ್ನು ಅಳಿಸಿದರೂ ಸಹ ರಾಜಿ ಮಾಡಿಕೊಳ್ಳಬಹುದು. ನೀವು ತಪ್ಪಾಗಿ ಬದ್ಧರಾಗಿದ್ದರೆ, ತಕ್ಷಣವೇ ರದ್ದುಗೊಳಿಸಿ ಮತ್ತು ರಹಸ್ಯವನ್ನು ತಿರುಗಿಸಿ; ಕೇವಲ ಅಳಿಸುವುದು ಸಾಕಾಗುವುದಿಲ್ಲ.

ಅಪಾಯಕಾರಿ ಯೋಜನೆ ಚಿಹ್ನೆಗಳ ಕೋಷ್ಟಕ

ಪ್ರಿಂಟ್ಔಟ್ ಯೋಜನೆ

ಅರ್ಥ

ಏನು ಮಾಡಬೇಕು

+ ರಚಿಸಿ

ಹೊಸ ಸಂಪನ್ಮೂಲ ಸೇರ್ಪಡೆಯಾಗಲಿದೆ

ಸಾಮಾನ್ಯವಾಗಿ ಸುರಕ್ಷಿತ, ಆದರೂ ಪರಿಶೀಲಿಸಿ

~ ಸ್ಥಳದಲ್ಲಿ ನವೀಕರಿಸಿ

ಸೈಟ್ನಲ್ಲಿ ಮೂಲವು ಬದಲಾಗುತ್ತದೆ

ಪರಿಣಾಮವನ್ನು ಪರಿಶೀಲಿಸಿ (ನಿಲುಗಡೆಯಾಗುವುದೇ?)

-/+ ಬದಲಿಗೆ

ಅಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಮರುಸೃಷ್ಟಿಸಲಾಗುತ್ತದೆ

ಎಚ್ಚರಿಕೆ: ಡೇಟಾ ನಷ್ಟ ಸಂಭವಿಸಬಹುದು

- ನಾಶಮಾಡು

ಸಂಪನ್ಮೂಲ ನಾಶವಾಗುತ್ತದೆ

ನಿಲ್ಲಿಸಿ: ನೀವು ಅದನ್ನು ನಿರೀಕ್ಷಿಸದಿದ್ದರೆ ಎಂದಿಗೂ ಅನ್ವಯಿಸಬೇಡಿ

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

ಪ್ರಕರಣ 1 - 3 ಗಂಟೆಗಳಲ್ಲಿ 2 ದಿನಗಳ ಕೆಲಸ. ಒಂದು ತಂಡವು ಹೊಸ ಪರೀಕ್ಷಾ ಪರಿಸರವನ್ನು (VPC, ಸಬ್‌ನೆಟ್‌ಗಳು, RDS ಡೇಟಾಬೇಸ್, ECS ಕ್ಲಸ್ಟರ್) ಹೊಂದಿಸಲು Terraform ಬರೆಯಲು ಹೊರಟಿತ್ತು ಆದರೆ ಅವರು HCL ಗೆ ಸ್ಥಳಾಂತರಗೊಂಡಿದ್ದರು. ಅವರು AI ಗೆ ವಾಸ್ತುಶಿಲ್ಪ ಮತ್ತು ಆವೃತ್ತಿಗಳನ್ನು ವಿವರಿಸಿದರು ಮತ್ತು ಮಾಡ್ಯುಲರ್ ಬ್ಲೂಪ್ರಿಂಟ್ ಅನ್ನು ತಯಾರಿಸಿದರು. ಅವರು ಯೋಜನೆಯೊಂದಿಗೆ ಪ್ರತಿ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿದರು ಮತ್ತು ಅದನ್ನು 3 ಗಂಟೆಗಳಲ್ಲಿ ಚಾಲನೆ ಮಾಡಿದರು; ಇದು ಅವರಿಗೆ ಎರಡು ದಿನಗಳ ಹಸ್ತಚಾಲಿತ ಪ್ರಯೋಗ ಮತ್ತು ದೋಷವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.

ಪ್ರಕರಣ 2 - ಯೋಜನೆಯು ಅಳಿಸುವಿಕೆಯನ್ನು ಹಿಡಿದಿದೆ. ಒಬ್ಬ ಇಂಜಿನಿಯರ್ AI-ರಚಿಸಿದ ಅಪ್‌ಡೇಟ್ ಕೋಡ್ ಅನ್ನು ಅನ್ವಯಿಸದೆಯೇ ಯೋಜನೆಯನ್ನು ನಡೆಸಿದ್ದಾನೆ. ಔಟ್‌ಪುಟ್ ಒಳಗೊಂಡಿರುವ -/+ ಉತ್ಪಾದನಾ ಡೇಟಾಬೇಸ್‌ಗೆ ಬದಲಿ - AI ಬದಲಾಯಿಸಲಾಗದ ಕ್ಷೇತ್ರವನ್ನು ಬದಲಿಸಲು ಪ್ರಯತ್ನಿಸಿದೆ, ಅಂದರೆ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಅಳಿಸುವುದು ಮತ್ತು ಮರುಸೃಷ್ಟಿಸುವುದು. ಎಂಜಿನಿಯರ್ ಅರ್ಜಿಯನ್ನು ನಿಲ್ಲಿಸಿದರು ಮತ್ತು ಬದಲಾವಣೆಯನ್ನು ಸುರಕ್ಷಿತ ವಿಧಾನಕ್ಕೆ ಬದಲಾಯಿಸಿದರು. ಯೋಜನೆಯ ಅಭ್ಯಾಸವು ಅನಾಹುತವನ್ನು ತಡೆಯಿತು.

ಪ್ರಕರಣ 3 - ಸಮಾಧಿ ರಹಸ್ಯ ಸೋರಿಕೆ. ಜೂನಿಯರ್, YZ db_password = "S3cret!" ಅವರು ಲೈನ್ ಅನ್ನು ಹಾಗೆಯೇ ಒಪ್ಪಿಸಿದರು ಮತ್ತು ಅದನ್ನು ತಳ್ಳಿದರು. ಕೋಡ್ ಪರಿಶೀಲನೆಯಲ್ಲಿ ಸಿಕ್ಕಿಬಿದ್ದಿದೆ; ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ತಕ್ಷಣವೇ ರದ್ದುಗೊಳಿಸಲಾಯಿತು ಮತ್ತು ಬದಲಾಯಿಸಲಾಯಿತು, ಮೌಲ್ಯವನ್ನು ವೇರಿಯಬಲ್ಗೆ ಸರಿಸಲಾಗಿದೆ ಮತ್ತು ರಹಸ್ಯ ವಾಲ್ಟ್ನಿಂದ ನೀಡಲಾಯಿತು. ಪಾಠ: HCL ನಲ್ಲಿ ಎಂದಿಗೂ ಸರಳ ಪಠ್ಯ ರಹಸ್ಯಗಳಿಲ್ಲ.

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

1) ಮೂಲಸೌಕರ್ಯ ಕರಡು ರಚಿಸುವುದು:

ಟೆರಾಫಾರ್ಮ್ (ಆವೃತ್ತಿ ~> 1.7) ನೊಂದಿಗೆ [CLOUD: AWS] ನಲ್ಲಿ ಈ ಕೆಳಗಿನ ಮೂಲಸೌಕರ್ಯವನ್ನು ಬರೆಯಿರಿ: [ಮೂಲ ಪಟ್ಟಿ]. ಪ್ರದೇಶ [X]. ನಿಯಮಗಳು:- ಎಲ್ಲಾ ಸೂಕ್ಷ್ಮ ಮೌಲ್ಯಗಳನ್ನು ವೇರಿಯಬಲ್ ಮಾಡಿ, ಅವುಗಳನ್ನು HCL ನಲ್ಲಿ ಎಂಬೆಡ್ ಮಾಡಬೇಡಿ.- ಒದಗಿಸುವವರ ಆವೃತ್ತಿಯನ್ನು ಸರಿಪಡಿಸಿ (required_providers).- IAM ಅನುಮತಿಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಿ, "*" ಅನ್ನು ಬಳಸಬೇಡಿ.- [X, Y] ಅನ್ನು ಔಟ್‌ಪುಟ್ ಆಗಿ ಹಿಂತಿರುಗಿ. ಕೋಡ್ ಅನ್ನು ಮಾಡ್ಯುಲರ್ ಆಗಿ ಮತ್ತು ವಿವರಣೆಗಳೊಂದಿಗೆ ನೀಡಿ.

2) ಯೋಜನೆಯ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಅರ್ಥೈಸುವುದು:

ಕೆಳಗಿನ 'ಟೆರಾಫಾರ್ಮ್ ಯೋಜನೆ' ಔಟ್‌ಪುಟ್ ಅನ್ನು ವಿಶ್ಲೇಷಿಸಿ. ನನ್ನನ್ನು ಪಟ್ಟಿ ಮಾಡಿ:(1) ಯಾವ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ/ಬದಲಾಯಿಸಲಾಗಿದೆ/ಅಳಿಸಲಾಗಿದೆ,(2) ಡೇಟಾ ನಷ್ಟ ಅಥವಾ ಅಡಚಣೆಯ ಅಪಾಯದಲ್ಲಿರುವ ಸಾಲುಗಳು,(3) ಅರ್ಜಿ ಸಲ್ಲಿಸುವ ಮೊದಲು ನಾನು ಕೇಳಬೇಕಾದ 3 ಪ್ರಶ್ನೆಗಳು. ಯೋಜನೆ: [ಔಟ್‌ಪುಟ್]

3) ಭದ್ರತೆಗಾಗಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ HCL ಅನ್ನು ಪರೀಕ್ಷಿಸಿ:

ಭದ್ರತೆಗಾಗಿ ಕೆಳಗಿನ ಟೆರ್ರಾಫಾರ್ಮ್ ಕೋಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ: ಎಂಬೆಡೆಡ್ ರಹಸ್ಯ, ಅತಿಯಾದ ವಿಶಾಲವಾದ IAM ಅನುಮತಿ, ತೆರೆದ ನೆಟ್‌ವರ್ಕ್ ನಿಯಮ (0.0.0.0/0), ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡದ ಸಂಗ್ರಹಣೆ? ಪ್ರತಿ ಸಂಶೋಧನೆಯನ್ನು ಪ್ರಾಮುಖ್ಯತೆ ಮತ್ತು ತಿದ್ದುಪಡಿಯ ಕ್ರಮದಲ್ಲಿ ಬರೆಯಿರಿ. ಕೋಡ್: [HCL]

4) ಪುನರಾವರ್ತಿತ ಕೋಡ್ ಅನ್ನು ಮಾಡ್ಯೂಲ್‌ಗೆ ಪರಿವರ್ತಿಸಿ:

ಕೆಳಗಿನ ಪುನರಾವರ್ತಿತ ಟೆರಾಫಾರ್ಮ್ ಕೋಡ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡ್ಯೂಲ್ ಆಗಿ ಪರಿವರ್ತಿಸಿ: ಯಾವ ಮೌಲ್ಯಗಳು ವೇರಿಯಬಲ್ ಆಗಿರಬೇಕು, ಮಾಡ್ಯೂಲ್ ಇಂಟರ್ಫೇಸ್ ಏನಾಗಿರಬೇಕು? ಉದಾಹರಣೆ ಬಳಕೆಯನ್ನು ಸಹ ತೋರಿಸಿ. ಕೋಡ್: [HCL]

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

ದುರ್ಬಲ: "ಟೆರಾಫಾರ್ಮ್ನೊಂದಿಗೆ ಡೇಟಾಬೇಸ್ ರಚಿಸಿ."

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

ಪ್ರಬಲ: "ಟೆರಾಫಾರ್ಮ್ ~> 1.7 ನೊಂದಿಗೆ AWS ನಲ್ಲಿ RDS PostgreSQL 15 ನಿದರ್ಶನವನ್ನು ರಚಿಸಿ. ಪಾಸ್‌ವರ್ಡ್ ವೇರಿಯಬಲ್ ಮಾಡಿ, ಕೋಡ್‌ನಲ್ಲಿ ಎಂಬೆಡ್ ಮಾಡಬೇಡಿ. ಸಂಗ್ರಹಣೆಯನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗಿದೆ, ಖಾಸಗಿ ಸಬ್‌ನೆಟ್‌ನಿಂದ ಮಾತ್ರ ಪ್ರವೇಶಿಸಬಹುದು, ಸಾರ್ವಜನಿಕವಲ್ಲ. ಒದಗಿಸುವವರ ಆವೃತ್ತಿಯನ್ನು ಸರಿಪಡಿಸಿ. ಅಂತಿಮ ಬಿಂದುವನ್ನು ಔಟ್‌ಪುಟ್ ಆಗಿ ಹಿಂತಿರುಗಿಸಿ."

ವ್ಯತ್ಯಾಸ: ಎರಡನೇ ಪ್ರಾಂಪ್ಟ್ ಎಂಜಿನ್, ಆವೃತ್ತಿ, ಎನ್‌ಕ್ರಿಪ್ಶನ್, ನೆಟ್‌ವರ್ಕ್ ನಿರ್ಬಂಧ ಮತ್ತು ರಹಸ್ಯ ನಿಯಮವನ್ನು ನೀಡುತ್ತದೆ - ಔಟ್‌ಪುಟ್ ಸುರಕ್ಷಿತವಾಗಿದೆ ಮತ್ತು ಪ್ರಾಡ್‌ಗೆ ಹತ್ತಿರದಲ್ಲಿದೆ.

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

  • `ಯೋಜನೆ` ಮಾಡದೆ `ಅನ್ವಯಿಸಲು`. IaC ನಲ್ಲಿ ಅತ್ಯಂತ ದುಬಾರಿ ತಪ್ಪು; ಯಾವಾಗಲೂ ಮೊದಲು ಯೋಜಿಸಿ.
  • HCL ನಲ್ಲಿ ಎಂಬೆಡಿಂಗ್ ಸೀಕ್ರೆಟ್. Git ಇತಿಹಾಸದಲ್ಲಿ ಶಾಶ್ವತ ಸೋರಿಕೆಯನ್ನು ರಚಿಸುತ್ತದೆ.
  • ರಾಜ್ಯವನ್ನು ಅಸುರಕ್ಷಿತವಾಗಿ ಸಂಗ್ರಹಿಸುವುದು. ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡದ, ಅನ್‌ಲಾಕ್ ಮಾಡದ, ಸಾರ್ವಜನಿಕ ಸ್ಥಿತಿಯು ವಿಪತ್ತು.
  • ಆವೃತ್ತಿಯನ್ನು ಸರಿಪಡಿಸುತ್ತಿಲ್ಲ. ಆವೃತ್ತಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದೆ ಒದಗಿಸುವವರನ್ನು ಬಳಸುವುದು ಭವಿಷ್ಯದಲ್ಲಿ ಹಠಾತ್ ವೈಫಲ್ಯಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತದೆ.
  • *`ಕ್ರಿಯೆ: ""` ನಂತಹ ವಿಶಾಲ ಅನುಮತಿ.** ಕನಿಷ್ಠ ಸವಲತ್ತು ತತ್ವವನ್ನು ಉಲ್ಲಂಘಿಸುತ್ತದೆ.
  • ಅನಿರೀಕ್ಷಿತ `ನಾಶ~ವನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತಿದೆ. ಪ್ರಶ್ನಿಸದೆಯೇ ಯೋಜನೆಯಲ್ಲಿ ಅಳಿಸುವ ಸಾಲುಗಳನ್ನು ಅನ್ವಯಿಸುವುದು.

ಸಾರಾಂಶದಲ್ಲಿ

IaC ಮೂಲಸೌಕರ್ಯವನ್ನು ಪುನರಾವರ್ತಿಸಬಹುದಾದ, ಆವೃತ್ತಿ ಮಾಡಬಹುದಾದ ಮತ್ತು ಆಡಿಟ್ ಮಾಡಬಹುದಾದ ಕೋಡ್ ಆಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ; ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ಸಾಧನವೆಂದರೆ ಟೆರಾಫಾರ್ಮ್. AI ತ್ವರಿತವಾಗಿ HCL ಸ್ಟಬ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ, ಆದರೆ ನೀವು ಆವೃತ್ತಿ, ಕ್ಲೌಡ್-ನಿರ್ದಿಷ್ಟ ವಿವರಗಳು ಮತ್ತು ಭದ್ರತಾ ನಿಯಮಗಳನ್ನು ಒದಗಿಸಬೇಕು. ಟೆರ್ರಾಫಾರ್ಮ್‌ನಲ್ಲಿ ತಪ್ಪಾಗದ ನಿಯಮ: ಯೋಜನೆಯೊಂದಿಗೆ ಪ್ರತಿ ಬದಲಾವಣೆಯನ್ನು ನೋಡಲು, ಅನಿರೀಕ್ಷಿತ ಅಳಿಸುವಿಕೆಗಳನ್ನು ಪ್ರಶ್ನಿಸಲು, ಕೋಡ್‌ನಿಂದ ರಹಸ್ಯಗಳನ್ನು ದೂರವಿಡಲು ಮತ್ತು ರಾಜ್ಯವನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸಲು. ಪ್ಲಾನ್ ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿನ ನಾಶ ಮತ್ತು ಬದಲಿ ಸಾಲುಗಳು ಅತ್ಯಂತ ಎಚ್ಚರಿಕೆಯಿಂದ ಓದಬೇಕಾದ ಸ್ಥಳಗಳಾಗಿವೆ.

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

ಮೇಲಿನ "ಮೂಲಸೌಕರ್ಯ ಸ್ಕೆಚ್ ಅನ್ನು ರಚಿಸಿ" ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು AI ಒಂದು ಸಣ್ಣ ಮೂಲಸೌಕರ್ಯವನ್ನು (ಉದಾಹರಣೆಗೆ ಶೇಖರಣಾ ಬಕೆಟ್ ಮತ್ತು ಪ್ರವೇಶ ನೀತಿ) ಉತ್ಪಾದಿಸುವಂತೆ ಮಾಡಿ. ನಂತರ: (1) ಕೋಡ್‌ನಲ್ಲಿ ರಹಸ್ಯ ಅಥವಾ * ಅನುಮತಿಗಳಿಗಾಗಿ "ಪರಿಶೀಲನೆ" ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ; (2) ಸಾಧ್ಯವಾದರೆ, ಪರೀಕ್ಷಾ ಖಾತೆಯಲ್ಲಿ init + ಯೋಜನೆಯನ್ನು ರನ್ ಮಾಡಿ ಮತ್ತು "ಯೋಜನೆ ವ್ಯಾಖ್ಯಾನ" ಟೆಂಪ್ಲೇಟ್‌ನೊಂದಿಗೆ ಪ್ಲಾನ್ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಓದಿ; (3) ಯಾವುದೇ ಅನಿರೀಕ್ಷಿತ ಅಳಿಸುವಿಕೆಗಳು/ಬದಲಾವಣೆಗಳನ್ನು ಗಮನಿಸಿ.

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

  • [ ] ನಾನು ಕ್ಲೌಡ್, ಟೆರಾಫಾರ್ಮ್/ಪ್ರೊವೈಡರ್ ಆವೃತ್ತಿ, ಮತ್ತು ಎನ್‌ಕ್ರಿಪ್ಶನ್/ನೆಟ್‌ವರ್ಕ್ ನಿರ್ಬಂಧಗಳನ್ನು ನನ್ನ ಪ್ರಾಂಪ್ಟ್‌ಗೆ ಸೇರಿಸಿದೆ.
  • [ ] ಕೋಡ್‌ನಲ್ಲಿ ಯಾವುದೇ ಸರಳ ಪಠ್ಯ ರಹಸ್ಯವಿಲ್ಲ; ನಿಖರವಾದ ಮೌಲ್ಯಗಳು ವೇರಿಯಬಲ್.
  • [ ] ನಾನು IAM/ಅನುಮತಿಗಳನ್ನು ಕನಿಷ್ಠ ಅನುಮತಿಗಳಿಗೆ ಸಂಕುಚಿತಗೊಳಿಸಿದ್ದೇನೆ, * ನಾನು ಅದನ್ನು ಬಳಸಲಿಲ್ಲ.
  • [ ] ನಾನು ಅನ್ವಯಿಸುವ ಮೊದಲು ಯೋಜನೆಯನ್ನು ರನ್ ಮಾಡಿದ್ದೇನೆ ಮತ್ತು ಔಟ್‌ಪುಟ್ ಲೈನ್ ಅನ್ನು ಸಾಲಿನ ಮೂಲಕ ಓದುತ್ತೇನೆ.
  • [ ] ಯೋಜನೆಯಲ್ಲಿ ಯಾವುದೇ ಅನಿರೀಕ್ಷಿತ ನಾಶ/ಬದಲಿ ಇಲ್ಲ ಎಂದು ನಾನು ಪರಿಶೀಲಿಸಿದ್ದೇನೆ.
  • [ ] ರಾಜ್ಯವನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ, ಲಾಕ್ ಮಾಡಲಾದ ಮತ್ತು ನಿರ್ಬಂಧಿತ ಬ್ಯಾಕೆಂಡ್‌ನಲ್ಲಿ ಇರಿಸಲಾಗಿದೆ ಎಂದು ನನಗೆ ಖಾತ್ರಿಯಿದೆ.