ಟೆರಾಫಾರ್ಮ್‌ನಿಂದ ಕ್ಲೌಡ್ ಫಾರ್ಮೇಶನ್‌ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ - ಮತ್ತು ವಿಷಾದಿಸಿದೆ

ಪುನರಾವರ್ತಿತ ಪಠ್ಯ ಸ್ವರೂಪದಲ್ಲಿ ಮೂಲಸೌಕರ್ಯವನ್ನು ಸಂಕೇತವಾಗಿ ಪ್ರತಿನಿಧಿಸುವುದು ಇಲಿಗಳೊಂದಿಗೆ ಪಿಟೀಲು ಅಗತ್ಯವಿಲ್ಲದ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಸರಳವಾದ ಉತ್ತಮ ಅಭ್ಯಾಸವಾಗಿದೆ. ಈ ಅಭ್ಯಾಸವು ಒಂದು ಹೆಸರನ್ನು ಹೊಂದಿದೆ - ಕೋಡ್ ಆಗಿ ಮೂಲಸೌಕರ್ಯ, ಮತ್ತು ಇಲ್ಲಿಯವರೆಗೆ ಇದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಎರಡು ಜನಪ್ರಿಯ ಪರಿಕರಗಳಿವೆ, ವಿಶೇಷವಾಗಿ AWS ನಲ್ಲಿ: ಟೆರಾಫಾರ್ಮ್ и ಮೇಘ ರಚನೆ.

ಟೆರಾಫಾರ್ಮ್‌ನಿಂದ ಕ್ಲೌಡ್ ಫಾರ್ಮೇಶನ್‌ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ - ಮತ್ತು ವಿಷಾದಿಸಿದೆ
ಅನುಭವವನ್ನು ಟೆರಾಫಾರ್ಮ್ ಮತ್ತು ಕ್ಲೌಡ್ ಫಾರ್ಮೇಶನ್‌ನೊಂದಿಗೆ ಹೋಲಿಸುವುದು

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

ಟೆರಾಫಾರ್ಮ್ ಭಯಾನಕ

ಬೀಟಾ ಸಾಫ್ಟ್‌ವೇರ್

ಟೆರ್ರಾಫಾರ್ಮ್ ಇನ್ನೂ ಆವೃತ್ತಿ 1.0 ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿಲ್ಲ, ಇದು ಅದನ್ನು ಬಳಸದಿರಲು ಉತ್ತಮ ಕಾರಣವಾಗಿದೆ. ನಾನು ಅದನ್ನು ಮೊದಲು ಪ್ರಯತ್ನಿಸಿದಾಗಿನಿಂದ ಇದು ಬಹಳಷ್ಟು ಬದಲಾಗಿದೆ, ಆದರೆ ನಂತರ terraform apply ಹಲವಾರು ನವೀಕರಣಗಳ ನಂತರ ಅಥವಾ ಒಂದೆರಡು ವರ್ಷಗಳ ಬಳಕೆಯ ನಂತರ ಸಾಮಾನ್ಯವಾಗಿ ಮುರಿದುಹೋಗುತ್ತದೆ. "ಈಗ ಎಲ್ಲವೂ ವಿಭಿನ್ನವಾಗಿದೆ" ಎಂದು ನಾನು ಹೇಳುತ್ತೇನೆ ಆದರೆ ... ಎಲ್ಲರೂ ಹೇಳುವಂತೆ ತೋರುತ್ತದೆ, ಇಲ್ಲವೇ? ಹಿಂದಿನ ಆವೃತ್ತಿಗಳೊಂದಿಗೆ ಹೊಂದಿಕೆಯಾಗದ ಬದಲಾವಣೆಗಳಿವೆ, ಆದರೂ ಅವು ಸೂಕ್ತವಾಗಿವೆ, ಮತ್ತು ಸಂಪನ್ಮೂಲ ಮಳಿಗೆಗಳ ಸಿಂಟ್ಯಾಕ್ಸ್ ಮತ್ತು ಅಮೂರ್ತತೆಗಳು ಈಗ ನಮಗೆ ಬೇಕಾಗಿವೆ ಎಂದು ಭಾಸವಾಗುತ್ತದೆ. ಉಪಕರಣವು ನಿಜವಾಗಿಯೂ ಉತ್ತಮವಾಗಿದೆ ಎಂದು ತೋರುತ್ತದೆ, ಆದರೆ... :-0

ಮತ್ತೊಂದೆಡೆ, AWS ಹಿಂದುಳಿದ ಹೊಂದಾಣಿಕೆಯನ್ನು ನಿರ್ವಹಿಸುವಲ್ಲಿ ಉತ್ತಮ ಕೆಲಸವನ್ನು ಮಾಡಿದೆ. ಬಹುಶಃ ಅವರ ಸೇವೆಗಳನ್ನು ಸಂಸ್ಥೆಯೊಳಗೆ ಸಂಪೂರ್ಣವಾಗಿ ಪರೀಕ್ಷಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಂತರ ಮಾತ್ರ ಮರುಹೆಸರಿಸಲಾಗುತ್ತದೆ, ಪ್ರಕಟಿಸಲಾಗುತ್ತದೆ. ಆದ್ದರಿಂದ "ಅವರು ಕಷ್ಟಪಟ್ಟು ಪ್ರಯತ್ನಿಸಿದರು" ಎಂಬುದು ತಗ್ಗುನುಡಿಯಾಗಿದೆ. AWS ನಂತೆ ವೈವಿಧ್ಯಮಯ ಮತ್ತು ಸಂಕೀರ್ಣವಾದ ವ್ಯವಸ್ಥೆಗಾಗಿ API ಗಳೊಂದಿಗೆ ಹಿಂದುಳಿದ ಹೊಂದಾಣಿಕೆಯನ್ನು ನಿರ್ವಹಿಸುವುದು ನಂಬಲಾಗದಷ್ಟು ಕಷ್ಟ. ಸಾರ್ವಜನಿಕ API ಗಳನ್ನು ಎಷ್ಟು ವ್ಯಾಪಕವಾಗಿ ಬಳಸಲಾಗುತ್ತದೋ ಅದನ್ನು ನಿರ್ವಹಿಸಬೇಕಾದ ಯಾರಾದರೂ ಇಷ್ಟು ವರ್ಷಗಳವರೆಗೆ ಅದನ್ನು ಮಾಡುವುದು ಎಷ್ಟು ಕಷ್ಟ ಎಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕು. ಆದರೆ ನನ್ನ ಸ್ಮರಣೆಯಲ್ಲಿ ಕ್ಲೌಡ್‌ಫಾರ್ಮ್‌ನ ನಡವಳಿಕೆಯು ವರ್ಷಗಳಲ್ಲಿ ಎಂದಿಗೂ ಬದಲಾಗಿಲ್ಲ.

ಲೆಗ್ ಮೀಟ್... ಇದು ಬುಲೆಟ್

ನನಗೆ ತಿಳಿದಿರುವಂತೆ, ಸಂಪನ್ಮೂಲವನ್ನು ಅಳಿಸಿ ಹೊರಗಿನವನು ನಿಮ್ಮ CF ಸ್ಟಾಕ್‌ನಿಂದ CloudFormation ಸ್ಟಾಕ್ ಸಾಧ್ಯವಿಲ್ಲ. ಟೆರ್ರಾಫಾರ್ಮ್‌ನ ವಿಷಯದಲ್ಲೂ ಇದು ನಿಜ. ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಂಪನ್ಮೂಲಗಳನ್ನು ನಿಮ್ಮ ಸ್ಟಾಕ್‌ಗೆ ಆಮದು ಮಾಡಿಕೊಳ್ಳಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಕಾರ್ಯವು ಅದ್ಭುತವಾಗಿದೆ ಎಂದು ಹೇಳಬಹುದು, ಆದರೆ ಹೆಚ್ಚಿನ ಶಕ್ತಿಯೊಂದಿಗೆ ದೊಡ್ಡ ಜವಾಬ್ದಾರಿ ಬರುತ್ತದೆ. ನೀವು ಸ್ಟಾಕ್‌ಗೆ ಸಂಪನ್ಮೂಲವನ್ನು ಸೇರಿಸಬೇಕಾಗಿದೆ ಮತ್ತು ನಿಮ್ಮ ಸ್ಟಾಕ್‌ನೊಂದಿಗೆ ನೀವು ಕೆಲಸ ಮಾಡುತ್ತಿರುವಾಗ, ನೀವು ಈ ಸಂಪನ್ಮೂಲವನ್ನು ಅಳಿಸಲು ಅಥವಾ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಒಂದು ದಿನ ಅದು ಹಿನ್ನಡೆಯಾಯಿತು. ಒಂದು ದಿನ ಟ್ವಿಚ್‌ನಲ್ಲಿ, ಯಾರೋ ಆಕಸ್ಮಿಕವಾಗಿ ಬೇರೊಬ್ಬರ AWS ಭದ್ರತಾ ಗುಂಪನ್ನು ತಮ್ಮದೇ ಆದ ಟೆರಾಫಾರ್ಮ್ ಸ್ಟಾಕ್‌ಗೆ ಆಮದು ಮಾಡಿಕೊಂಡರು. ನಾನು ಹಲವಾರು ಆಜ್ಞೆಗಳನ್ನು ನಮೂದಿಸಿದೆ ಮತ್ತು ... ಭದ್ರತಾ ಗುಂಪು (ಒಳಬರುವ ಟ್ರಾಫಿಕ್ ಜೊತೆಗೆ) ಕಣ್ಮರೆಯಾಯಿತು.

ಟೆರಾಫಾರ್ಮ್ ಗ್ರೇಟ್

ಅಪೂರ್ಣ ಸ್ಥಿತಿಗಳಿಂದ ಚೇತರಿಕೆ

ಕೆಲವೊಮ್ಮೆ ಕ್ಲೌಡ್ ಫಾರ್ಮೇಶನ್ ಒಂದು ರಾಜ್ಯದಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಸಂಪೂರ್ಣವಾಗಿ ಪರಿವರ್ತನೆಗೊಳ್ಳಲು ವಿಫಲಗೊಳ್ಳುತ್ತದೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, ಅವನು ಹಿಂದಿನದಕ್ಕೆ ಮರಳಲು ಪ್ರಯತ್ನಿಸುತ್ತಾನೆ. ಇದು ಯಾವಾಗಲೂ ಕಾರ್ಯಸಾಧ್ಯವಲ್ಲ ಎಂಬುದು ವಿಷಾದದ ಸಂಗತಿ. ನಂತರ ಏನಾಯಿತು ಎಂಬುದನ್ನು ಡೀಬಗ್ ಮಾಡಲು ಇದು ತುಂಬಾ ಭಯಾನಕವಾಗಿದೆ - ಕ್ಲೌಡ್ ಫಾರ್ಮೇಶನ್ ಹ್ಯಾಕ್ ಆಗುತ್ತಿದೆ ಎಂದು ನಿಮಗೆ ತಿಳಿದಿರುವುದಿಲ್ಲ - ಅದನ್ನು ಸರಿಪಡಿಸಲು ಸಹ. ಹಿಂದಿನ ಸ್ಥಿತಿಗೆ ಮರಳಲು ಸಾಧ್ಯವೋ ಇಲ್ಲವೋ, ಅವನು ನಿಜವಾಗಿಯೂ ಹೇಗೆ ನಿರ್ಧರಿಸಬೇಕು ಎಂದು ತಿಳಿದಿಲ್ಲ ಮತ್ತು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಪವಾಡಕ್ಕಾಗಿ ಗಂಟೆಗಳವರೆಗೆ ಕಾಯುತ್ತಾನೆ.

ಟೆರಾಫಾರ್ಮ್, ಮತ್ತೊಂದೆಡೆ, ವಿಫಲವಾದ ಪರಿವರ್ತನೆಗಳಿಂದ ಹೆಚ್ಚು ಆಕರ್ಷಕವಾಗಿ ಚೇತರಿಸಿಕೊಳ್ಳಲು ಒಲವು ತೋರುತ್ತದೆ ಮತ್ತು ಸುಧಾರಿತ ಡೀಬಗ್ ಮಾಡುವ ಸಾಧನಗಳನ್ನು ನೀಡುತ್ತದೆ.

ಡಾಕ್ಯುಮೆಂಟ್ ಸ್ಥಿತಿಗೆ ಸ್ಪಷ್ಟವಾದ ಬದಲಾವಣೆಗಳು

“ಸರಿ, ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್, ನೀವು ಬದಲಾಯಿಸುತ್ತಿದ್ದೀರಿ. ಮತ್ತೆ ಹೇಗೆ?"

—ಆತಂಕಿತ ಇಂಜಿನಿಯರ್, “ಸ್ವೀಕರಿಸಿ” ಬಟನ್ ಒತ್ತಲು ಸಿದ್ಧ.

ಕೆಲವೊಮ್ಮೆ ನಾನು ಕ್ಲೌಡ್‌ಫಾರ್ಮೇಶನ್ ಸ್ಟಾಕ್‌ನಲ್ಲಿ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್‌ನೊಂದಿಗೆ ಕೆಲವು ಮ್ಯಾನಿಪ್ಯುಲೇಷನ್‌ಗಳನ್ನು ಮಾಡಬೇಕಾಗಿದೆ, ಉದಾಹರಣೆಗೆ ಪೋರ್ಟ್ ಸಂಖ್ಯೆಯನ್ನು ಸೇರಿಸುವುದು ಅಥವಾ ಭದ್ರತಾ ಗುಂಪನ್ನು ಬದಲಾಯಿಸುವುದು. ಕ್ಲೌಫಾರ್ಮೇಶನ್ ಬದಲಾವಣೆಗಳನ್ನು ಕಳಪೆಯಾಗಿ ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ನಾನು, ಪಿನ್‌ಗಳು ಮತ್ತು ಸೂಜಿಗಳ ಮೇಲೆ, ನಾನು ಅಗತ್ಯವಿರುವ ಯಾವುದನ್ನೂ ಅಳಿಸಿಲ್ಲ ಮತ್ತು ಅನಗತ್ಯವಾಗಿ ಏನನ್ನೂ ಸೇರಿಸಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು yaml ಫೈಲ್ ಅನ್ನು ಹತ್ತು ಬಾರಿ ಎರಡು ಬಾರಿ ಪರಿಶೀಲಿಸಿ.

ಈ ನಿಟ್ಟಿನಲ್ಲಿ ಟೆರಾಫಾರ್ಮ್ ಹೆಚ್ಚು ಪಾರದರ್ಶಕವಾಗಿದೆ. ಕೆಲವೊಮ್ಮೆ ಅವನು ತುಂಬಾ ಪಾರದರ್ಶಕವಾಗಿರುತ್ತಾನೆ (ಓದಿ: ನೀರಸ). ಅದೃಷ್ಟವಶಾತ್, ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಯು ಬದಲಾವಣೆಗಳ ಸುಧಾರಿತ ಪ್ರದರ್ಶನವನ್ನು ಒಳಗೊಂಡಿದೆ ಇದರಿಂದ ನೀವು ಈಗ ನಿಖರವಾಗಿ ಏನು ಬದಲಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ನೋಡಬಹುದು.

ಹೊಂದಿಕೊಳ್ಳುವಿಕೆ

ಸಾಫ್ಟ್ವೇರ್ ಅನ್ನು ಹಿಂದಕ್ಕೆ ಬರೆಯಿರಿ.

ನೇರವಾಗಿ ಹೇಳುವುದಾದರೆ, ದೀರ್ಘಕಾಲೀನ ಸಾಫ್ಟ್‌ವೇರ್‌ನ ಪ್ರಮುಖ ಲಕ್ಷಣವೆಂದರೆ ಬದಲಾವಣೆಗೆ ಹೊಂದಿಕೊಳ್ಳುವ ಸಾಮರ್ಥ್ಯ. ಯಾವುದೇ ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ಹಿಂದಕ್ಕೆ ಬರೆಯಿರಿ. ಹೆಚ್ಚಾಗಿ ನಾನು "ಸರಳ" ಸೇವೆಯನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ಮೂಲಕ ತಪ್ಪುಗಳನ್ನು ಮಾಡಿದ್ದೇನೆ ಮತ್ತು ನಂತರ ಎಲ್ಲವನ್ನೂ ಒಂದೇ ಕ್ಲೌಡ್ ಫಾರ್ಮೇಷನ್ ಅಥವಾ ಟೆರಾಫಾರ್ಮ್ ಸ್ಟಾಕ್‌ಗೆ ಕ್ರ್ಯಾಮ್ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿದೆ. ಮತ್ತು ಸಹಜವಾಗಿ, ತಿಂಗಳುಗಳ ನಂತರ ನಾನು ಎಲ್ಲವನ್ನೂ ತಪ್ಪಾಗಿ ಅರ್ಥಮಾಡಿಕೊಂಡಿದ್ದೇನೆ ಮತ್ತು ಸೇವೆಯು ಸರಳವಾಗಿಲ್ಲ ಎಂದು ತಿಳಿದುಬಂದಿದೆ! ಮತ್ತು ಈಗ ನಾನು ಹೇಗಾದರೂ ದೊಡ್ಡ ಸ್ಟಾಕ್ ಅನ್ನು ಸಣ್ಣ ಘಟಕಗಳಾಗಿ ಮುರಿಯಬೇಕಾಗಿದೆ. ನೀವು CloudFormation ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ, ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸ್ಟಾಕ್ ಅನ್ನು ಮೊದಲು ಮರುಸೃಷ್ಟಿಸುವ ಮೂಲಕ ಮಾತ್ರ ಇದನ್ನು ಮಾಡಬಹುದು ಮತ್ತು ನನ್ನ ಡೇಟಾಬೇಸ್‌ಗಳೊಂದಿಗೆ ನಾನು ಇದನ್ನು ಮಾಡುವುದಿಲ್ಲ. ಮತ್ತೊಂದೆಡೆ, ಟೆರಾಫಾರ್ಮ್, ಸ್ಟಾಕ್ ಅನ್ನು ವಿಭಜಿಸಲು ಮತ್ತು ಅದನ್ನು ಹೆಚ್ಚು ಅರ್ಥವಾಗುವ ಸಣ್ಣ ಭಾಗಗಳಾಗಿ ವಿಭಜಿಸಲು ಸಾಧ್ಯವಾಗಿಸಿತು.

git ನಲ್ಲಿ ಮಾಡ್ಯೂಲ್‌ಗಳು

ಕ್ಲೌಡ್ ಫಾರ್ಮೇಶನ್ ಕೋಡ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದಕ್ಕಿಂತ ಬಹು ಸ್ಟ್ಯಾಕ್‌ಗಳಲ್ಲಿ ಟೆರಾಫಾರ್ಮ್ ಕೋಡ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದು ತುಂಬಾ ಸುಲಭ. Terraform ನೊಂದಿಗೆ, ನೀವು ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು git ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಇರಿಸಬಹುದು ಮತ್ತು ಶಬ್ದಾರ್ಥದ ಆವೃತ್ತಿ ನಿಯಂತ್ರಣವನ್ನು ಬಳಸಿಕೊಂಡು ಅದನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ಈ ರೆಪೊಸಿಟರಿಗೆ ಪ್ರವೇಶ ಹೊಂದಿರುವ ಯಾರಾದರೂ ಹಂಚಿದ ಕೋಡ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡಬಹುದು. CloudFormation ನ ಸಮಾನತೆಯು S3 ಆಗಿದೆ, ಆದರೆ ಇದು ಒಂದೇ ರೀತಿಯ ಪ್ರಯೋಜನಗಳನ್ನು ಹೊಂದಿಲ್ಲ ಮತ್ತು S3 ಪರವಾಗಿ ನಾವು git ಅನ್ನು ತ್ಯಜಿಸಲು ಯಾವುದೇ ಕಾರಣವಿಲ್ಲ.

ಸಂಸ್ಥೆಯು ಬೆಳೆಯಿತು ಮತ್ತು ಸಾಮಾನ್ಯ ರಾಶಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳುವ ಸಾಮರ್ಥ್ಯವು ನಿರ್ಣಾಯಕ ಮಟ್ಟವನ್ನು ತಲುಪಿತು. ಟೆರಾಫಾರ್ಮ್ ಇದೆಲ್ಲವನ್ನೂ ಸುಲಭ ಮತ್ತು ನೈಸರ್ಗಿಕವಾಗಿಸುತ್ತದೆ, ಆದರೆ ಕ್ಲೌಡ್ ಫಾರ್ಮೇಶನ್ ನೀವು ಈ ರೀತಿಯ ಕೆಲಸವನ್ನು ಪಡೆಯುವ ಮೊದಲು ಹೂಪ್‌ಗಳ ಮೂಲಕ ಜಿಗಿಯುವಂತೆ ಮಾಡುತ್ತದೆ.

ಕೋಡ್ ಆಗಿ ಕಾರ್ಯಾಚರಣೆಗಳು

"ಅದನ್ನು ಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡೋಣ ಮತ್ತು ಸರಿ."

- ಟೆರಾಫಾರ್ಮ್ ಬೈಸಿಕಲ್ ಅನ್ನು ಆವಿಷ್ಕರಿಸುವ 3 ವರ್ಷಗಳ ಮೊದಲು ಎಂಜಿನಿಯರ್.

ಸಾಫ್ಟ್‌ವೇರ್ ಅಭಿವೃದ್ಧಿಗೆ ಬಂದಾಗ, ಗೋ ಅಥವಾ ಜಾವಾ ಪ್ರೋಗ್ರಾಂ ಕೇವಲ ಕೋಡ್ ಅಲ್ಲ.

ಟೆರಾಫಾರ್ಮ್‌ನಿಂದ ಕ್ಲೌಡ್ ಫಾರ್ಮೇಶನ್‌ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ - ಮತ್ತು ವಿಷಾದಿಸಿದೆ
ಕೋಡ್ ಕೋಡ್ ಆಗಿ

ಇದು ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಮೂಲಸೌಕರ್ಯವೂ ಇದೆ.

ಟೆರಾಫಾರ್ಮ್‌ನಿಂದ ಕ್ಲೌಡ್ ಫಾರ್ಮೇಶನ್‌ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ - ಮತ್ತು ವಿಷಾದಿಸಿದೆ
ಕೋಡ್ ಆಗಿ ಮೂಲಸೌಕರ್ಯ

ಆದರೆ ಅವಳು ಎಲ್ಲಿಂದ ಬಂದವಳು? ಅದನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವುದು ಹೇಗೆ? ನಿಮ್ಮ ಕೋಡ್ ಎಲ್ಲಿ ವಾಸಿಸುತ್ತದೆ? ಡೆವಲಪರ್‌ಗಳಿಗೆ ಪ್ರವೇಶ ಅನುಮತಿ ಅಗತ್ಯವಿದೆಯೇ?

ಟೆರಾಫಾರ್ಮ್‌ನಿಂದ ಕ್ಲೌಡ್ ಫಾರ್ಮೇಶನ್‌ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ - ಮತ್ತು ವಿಷಾದಿಸಿದೆ
ಕೋಡ್ ಆಗಿ ಕಾರ್ಯಾಚರಣೆಗಳು

ಸಾಫ್ಟ್‌ವೇರ್ ಡೆವಲಪರ್ ಆಗಿರುವುದು ಕೇವಲ ಕೋಡ್ ಬರೆಯುವುದು ಎಂದರ್ಥವಲ್ಲ.

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

ನಾನು ಟ್ವಿಚ್‌ನಲ್ಲಿ ಕೆಲಸ ಮಾಡಿದಾಗ, ನಾವು Amazon ನ ಮಿಶ್ರ ಎಂಬೆಡೆಡ್ ಮತ್ತು AWS ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ಸೇವೆಗಳನ್ನು ವೇಗಗೊಳಿಸಿದ್ದೇವೆ. ಕಾರ್ಯಾಚರಣೆಯ ವೆಚ್ಚವನ್ನು ಹೆಚ್ಚಿಸುವ ಮೂಲಕ ನಾವು ಅನೇಕ ಮೈಕ್ರೋ ಸರ್ವೀಸ್‌ಗಳನ್ನು ಮಂಥನ ಮಾಡಿದ್ದೇವೆ ಮತ್ತು ಬೆಂಬಲಿಸಿದ್ದೇವೆ. ಚರ್ಚೆಗಳು ಈ ರೀತಿ ನಡೆದವು:

  • Я: ಡ್ಯಾಮ್, ಇದು ಒಂದು ಮೈಕ್ರೋ ಸರ್ವೀಸ್ ಅನ್ನು ಓವರ್‌ಲಾಕ್ ಮಾಡಲು ಸಾಕಷ್ಟು ಸನ್ನೆಗಳು. AWS ಖಾತೆಯನ್ನು ರಚಿಸಲು ನಾನು ಈ ಕಸವನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ (ನಾವು 2 ಖಾತೆಗಳಿಗೆ ಹೋಗಿದ್ದೇವೆ ಸೂಕ್ಷ್ಮ ಸೇವೆ), ನಂತರ ಇದು ಎಚ್ಚರಿಕೆಗಳನ್ನು ಹೊಂದಿಸಲು, ಕೋಡ್ ರೆಪೊಸಿಟರಿಗಾಗಿ ಮತ್ತು ಇಮೇಲ್ ಪಟ್ಟಿಗಾಗಿ, ಮತ್ತು ನಂತರ ಇದು...
  • ಲೀಡ್: ಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡೋಣ ಮತ್ತು ಸರಿ.
  • Я: ಸರಿ, ಆದರೆ ಸ್ಕ್ರಿಪ್ಟ್ ಸ್ವತಃ ಬದಲಾಗುತ್ತದೆ. ಈ ಎಲ್ಲಾ ಅಂತರ್ನಿರ್ಮಿತ ಅಮೆಜಾನ್ ಗಿಜ್ಮೊಗಳು ನವೀಕೃತವಾಗಿವೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಲು ನಮಗೆ ಒಂದು ಮಾರ್ಗದ ಅಗತ್ಯವಿದೆ.
  • ಲೀಡ್: ಚೆನ್ನಾಗಿದೆ. ಮತ್ತು ಇದಕ್ಕಾಗಿ ನಾವು ಸ್ಕ್ರಿಪ್ಟ್ ಬರೆಯುತ್ತೇವೆ.
  • Я: ಕುವೆಂಪು! ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್ ಬಹುಶಃ ಇನ್ನೂ ನಿಯತಾಂಕಗಳನ್ನು ಹೊಂದಿಸುವ ಅಗತ್ಯವಿದೆ. ಅವನು ಅವರನ್ನು ಸ್ವೀಕರಿಸುತ್ತಾನೆಯೇ?
  • ಲೀಡ್: ಅವನು ಹೋಗುವ ಸ್ಥಳವನ್ನು ಅವನು ತೆಗೆದುಕೊಳ್ಳಲಿ!
  • Я: ಪ್ರಕ್ರಿಯೆಯು ಬದಲಾಗಬಹುದು ಮತ್ತು ಹಿಂದುಳಿದ ಹೊಂದಾಣಿಕೆಯು ಕಳೆದುಹೋಗುತ್ತದೆ. ಕೆಲವು ರೀತಿಯ ಲಾಕ್ಷಣಿಕ ಆವೃತ್ತಿ ನಿಯಂತ್ರಣದ ಅಗತ್ಯವಿದೆ.
  • ಲೀಡ್: ಉತ್ತಮ ಉಪಾಯ!
  • Я: ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ ಒಳಗೆ ಪರಿಕರಗಳನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಬದಲಾಯಿಸಬಹುದು. ಇದನ್ನು ಪರಿಶೀಲಿಸಲು ಮತ್ತು ಸರಿಪಡಿಸಲು ನಮಗೆ ಒಂದು ಮಾರ್ಗದ ಅಗತ್ಯವಿದೆ.

3 ವರ್ಷಗಳ ನಂತರ:

  • ಲೀಡ್: ಮತ್ತು ನಾವು ಟೆರಾಫಾರ್ಮ್ ಅನ್ನು ಪಡೆದುಕೊಂಡಿದ್ದೇವೆ.

ಕಥೆಯ ನೈತಿಕತೆ: ನೀವು ಸಹ ಅಮೆಜಾನ್‌ನ ಎಲ್ಲದರಲ್ಲೂ ತಲೆಕೆಟ್ಟು, ನೀವು ಇನ್ನೂ AWS ನಿಂದ ಅಲ್ಲದ ಯಾವುದನ್ನಾದರೂ ಬಳಸುತ್ತಿರುವಿರಿ, ಮತ್ತು ಈ ಸೇವೆಗಳು ಆ ಸ್ಥಿತಿಯನ್ನು ಸಿಂಕ್‌ನಲ್ಲಿ ಇರಿಸಲು ಕಾನ್ಫಿಗರೇಶನ್ ಭಾಷೆಯನ್ನು ಬಳಸುವ ಸ್ಥಿತಿಯನ್ನು ಹೊಂದಿವೆ.

CloudFormation lambda vs git ಮಾಡ್ಯೂಲ್ ಟೆರಾಫಾರ್ಮ್

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

ಕ್ಲಾಸಿಕ್ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್‌ನೊಂದಿಗೆ ಎಲಾಸ್ಟಿಕ್ ಬೀನ್‌ಸ್ಟಾಕ್ ಪರಿಸರಕ್ಕಾಗಿ ಕ್ಯಾನರಿ ನಿಯೋಜನೆಯನ್ನು ರಚಿಸಲು ನಾನು ಒಮ್ಮೆ ಬಯಸಿದ್ದೇನೆ ಎಂದು ನನಗೆ ನೆನಪಿದೆ. ಉತ್ಪಾದನಾ ಪರಿಸರದ ಪಕ್ಕದಲ್ಲಿ EB ಗಾಗಿ ಎರಡನೇ ನಿಯೋಜನೆಯನ್ನು ಮಾಡುವುದು ಸುಲಭವಾದ ವಿಷಯವಾಗಿದೆ, ಅದನ್ನು ಒಂದು ಹೆಜ್ಜೆ ಮುಂದೆ ತೆಗೆದುಕೊಳ್ಳುವುದು: ಸ್ವಯಂ-ಸ್ಕೇಲಿಂಗ್ ಕ್ಯಾನರಿ ನಿಯೋಜನೆ ಗುಂಪನ್ನು ನಿಯೋಜನೆ LB ಯೊಂದಿಗೆ ಉತ್ಪಾದನಾ ಪರಿಸರಕ್ಕೆ ಸಂಯೋಜಿಸುವುದು. ಮತ್ತು ಟೆರ್ರಾಫಾರ್ಮ್ ಬಳಸುವುದರಿಂದ ASG beantalk ಒಂದು ತೀರ್ಮಾನವಾಗಿ, ಇದಕ್ಕೆ ಟೆರಾಫಾರ್ಮ್‌ನಲ್ಲಿ 4 ಹೆಚ್ಚುವರಿ ಸಾಲುಗಳ ಕೋಡ್ ಅಗತ್ಯವಿರುತ್ತದೆ. ಕ್ಲೌಡ್‌ಫಾರ್ಮೇಶನ್‌ನಲ್ಲಿ ಹೋಲಿಸಬಹುದಾದ ಪರಿಹಾರವಿದೆಯೇ ಎಂದು ನಾನು ಕೇಳಿದಾಗ, ಅವರು ನಿಯೋಜನೆ ಪೈಪ್‌ಲೈನ್ ಮತ್ತು ಎಲ್ಲವನ್ನೂ ಹೊಂದಿರುವ ಸಂಪೂರ್ಣ ಜಿಟ್ ರೆಪೊಸಿಟರಿಯನ್ನು ನನಗೆ ತೋರಿಸಿದರು, ಎಲ್ಲವೂ ಕಳಪೆ 4 ಟೆರಾಫಾರ್ಮ್ ಕೋಡ್ ಮಾಡಬಹುದಾದ ಯಾವುದೋ ಸಲುವಾಗಿ.

ಇದು ಡ್ರಿಫ್ಟ್ ಅನ್ನು ಉತ್ತಮವಾಗಿ ಪತ್ತೆ ಮಾಡುತ್ತದೆ

ರಿಯಾಲಿಟಿ ನಿರೀಕ್ಷೆಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.

ಡ್ರಿಫ್ಟ್ ಪತ್ತೆ ರಿಯಾಲಿಟಿ ನಿರೀಕ್ಷೆಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಇದು ಕೋಡ್ ವೈಶಿಷ್ಟ್ಯವಾಗಿ ಅತ್ಯಂತ ಶಕ್ತಿಯುತ ಕಾರ್ಯಾಚರಣೆಯಾಗಿದೆ. ಇದು CloudFormation ಮತ್ತು Terraform ಎರಡರಲ್ಲೂ ಲಭ್ಯವಿದೆ. ಆದರೆ ಪ್ರೊಡಕ್ಷನ್ ಸ್ಟಾಕ್ ಬೆಳೆದಂತೆ, ಕ್ಲೌಡ್ ಫಾರ್ಮೇಶನ್‌ನಲ್ಲಿ ಡ್ರಿಫ್ಟ್ ಅನ್ನು ಹುಡುಕುವುದು ಹೆಚ್ಚು ಹೆಚ್ಚು ತಪ್ಪು ಪತ್ತೆಗಳನ್ನು ಉಂಟುಮಾಡಿತು.

ಟೆರ್ರಾಫಾರ್ಮ್‌ನೊಂದಿಗೆ ನೀವು ಡ್ರಿಫ್ಟ್ ಪತ್ತೆಗಾಗಿ ಹೆಚ್ಚು ಸುಧಾರಿತ ಜೀವನಚಕ್ರದ ಕೊಕ್ಕೆಗಳನ್ನು ಹೊಂದಿದ್ದೀರಿ. ಉದಾಹರಣೆಗೆ, ನೀವು ಆಜ್ಞೆಯನ್ನು ನಮೂದಿಸಿ ನಿರ್ಲಕ್ಷಿಸಿ_ಬದಲಾವಣೆಗಳು ನಿಮ್ಮ ಸಂಪೂರ್ಣ ಇಸಿಎಸ್ ನಿಯೋಜನೆಗೆ ಬದಲಾವಣೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸದೆ ನಿರ್ದಿಷ್ಟ ಕಾರ್ಯದ ವ್ಯಾಖ್ಯಾನಕ್ಕೆ ಬದಲಾವಣೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲು ನೀವು ಬಯಸಿದರೆ ನೇರವಾಗಿ ಇಸಿಎಸ್ ಕಾರ್ಯ ವ್ಯಾಖ್ಯಾನದಲ್ಲಿ.

ಸಿಡಿಕೆ ಮತ್ತು ಕ್ಲೌಡ್ ಫಾರ್ಮೇಶನ್‌ನ ಭವಿಷ್ಯ

ಕ್ಲೌಡ್ ಫಾರ್ಮೇಶನ್ ಅನ್ನು ದೊಡ್ಡದಾದ, ಅಡ್ಡ-ಮೂಲಸೌಕರ್ಯ ಮಾಪಕಗಳಲ್ಲಿ ನಿರ್ವಹಿಸುವುದು ಕಷ್ಟ. ಈ ಅನೇಕ ತೊಂದರೆಗಳನ್ನು ಗುರುತಿಸಲಾಗಿದೆ ಮತ್ತು ಉಪಕರಣಕ್ಕೆ ಅಂತಹ ವಿಷಯಗಳ ಅಗತ್ಯವಿದೆ aws-cdk, ಕೋಡ್‌ನಲ್ಲಿ ಕ್ಲೌಡ್ ಮೂಲಸೌಕರ್ಯವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಮತ್ತು ಅದನ್ನು AWS CloudFormation ಮೂಲಕ ಚಲಾಯಿಸಲು ಒಂದು ಚೌಕಟ್ಟು. aws-cdk ಗಾಗಿ ಭವಿಷ್ಯವು ಏನನ್ನು ಹೊಂದಿದೆ ಎಂಬುದನ್ನು ನೋಡಲು ಆಸಕ್ತಿದಾಯಕವಾಗಿದೆ, ಆದರೆ Terraform ನ ಇತರ ಸಾಮರ್ಥ್ಯಗಳೊಂದಿಗೆ ಸ್ಪರ್ಧಿಸಲು ಇದು ಕಷ್ಟಕರ ಸಮಯವನ್ನು ಹೊಂದಿರುತ್ತದೆ; CloudFormation ಅನ್ನು ನವೀಕೃತವಾಗಿ ತರಲು, ಜಾಗತಿಕ ಬದಲಾವಣೆಗಳ ಅಗತ್ಯವಿದೆ.

ಆದ್ದರಿಂದ ಟೆರ್ರಾಫಾರ್ಮ್ ನಿರಾಶೆಗೊಳ್ಳುವುದಿಲ್ಲ

ಇದು "ಒಂದು ಕೋಡ್ ಆಗಿ ಮೂಲಸೌಕರ್ಯ", ಮತ್ತು "ಪಠ್ಯವಾಗಿ" ಅಲ್ಲ.

ಟೆರಾಫಾರ್ಮ್ ಬಗ್ಗೆ ನನ್ನ ಮೊದಲ ಅನಿಸಿಕೆ ಕೆಟ್ಟದಾಗಿತ್ತು. ನಾನು ವಿಧಾನವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲಿಲ್ಲ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ. ಬಹುತೇಕ ಎಲ್ಲಾ ಇಂಜಿನಿಯರ್‌ಗಳು ಅಪೇಕ್ಷಿತ ಮೂಲಸೌಕರ್ಯವಾಗಿ ಪರಿವರ್ತಿಸಬೇಕಾದ ಪಠ್ಯ ಸ್ವರೂಪವೆಂದು ಅನೈಚ್ಛಿಕವಾಗಿ ಗ್ರಹಿಸುತ್ತಾರೆ. ಇದನ್ನು ಈ ರೀತಿಯಲ್ಲಿ ಮಾಡಬೇಡಿ.

ಉತ್ತಮ ಸಾಫ್ಟ್‌ವೇರ್ ಅಭಿವೃದ್ಧಿಯ ಸತ್ಯಗಳು ಟೆರಾಫಾರ್ಮ್‌ಗೆ ಸಹ ಅನ್ವಯಿಸುತ್ತವೆ.

ನಾನು ಉತ್ತಮ ಕೋಡ್ ರಚಿಸಲು ಅಳವಡಿಸಿಕೊಂಡ ಅನೇಕ ಅಭ್ಯಾಸಗಳನ್ನು ಟೆರಾಫಾರ್ಮ್‌ನಲ್ಲಿ ನಿರ್ಲಕ್ಷಿಸಿರುವುದನ್ನು ನೋಡಿದ್ದೇನೆ. ನೀವು ಉತ್ತಮ ಪ್ರೋಗ್ರಾಮರ್ ಆಗಲು ವರ್ಷಗಳ ಕಾಲ ಅಧ್ಯಯನ ಮಾಡಿದ್ದೀರಿ. ನೀವು ಟೆರ್ರಾಫಾರ್ಮ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತಿರುವುದರಿಂದ ಈ ಅನುಭವವನ್ನು ಬಿಟ್ಟುಕೊಡಬೇಡಿ. ಉತ್ತಮ ಸಾಫ್ಟ್‌ವೇರ್ ಅಭಿವೃದ್ಧಿಯ ಸತ್ಯಗಳು ಟೆರಾಫಾರ್ಮ್‌ಗೆ ಅನ್ವಯಿಸುತ್ತವೆ.

ಕೋಡ್ ಅನ್ನು ಹೇಗೆ ದಾಖಲಿಸಲಾಗುವುದಿಲ್ಲ?

ನಾನು ಯಾವುದೇ ದಾಖಲಾತಿಗಳಿಲ್ಲದ ಬೃಹತ್ ಟೆರಾಫಾರ್ಮ್ ಸ್ಟ್ಯಾಕ್‌ಗಳನ್ನು ನೋಡಿದ್ದೇನೆ. ಯಾವುದೇ ದಾಖಲೆಗಳಿಲ್ಲದೆ - ಪುಟಗಳಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ನೀವು ಹೇಗೆ ಬರೆಯಬಹುದು? ನಿಮ್ಮದನ್ನು ವಿವರಿಸುವ ದಸ್ತಾವೇಜನ್ನು ಸೇರಿಸಿ ಕೋಡ್ ಟೆರಾಫಾರ್ಮ್ ("ಕೋಡ್" ಪದದ ಮೇಲೆ ಒತ್ತು), ಈ ವಿಭಾಗವು ಏಕೆ ತುಂಬಾ ಮುಖ್ಯವಾಗಿದೆ ಮತ್ತು ನೀವು ಏನು ಮಾಡುತ್ತೀರಿ.

ಒಮ್ಮೆ ಒಂದು ದೊಡ್ಡ ಮುಖ್ಯ() ಕಾರ್ಯವಾಗಿದ್ದ ಸೇವೆಗಳನ್ನು ನಾವು ಹೇಗೆ ನಿಯೋಜಿಸಬಹುದು?

ಒಂದೇ ಮಾಡ್ಯೂಲ್ ಆಗಿ ಪ್ರಸ್ತುತಪಡಿಸಲಾದ ಅತ್ಯಂತ ಸಂಕೀರ್ಣವಾದ ಟೆರಾಫಾರ್ಮ್ ಸ್ಟ್ಯಾಕ್‌ಗಳನ್ನು ನಾನು ನೋಡಿದ್ದೇನೆ. ನಾವು ಈ ರೀತಿಯಲ್ಲಿ ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ಏಕೆ ನಿಯೋಜಿಸಬಾರದು? ನಾವು ದೊಡ್ಡ ಕಾರ್ಯಗಳನ್ನು ಚಿಕ್ಕದಾಗಿ ಏಕೆ ವಿಭಜಿಸುತ್ತೇವೆ? ಅದೇ ಉತ್ತರಗಳು ಟೆರಾಫಾರ್ಮ್‌ಗೆ ಅನ್ವಯಿಸುತ್ತವೆ. ನಿಮ್ಮ ಮಾಡ್ಯೂಲ್ ತುಂಬಾ ದೊಡ್ಡದಾಗಿದ್ದರೆ, ನೀವು ಅದನ್ನು ಸಣ್ಣ ಮಾಡ್ಯೂಲ್‌ಗಳಾಗಿ ವಿಭಜಿಸಬೇಕು.

ನಿಮ್ಮ ಕಂಪನಿಯು ಗ್ರಂಥಾಲಯಗಳನ್ನು ಬಳಸುವುದಿಲ್ಲವೇ?

ಎಂಜಿನಿಯರ್‌ಗಳು, ಟೆರ್ರಾಫಾರ್ಮ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಹೊಸ ಯೋಜನೆಯನ್ನು ಹೇಗೆ ತಿರುಗಿಸುತ್ತಾರೆ, ಇತರ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಿಂದ ದೊಡ್ಡ ತುಂಡುಗಳನ್ನು ಮೂರ್ಖತನದಿಂದ ಕಾಪಿ-ಪೇಸ್ಟ್ ಮಾಡುತ್ತಾರೆ ಮತ್ತು ಅದು ಕೆಲಸ ಮಾಡಲು ಪ್ರಾರಂಭಿಸುವವರೆಗೆ ಅವರೊಂದಿಗೆ ಹೇಗೆ ಟಿಂಕರ್ ಮಾಡುತ್ತಾರೆ ಎಂಬುದನ್ನು ನಾನು ನೋಡಿದ್ದೇನೆ. ನಿಮ್ಮ ಕಂಪನಿಯಲ್ಲಿ "ಯುದ್ಧ" ಕೋಡ್‌ನೊಂದಿಗೆ ನೀವು ಈ ರೀತಿ ಕೆಲಸ ಮಾಡುತ್ತೀರಾ? ನಾವು ಕೇವಲ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಬಳಸುವುದಿಲ್ಲ. ಹೌದು, ಎಲ್ಲವೂ ಗ್ರಂಥಾಲಯವಾಗಬೇಕಿಲ್ಲ ಆದರೆ ತಾತ್ವಿಕವಾಗಿ ಹಂಚಿಕೆಯ ಗ್ರಂಥಾಲಯಗಳಿಲ್ಲದೆ ನಾವು ಎಲ್ಲಿದ್ದೇವೆ?!

ನೀವು PEP8 ಅಥವಾ gofmt ಅನ್ನು ಬಳಸುತ್ತಿಲ್ಲವೇ?

ಹೆಚ್ಚಿನ ಭಾಷೆಗಳು ಪ್ರಮಾಣಿತ, ಸ್ವೀಕೃತ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಯೋಜನೆಯನ್ನು ಹೊಂದಿವೆ. ಪೈಥಾನ್‌ನಲ್ಲಿ ಇದು PEP8 ಆಗಿದೆ. Go - gofmt ನಲ್ಲಿ. ಟೆರಾಫಾರ್ಮ್ ತನ್ನದೇ ಆದ ಹೊಂದಿದೆ: terraform fmt. ನಿಮ್ಮ ಆರೋಗ್ಯಕ್ಕಾಗಿ ಅದನ್ನು ಆನಂದಿಸಿ!

JavaScript ತಿಳಿಯದೆ ನೀವು React ಬಳಸುತ್ತೀರಾ?

ಟೆರಾಫಾರ್ಮ್ ಮಾಡ್ಯೂಲ್‌ಗಳು ನೀವು ರಚಿಸುವ ಸಂಕೀರ್ಣ ಮೂಲಸೌಕರ್ಯದ ಕೆಲವು ಭಾಗವನ್ನು ಸರಳಗೊಳಿಸಬಹುದು, ಆದರೆ ಇದರರ್ಥ ನೀವು ಅದರೊಂದಿಗೆ ಟಿಂಕರ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ ಎಂದು ಅರ್ಥವಲ್ಲ. ಸಂಪನ್ಮೂಲಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳದೆ ಟೆರಾಫಾರ್ಮ್ ಅನ್ನು ಸರಿಯಾಗಿ ಬಳಸಲು ಬಯಸುವಿರಾ? ನೀವು ಅವನತಿ ಹೊಂದಿದ್ದೀರಿ: ಸಮಯ ಹಾದುಹೋಗುತ್ತದೆ ಮತ್ತು ನೀವು ಎಂದಿಗೂ ಟೆರ್ರಾಫಾರ್ಮ್ ಅನ್ನು ಕರಗತ ಮಾಡಿಕೊಳ್ಳುವುದಿಲ್ಲ.

ನೀವು ಸಿಂಗಲ್‌ಟನ್‌ಗಳು ಅಥವಾ ಅವಲಂಬನೆ ಇಂಜೆಕ್ಷನ್‌ನೊಂದಿಗೆ ಕೋಡಿಂಗ್ ಮಾಡುತ್ತಿದ್ದೀರಾ?

ಅವಲಂಬನೆ ಇಂಜೆಕ್ಷನ್ ಸಾಫ್ಟ್‌ವೇರ್ ಅಭಿವೃದ್ಧಿಗೆ ಮಾನ್ಯತೆ ಪಡೆದ ಉತ್ತಮ ಅಭ್ಯಾಸವಾಗಿದೆ ಮತ್ತು ಸಿಂಗಲ್‌ಟನ್‌ಗಳಿಗಿಂತ ಆದ್ಯತೆ ನೀಡಲಾಗುತ್ತದೆ. ಟೆರಾಫಾರ್ಮ್‌ನಲ್ಲಿ ಇದು ಹೇಗೆ ಉಪಯುಕ್ತವಾಗಿದೆ? ನಾನು ದೂರಸ್ಥ ಸ್ಥಿತಿಯನ್ನು ಅವಲಂಬಿಸಿರುವ ಟೆರಾಫಾರ್ಮ್ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ನೋಡಿದ್ದೇನೆ. ರಿಮೋಟ್ ಸ್ಟೇಟ್ ಅನ್ನು ಹಿಂಪಡೆಯುವ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಬರೆಯುವ ಬದಲು, ನಿಯತಾಂಕಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಬರೆಯಿರಿ. ತದನಂತರ ಈ ನಿಯತಾಂಕಗಳನ್ನು ಮಾಡ್ಯೂಲ್ಗೆ ರವಾನಿಸಿ.

ನಿಮ್ಮ ಲೈಬ್ರರಿಗಳು ಹತ್ತು ಕೆಲಸಗಳನ್ನು ಚೆನ್ನಾಗಿ ಮಾಡುತ್ತವೆಯೇ ಅಥವಾ ಒಂದು ವಿಷಯ ಉತ್ತಮವಾಗಿದೆಯೇ?

ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಗ್ರಂಥಾಲಯಗಳು ಅವರು ಉತ್ತಮವಾಗಿ ಮಾಡುವ ಒಂದು ಕಾರ್ಯದ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತವೆ. ಎಲ್ಲವನ್ನೂ ಒಂದೇ ಬಾರಿಗೆ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುವ ದೊಡ್ಡ ಟೆರಾಫಾರ್ಮ್ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಬರೆಯುವ ಬದಲು, ಒಂದು ಕೆಲಸವನ್ನು ಉತ್ತಮವಾಗಿ ಮಾಡುವ ಭಾಗಗಳನ್ನು ನಿರ್ಮಿಸಿ. ತದನಂತರ ಅವುಗಳನ್ನು ಅಗತ್ಯವಿರುವಂತೆ ಸಂಯೋಜಿಸಿ.

ಹಿಂದುಳಿದ ಹೊಂದಾಣಿಕೆಯಿಲ್ಲದೆ ನೀವು ಗ್ರಂಥಾಲಯಗಳಿಗೆ ಹೇಗೆ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡುತ್ತೀರಿ?

ಸಾಮಾನ್ಯ ಲೈಬ್ರರಿಯಂತಹ ಸಾಮಾನ್ಯ ಟೆರಾಫಾರ್ಮ್ ಮಾಡ್ಯೂಲ್, ಹಿಮ್ಮುಖ ಹೊಂದಾಣಿಕೆಯಿಲ್ಲದೆ ಹೇಗಾದರೂ ಬಳಕೆದಾರರಿಗೆ ಬದಲಾವಣೆಗಳನ್ನು ಸಂವಹನ ಮಾಡುವ ಅಗತ್ಯವಿದೆ. ಲೈಬ್ರರಿಗಳಲ್ಲಿ ಈ ಬದಲಾವಣೆಗಳು ಸಂಭವಿಸಿದಾಗ ಇದು ಕಿರಿಕಿರಿಯುಂಟುಮಾಡುತ್ತದೆ ಮತ್ತು ಟೆರಾಫಾರ್ಮ್ ಮಾಡ್ಯೂಲ್‌ಗಳಲ್ಲಿ ಹಿಂದುಳಿದ-ಹೊಂದಾಣಿಕೆಯಿಲ್ಲದ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಿದಾಗ ಅದು ಕಿರಿಕಿರಿಯುಂಟುಮಾಡುತ್ತದೆ. ಟೆರಾಫಾರ್ಮ್ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಬಳಸುವಾಗ ಜಿಟ್ ಟ್ಯಾಗ್‌ಗಳು ಮತ್ತು ಸೆಮ್ವರ್ ಅನ್ನು ಬಳಸಲು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ.

ನಿಮ್ಮ ಉತ್ಪಾದನಾ ಸೇವೆಯು ನಿಮ್ಮ ಲ್ಯಾಪ್‌ಟಾಪ್‌ನಲ್ಲಿ ಅಥವಾ ಡೇಟಾ ಕೇಂದ್ರದಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿದೆಯೇ?

Hashicorp ರೀತಿಯ ಉಪಕರಣಗಳನ್ನು ಹೊಂದಿದೆ ಟೆರಾಫಾರ್ಮ್ ಮೋಡ ನಿಮ್ಮ ಟೆರಾಫಾರ್ಮ್ ಅನ್ನು ಚಲಾಯಿಸಲು. ಈ ಕೇಂದ್ರೀಕೃತ ಸೇವೆಗಳು ಟೆರಾಫಾರ್ಮ್ ಬದಲಾವಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು, ಆಡಿಟ್ ಮಾಡಲು ಮತ್ತು ಅನುಮೋದಿಸಲು ಸುಲಭಗೊಳಿಸುತ್ತದೆ.

ನೀವು ಪರೀಕ್ಷೆಗಳನ್ನು ಬರೆಯುವುದಿಲ್ಲವೇ?

ಇಂಜಿನಿಯರ್‌ಗಳು ಕೋಡ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಬೇಕಾಗಿದೆ ಎಂದು ಗುರುತಿಸುತ್ತಾರೆ, ಆದರೆ ಟೆರ್ರಾಫಾರ್ಮ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ಅವರು ಸ್ವತಃ ಪರೀಕ್ಷೆಯನ್ನು ಮರೆತುಬಿಡುತ್ತಾರೆ. ಮೂಲಸೌಕರ್ಯಕ್ಕಾಗಿ, ಇದು ವಿಶ್ವಾಸಘಾತುಕ ಕ್ಷಣಗಳಿಂದ ತುಂಬಿದೆ. CI/CD ಸಮಯದಲ್ಲಿ ಪರೀಕ್ಷೆಗಾಗಿ ಸರಿಯಾಗಿ ನಿಯೋಜಿಸಬಹುದಾದ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸ್ಟ್ಯಾಕ್‌ಗಳನ್ನು "ಪರೀಕ್ಷೆ" ಅಥವಾ "ಉದಾಹರಣೆಗೆ ರಚಿಸಿ" ಎಂಬುದು ನನ್ನ ಸಲಹೆಯಾಗಿದೆ.

ಟೆರಾಫಾರ್ಮ್ ಮತ್ತು ಮೈಕ್ರೋ ಸರ್ವೀಸ್

ಮೈಕ್ರೋ ಸರ್ವೀಸ್ ಕಂಪನಿಗಳ ಜೀವನ ಮತ್ತು ಸಾವು ಹೊಸ ಮೈಕ್ರೋ ಸರ್ವೀಸ್ ವರ್ಕ್‌ಸ್ಟ್ಯಾಕ್‌ಗಳ ವೇಗ, ನಾವೀನ್ಯತೆ ಮತ್ತು ಅಡ್ಡಿಪಡಿಸುವಿಕೆಯನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ.

ಮೈಕ್ರೊ ಸರ್ವೀಸ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಅತ್ಯಂತ ಸಾಮಾನ್ಯವಾದ ನಕಾರಾತ್ಮಕ ಅಂಶವು ಮತ್ತು ಅದನ್ನು ತೊಡೆದುಹಾಕಲು ಸಾಧ್ಯವಿಲ್ಲ, ಇದು ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದೆ, ಕೋಡ್ ಅಲ್ಲ. ಮೈಕ್ರೊ ಸರ್ವೀಸ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ನ ಮೂಲಸೌಕರ್ಯ ಭಾಗವನ್ನು ಮಾತ್ರ ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಲು ಟೆರಾಫಾರ್ಮ್ ಒಂದು ಮಾರ್ಗವೆಂದು ನೀವು ಭಾವಿಸಿದರೆ, ಸಿಸ್ಟಮ್‌ನ ನಿಜವಾದ ಪ್ರಯೋಜನಗಳನ್ನು ನೀವು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ. ಈಗ ಅದು ಈಗಾಗಲೇ ಎಲ್ಲವೂ ಕೋಡ್‌ನಂತೆ.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ