Часть 1: Web / Android
ಹೇಳಿಕೆಯನ್ನು: ಈ ಲೇಖನವು ಮೂಲ ಲೇಖನದ ರಷ್ಯನ್ ಭಾಷೆಗೆ ಅನುವಾದವಾಗಿದೆ ಆದಾಗ್ಯೂ, ರಷ್ಯನ್ ಭಾಷೆಗೆ ಅನುವಾದಿಸಿದಾಗ ಅರ್ಥವನ್ನು ವಿರೂಪಗೊಳಿಸುವುದನ್ನು ತಪ್ಪಿಸಲು ಎಲ್ಲಾ ವಿವರಣೆಗಳು, ಲಿಂಕ್ಗಳು, ಉಲ್ಲೇಖಗಳು ಮತ್ತು ಪದಗಳನ್ನು ಮೂಲ ಭಾಷೆಯಲ್ಲಿ ಸಂರಕ್ಷಿಸಲಾಗಿದೆ. ನೀವು ಸಂತೋಷದಿಂದ ಅಧ್ಯಯನ ಮಾಡಬೇಕೆಂದು ನಾನು ಬಯಸುತ್ತೇನೆ!

ಪ್ರಸ್ತುತ, DevOps ವಿಶೇಷತೆಯು IT ಉದ್ಯಮದಲ್ಲಿ ಹೆಚ್ಚು ಬೇಡಿಕೆಯಲ್ಲಿ ಒಂದಾಗಿದೆ. ನೀವು ಜನಪ್ರಿಯ ಉದ್ಯೋಗ ಹುಡುಕಾಟ ಸೈಟ್ಗಳನ್ನು ತೆರೆದರೆ ಮತ್ತು ಸಂಬಳದ ಮೂಲಕ ಫಿಲ್ಟರ್ ಮಾಡಿದರೆ, DevOps-ಸಂಬಂಧಿತ ಉದ್ಯೋಗಗಳು ಪಟ್ಟಿಯ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಇರುವುದನ್ನು ನೀವು ನೋಡುತ್ತೀರಿ. ಆದಾಗ್ಯೂ, ಇದು ಮುಖ್ಯವಾಗಿ 'ಹಿರಿಯ' ಸ್ಥಾನವನ್ನು ಸೂಚಿಸುತ್ತದೆ ಎಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಮುಖ್ಯವಾಗಿದೆ, ಇದು ಅಭ್ಯರ್ಥಿಯು ಉನ್ನತ ಮಟ್ಟದ ಕೌಶಲ್ಯಗಳು, ತಂತ್ರಜ್ಞಾನ ಮತ್ತು ಸಾಧನಗಳ ಜ್ಞಾನವನ್ನು ಹೊಂದಿದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ. ಇದು ಉತ್ಪಾದನೆಯ ಅಡೆತಡೆಯಿಲ್ಲದ ಕಾರ್ಯಾಚರಣೆಗೆ ಸಂಬಂಧಿಸಿದ ಹೆಚ್ಚಿನ ಮಟ್ಟದ ಜವಾಬ್ದಾರಿಯೊಂದಿಗೆ ಬರುತ್ತದೆ. ಆದಾಗ್ಯೂ, DevOps ಎಂದರೇನು ಎಂಬುದನ್ನು ನಾವು ಮರೆಯಲು ಪ್ರಾರಂಭಿಸಿದ್ದೇವೆ. ಆರಂಭದಲ್ಲಿ, ಇದು ಯಾವುದೇ ನಿರ್ದಿಷ್ಟ ವ್ಯಕ್ತಿ ಅಥವಾ ಇಲಾಖೆಯಾಗಿರಲಿಲ್ಲ. ನಾವು ಈ ಪದದ ವ್ಯಾಖ್ಯಾನಗಳನ್ನು ಹುಡುಕಿದರೆ, ನಾವು ಹಲವಾರು ಸುಂದರವಾದ ಮತ್ತು ಸರಿಯಾದ ನಾಮಪದಗಳನ್ನು ಕಾಣಬಹುದು, ಉದಾಹರಣೆಗೆ ವಿಧಾನ, ಅಭ್ಯಾಸಗಳು, ಸಾಂಸ್ಕೃತಿಕ ತತ್ವಶಾಸ್ತ್ರ, ಪರಿಕಲ್ಪನೆಗಳ ಗುಂಪು, ಇತ್ಯಾದಿ.
ನನ್ನ ವಿಶೇಷತೆಯು ಪರೀಕ್ಷಾ ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಎಂಜಿನಿಯರ್ (QA ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಇಂಜಿನಿಯರ್), ಆದರೆ ಇದು ಸ್ವಯಂ-ಪರೀಕ್ಷೆಗಳನ್ನು ಬರೆಯುವುದರೊಂದಿಗೆ ಅಥವಾ ಪರೀಕ್ಷಾ ಚೌಕಟ್ಟಿನ ವಾಸ್ತುಶಿಲ್ಪವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವುದರೊಂದಿಗೆ ಮಾತ್ರ ಸಂಬಂಧಿಸಬಾರದು ಎಂದು ನಾನು ನಂಬುತ್ತೇನೆ. 2020 ರಲ್ಲಿ, ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಮೂಲಸೌಕರ್ಯದ ಜ್ಞಾನವೂ ಅತ್ಯಗತ್ಯ. ನಿಮ್ಮ ಗುರಿಗಳಿಗೆ ಅನುಗುಣವಾಗಿ ಎಲ್ಲಾ ಮಧ್ಯಸ್ಥಗಾರರಿಗೆ ಫಲಿತಾಂಶಗಳನ್ನು ಒದಗಿಸುವ ಪರೀಕ್ಷೆಗಳಿಂದ ಹಿಡಿದು ಸ್ವಯಂಚಾಲನ ಪ್ರಕ್ರಿಯೆಯನ್ನು ನೀವೇ ಸಂಘಟಿಸಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಪರಿಣಾಮವಾಗಿ, ಕೆಲಸವನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು DevOps ಕೌಶಲ್ಯಗಳು ಅತ್ಯಗತ್ಯವಾಗಿರುತ್ತದೆ. ಮತ್ತು ಇದೆಲ್ಲವೂ ಒಳ್ಳೆಯದು, ಆದರೆ, ದುರದೃಷ್ಟವಶಾತ್, ಸಮಸ್ಯೆ ಇದೆ (ಸ್ಪಾಯ್ಲರ್: ಈ ಲೇಖನವು ಈ ಸಮಸ್ಯೆಯನ್ನು ಸರಳಗೊಳಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ) ವಿಷಯವೆಂದರೆ DevOps ಕಷ್ಟ. ಮತ್ತು ಇದು ಸ್ಪಷ್ಟವಾಗಿದೆ, ಏಕೆಂದರೆ ಕಂಪನಿಗಳು ಮಾಡಲು ಸುಲಭವಾದ ಯಾವುದನ್ನಾದರೂ ಹೆಚ್ಚು ಪಾವತಿಸುವುದಿಲ್ಲ... DevOps ಜಗತ್ತಿನಲ್ಲಿ, ಮಾಸ್ಟರಿಂಗ್ ಮಾಡಬೇಕಾದ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಪರಿಕರಗಳು, ನಿಯಮಗಳು ಮತ್ತು ಅಭ್ಯಾಸಗಳಿವೆ. ವೃತ್ತಿಜೀವನದ ಆರಂಭದಲ್ಲಿ ಇದು ವಿಶೇಷವಾಗಿ ಕಷ್ಟಕರವಾಗಿದೆ ಮತ್ತು ಸಂಗ್ರಹವಾದ ತಾಂತ್ರಿಕ ಅನುಭವವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ.

ಮೂಲ:
ಇಲ್ಲಿ ನಾವು ಬಹುಶಃ ಪರಿಚಯಾತ್ಮಕ ಭಾಗದೊಂದಿಗೆ ಮುಗಿಸುತ್ತೇವೆ ಮತ್ತು ಈ ಲೇಖನದ ಉದ್ದೇಶವನ್ನು ಕೇಂದ್ರೀಕರಿಸುತ್ತೇವೆ.
ಈ ಲೇಖನ ಯಾವುದರ ಬಗ್ಗೆ?
ಈ ಲೇಖನದಲ್ಲಿ, ನಾನು ಪರೀಕ್ಷಾ ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಮೂಲಸೌಕರ್ಯವನ್ನು ನಿರ್ಮಿಸುವ ನನ್ನ ಅನುಭವವನ್ನು ಹಂಚಿಕೊಳ್ಳಲಿದ್ದೇನೆ. ವಿವಿಧ ಪರಿಕರಗಳು ಮತ್ತು ಅವುಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದರ ಕುರಿತು ಅಂತರ್ಜಾಲದಲ್ಲಿ ಮಾಹಿತಿಯ ಹಲವು ಮೂಲಗಳಿವೆ, ಆದರೆ ನಾನು ಅವುಗಳನ್ನು ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಸಂದರ್ಭದಲ್ಲಿ ಸಂಪೂರ್ಣವಾಗಿ ನೋಡಲು ಬಯಸುತ್ತೇನೆ. ನಿಮ್ಮನ್ನು ಹೊರತುಪಡಿಸಿ ಯಾರೂ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಪರೀಕ್ಷೆಗಳನ್ನು ನಡೆಸದಿದ್ದಾಗ ಅಥವಾ ಅವುಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಬಗ್ಗೆ ಕಾಳಜಿ ವಹಿಸದಿರುವಾಗ ಅನೇಕ ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಎಂಜಿನಿಯರ್ಗಳು ಪರಿಸ್ಥಿತಿಯೊಂದಿಗೆ ಪರಿಚಿತರಾಗಿದ್ದಾರೆ ಎಂದು ನಾನು ನಂಬುತ್ತೇನೆ. ಪರಿಣಾಮವಾಗಿ, ಪರೀಕ್ಷೆಗಳು ಹಳೆಯದಾಗಿವೆ ಮತ್ತು ಅವುಗಳನ್ನು ನವೀಕರಿಸಲು ನೀವು ಸಮಯವನ್ನು ಕಳೆಯಬೇಕಾಗುತ್ತದೆ. ಮತ್ತೊಮ್ಮೆ, ವೃತ್ತಿಜೀವನದ ಆರಂಭದಲ್ಲಿ, ಇದು ತುಂಬಾ ಕಷ್ಟಕರವಾದ ಕೆಲಸವಾಗಿದೆ: ನಿರ್ದಿಷ್ಟ ಸಮಸ್ಯೆಯನ್ನು ತೊಡೆದುಹಾಕಲು ಯಾವ ಸಾಧನಗಳು ಸಹಾಯ ಮಾಡಬೇಕೆಂದು ಬುದ್ಧಿವಂತಿಕೆಯಿಂದ ನಿರ್ಧರಿಸುವುದು, ಅವುಗಳನ್ನು ಹೇಗೆ ಆಯ್ಕೆ ಮಾಡುವುದು, ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು ಮತ್ತು ನಿರ್ವಹಿಸುವುದು. ಕೆಲವು ಪರೀಕ್ಷಕರು ಸಹಾಯಕ್ಕಾಗಿ DevOps (ಮಾನವರು) ಕಡೆಗೆ ತಿರುಗುತ್ತಾರೆ ಮತ್ತು ಪ್ರಾಮಾಣಿಕವಾಗಿರಲಿ, ಈ ವಿಧಾನವು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಅನೇಕ ಸಂದರ್ಭಗಳಲ್ಲಿ ಇದು ಏಕೈಕ ಆಯ್ಕೆಯಾಗಿರಬಹುದು ಏಕೆಂದರೆ ನಾವು ಎಲ್ಲಾ ಅವಲಂಬನೆಗಳಿಗೆ ಗೋಚರತೆಯನ್ನು ಹೊಂದಿಲ್ಲ. ಆದರೆ ನಮಗೆ ತಿಳಿದಿರುವಂತೆ, DevOps ತುಂಬಾ ಕಾರ್ಯನಿರತ ವ್ಯಕ್ತಿಗಳು, ಏಕೆಂದರೆ ಅವರು ಸಂಸ್ಥೆ/ತಂಡವನ್ನು ಅವಲಂಬಿಸಿ ಸಂಪೂರ್ಣ ಕಂಪನಿಯ ಮೂಲಸೌಕರ್ಯ, ನಿಯೋಜನೆ, ಮೇಲ್ವಿಚಾರಣೆ, ಸೂಕ್ಷ್ಮ ಸೇವೆಗಳು ಮತ್ತು ಇತರ ರೀತಿಯ ಕಾರ್ಯಗಳ ಬಗ್ಗೆ ಯೋಚಿಸಬೇಕು. ಸಾಮಾನ್ಯವಾಗಿ ಸಂಭವಿಸಿದಂತೆ, ಯಾಂತ್ರೀಕೃತಗೊಂಡವು ಆದ್ಯತೆಯಾಗಿಲ್ಲ. ಅಂತಹ ಸಂದರ್ಭದಲ್ಲಿ, ಮೊದಲಿನಿಂದ ಕೊನೆಯವರೆಗೆ ನಮ್ಮ ಕಡೆಯಿಂದ ಸಾಧ್ಯವಿರುವ ಎಲ್ಲವನ್ನೂ ಮಾಡಲು ನಾವು ಪ್ರಯತ್ನಿಸಬೇಕು. ಇದು ಅವಲಂಬನೆಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ, ಕೆಲಸದ ಹರಿವನ್ನು ವೇಗಗೊಳಿಸುತ್ತದೆ, ನಮ್ಮ ಕೌಶಲ್ಯಗಳನ್ನು ಸುಧಾರಿಸುತ್ತದೆ ಮತ್ತು ಏನಾಗುತ್ತಿದೆ ಎಂಬುದರ ದೊಡ್ಡ ಚಿತ್ರವನ್ನು ನೋಡಲು ನಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
ಲೇಖನವು ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಮತ್ತು ಜನಪ್ರಿಯ ಪರಿಕರಗಳನ್ನು ಪ್ರಸ್ತುತಪಡಿಸುತ್ತದೆ ಮತ್ತು ಹಂತ ಹಂತವಾಗಿ ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಮೂಲಸೌಕರ್ಯವನ್ನು ನಿರ್ಮಿಸಲು ಅವುಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ. ಪ್ರತಿಯೊಂದು ಗುಂಪನ್ನು ವೈಯಕ್ತಿಕ ಅನುಭವದ ಮೂಲಕ ಪರೀಕ್ಷಿಸಿದ ಸಾಧನಗಳಿಂದ ಪ್ರತಿನಿಧಿಸಲಾಗುತ್ತದೆ. ಆದರೆ ನೀವು ಅದೇ ವಿಷಯವನ್ನು ಬಳಸಬೇಕೆಂದು ಇದರ ಅರ್ಥವಲ್ಲ. ಉಪಕರಣಗಳು ಸ್ವತಃ ಮುಖ್ಯವಲ್ಲ, ಅವು ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ ಮತ್ತು ಬಳಕೆಯಲ್ಲಿಲ್ಲ. ನಮ್ಮ ಎಂಜಿನಿಯರಿಂಗ್ ಕಾರ್ಯವು ಮೂಲಭೂತ ತತ್ವಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು: ನಮಗೆ ಈ ಉಪಕರಣಗಳ ಗುಂಪು ಏಕೆ ಬೇಕು ಮತ್ತು ಅವರ ಸಹಾಯದಿಂದ ನಾವು ಯಾವ ಕೆಲಸದ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಬಹುದು. ಅದಕ್ಕಾಗಿಯೇ ಪ್ರತಿ ವಿಭಾಗದ ಕೊನೆಯಲ್ಲಿ ನಾನು ನಿಮ್ಮ ಸಂಸ್ಥೆಯಲ್ಲಿ ಬಳಸಬಹುದಾದ ಒಂದೇ ರೀತಿಯ ಪರಿಕರಗಳಿಗೆ ಲಿಂಕ್ಗಳನ್ನು ಬಿಡುತ್ತೇನೆ.
ಈ ಲೇಖನದಲ್ಲಿ ಏನಿಲ್ಲ
ಲೇಖನವು ನಿರ್ದಿಷ್ಟ ಪರಿಕರಗಳ ಬಗ್ಗೆ ಅಲ್ಲ ಎಂದು ನಾನು ಮತ್ತೊಮ್ಮೆ ಪುನರಾವರ್ತಿಸುತ್ತೇನೆ, ಆದ್ದರಿಂದ ನಿರ್ದಿಷ್ಟ ಆಜ್ಞೆಗಳ ದಸ್ತಾವೇಜನ್ನು ಮತ್ತು ವಿವರಣೆಗಳಿಂದ ಕೋಡ್ನ ಯಾವುದೇ ಒಳಸೇರಿಸುವಿಕೆಗಳು ಇರುವುದಿಲ್ಲ. ಆದರೆ ಪ್ರತಿ ವಿಭಾಗದ ಕೊನೆಯಲ್ಲಿ ನಾನು ವಿವರವಾದ ಅಧ್ಯಯನಕ್ಕಾಗಿ ಲಿಂಕ್ಗಳನ್ನು ಬಿಡುತ್ತೇನೆ.
ಇದನ್ನು ಮಾಡಲಾಗುತ್ತದೆ ಏಕೆಂದರೆ:
- ಈ ವಸ್ತುವನ್ನು ವಿವಿಧ ಮೂಲಗಳಲ್ಲಿ ಕಂಡುಹಿಡಿಯುವುದು ತುಂಬಾ ಸುಲಭ (ದಾಖಲೆಗಳು, ಪುಸ್ತಕಗಳು, ವೀಡಿಯೊ ಕೋರ್ಸ್ಗಳು);
- ನಾವು ಆಳವಾಗಿ ಹೋಗಲು ಪ್ರಾರಂಭಿಸಿದರೆ, ನಾವು ಈ ಲೇಖನದ 10, 20, 30 ಭಾಗಗಳನ್ನು ಬರೆಯಬೇಕಾಗುತ್ತದೆ (ಯೋಜನೆಗಳು 2-3 ಆಗಿದ್ದರೆ);
- ನಿಮ್ಮ ಸಮಯವನ್ನು ವ್ಯರ್ಥ ಮಾಡಲು ನಾನು ಬಯಸುವುದಿಲ್ಲ ಏಕೆಂದರೆ ನೀವು ಅದೇ ಗುರಿಗಳನ್ನು ಸಾಧಿಸಲು ಇತರ ಸಾಧನಗಳನ್ನು ಬಳಸಲು ಬಯಸಬಹುದು.
ಅಭ್ಯಾಸ
ಈ ವಸ್ತುವು ಪ್ರತಿಯೊಬ್ಬ ಓದುಗರಿಗೆ ಉಪಯುಕ್ತವಾಗಬೇಕೆಂದು ನಾನು ನಿಜವಾಗಿಯೂ ಬಯಸುತ್ತೇನೆ ಮತ್ತು ಕೇವಲ ಓದಿ ಮರೆತುಬಿಡುವುದಿಲ್ಲ. ಯಾವುದೇ ಅಧ್ಯಯನದಲ್ಲಿ, ಅಭ್ಯಾಸವು ಬಹಳ ಮುಖ್ಯವಾದ ಅಂಶವಾಗಿದೆ. ಇದಕ್ಕಾಗಿ ನಾನು ತಯಾರಿ ನಡೆಸಿದ್ದೇನೆ. ನೀವು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತಿರುವ ಆಜ್ಞೆಗಳ ಸಾಲುಗಳನ್ನು ನೀವು ಬುದ್ದಿಹೀನವಾಗಿ ನಕಲಿಸುವುದಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಹೋಮ್ವರ್ಕ್ ಸಹ ಕಾಯುತ್ತಿದೆ.
ಯೋಜನೆ
ಹಂತ
ತಂತ್ರಜ್ಞಾನ
ಪರಿಕರಗಳು
1
ಸ್ಥಳೀಯ ಓಟ (ವೆಬ್ / ಆಂಡ್ರಾಯ್ಡ್ ಡೆಮೊ ಪರೀಕ್ಷೆಗಳನ್ನು ತಯಾರಿಸಿ ಮತ್ತು ಸ್ಥಳೀಯವಾಗಿ ರನ್ ಮಾಡಿ)
Node.js, ಸೆಲೆನಿಯಮ್, ಆಪಿಯಮ್
2
ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆಗಳು
ಹೋಗಿ
3
ಕಂಟೈನರೈಸೇಶನ್
Docker, Selenium grid, Selenoid (Web, Android)
4
CI/CD
ಗಿಟ್ಲಾಬ್ ಸಿಐ
5
ಮೇಘ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳು
Google ಮೇಘ ಪ್ಲಾಟ್ಫಾರ್ಮ್
6
ವಾದ್ಯವೃಂದದ ಸಂಯೋಜನೆ
ಕುಬರ್ನೆಟ್ಸ್
7
ಕೋಡ್ ಆಗಿ ಮೂಲಸೌಕರ್ಯ (IaC)
ಟೆರಾಫಾರ್ಮ್, ಅನ್ಸಿಬಲ್
ಪ್ರತಿ ವಿಭಾಗದ ರಚನೆ
ನಿರೂಪಣೆಯನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಲು, ಪ್ರತಿ ವಿಭಾಗವನ್ನು ಈ ಕೆಳಗಿನ ರೂಪರೇಖೆಯ ಪ್ರಕಾರ ವಿವರಿಸಲಾಗಿದೆ:
- ತಂತ್ರಜ್ಞಾನದ ಸಂಕ್ಷಿಪ್ತ ವಿವರಣೆ,
- ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಮೂಲಸೌಕರ್ಯ ಮೌಲ್ಯ,
- ಮೂಲಸೌಕರ್ಯದ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯ ವಿವರಣೆ,
- ಅಧ್ಯಯನಕ್ಕೆ ಲಿಂಕ್ಗಳು,
- ಇದೇ ರೀತಿಯ ಉಪಕರಣಗಳು.
1. ಸ್ಥಳೀಯವಾಗಿ ಪರೀಕ್ಷೆಗಳನ್ನು ರನ್ ಮಾಡಿ
ತಂತ್ರಜ್ಞಾನದ ಸಂಕ್ಷಿಪ್ತ ವಿವರಣೆ
ಡೆಮೊ ಪರೀಕ್ಷೆಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿ ನಡೆಸಲು ಮತ್ತು ಅವರು ಉತ್ತೀರ್ಣರಾಗಿದ್ದಾರೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಲು ಇದು ಕೇವಲ ಪೂರ್ವಸಿದ್ಧತಾ ಹಂತವಾಗಿದೆ. ಪ್ರಾಯೋಗಿಕ ಭಾಗದಲ್ಲಿ, Node.js ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಆದರೆ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ ಮತ್ತು ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಸಹ ಮುಖ್ಯವಲ್ಲ ಮತ್ತು ನಿಮ್ಮ ಕಂಪನಿಯಲ್ಲಿ ಬಳಸಲಾಗುವದನ್ನು ನೀವು ಬಳಸಬಹುದು.
Однако в качестве инструментов автоматизации я рекомендую использовать Selenium WebDriver для web-платформ и Appium для Android-платформы соответственно, так как на следующих шагах мы будем использовать Docker-образы, которые заточены на работу конкретно с этими инструментами. Более того, ссылаясь на требования в вакансиях, эти инструменты наиболее востребованы на рынке.
Как вы могли заметить, мы рассматриваем только web и Android-тесты. К сожалению, IOS – совершенно другая история (спасибо Apple). Я планирую продемонстрировать решения и практики, связанные с IOS, в следующих частях.
ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಮೂಲಸೌಕರ್ಯಕ್ಕೆ ಮೌಲ್ಯ
ಮೂಲಸೌಕರ್ಯ ದೃಷ್ಟಿಕೋನದಿಂದ, ಸ್ಥಳೀಯವಾಗಿ ಚಾಲನೆಯು ಯಾವುದೇ ಮೌಲ್ಯವನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ. ಸ್ಥಳೀಯ ಬ್ರೌಸರ್ಗಳು ಮತ್ತು ಸಿಮ್ಯುಲೇಟರ್ಗಳಲ್ಲಿ ಸ್ಥಳೀಯ ಗಣಕದಲ್ಲಿ ಪರೀಕ್ಷೆಗಳು ರನ್ ಆಗುತ್ತವೆಯೇ ಎಂದು ನೀವು ಪರಿಶೀಲಿಸುತ್ತೀರಿ. ಆದರೆ ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ, ಇದು ಅಗತ್ಯವಾದ ಆರಂಭಿಕ ಹಂತವಾಗಿದೆ.
ಮೂಲಸೌಕರ್ಯದ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯ ವಿವರಣೆ

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

ಅನ್ವೇಷಿಸಲು ಲಿಂಕ್ಗಳು
ಇದೇ ರೀತಿಯ ಉಪಕರಣಗಳು
3. ಕಂಟೈನರೈಸೇಶನ್ (ಡಾಕರ್)
ತಂತ್ರಜ್ಞಾನದ ಸಂಕ್ಷಿಪ್ತ ವಿವರಣೆ
ಕಂಟೈನರೈಸೇಶನ್ ಆಟದ ನಿಯಮಗಳನ್ನು ಹೇಗೆ ಬದಲಾಯಿಸಿದೆ ಎಂಬುದನ್ನು ಪ್ರದರ್ಶಿಸಲು, ಕೆಲವು ದಶಕಗಳ ಹಿಂದೆ ಹೋಗೋಣ. ಆಗ, ಜನರು ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಚಲಾಯಿಸಲು ಸರ್ವರ್ ಯಂತ್ರಗಳನ್ನು ಖರೀದಿಸಿದರು ಮತ್ತು ಬಳಸುತ್ತಿದ್ದರು. ಆದರೆ ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಅಗತ್ಯವಿರುವ ಆರಂಭಿಕ ಸಂಪನ್ಮೂಲಗಳು ಮುಂಚಿತವಾಗಿ ತಿಳಿದಿರಲಿಲ್ಲ. ಪರಿಣಾಮವಾಗಿ, ಕಂಪನಿಗಳು ದುಬಾರಿ, ಶಕ್ತಿಯುತ ಸರ್ವರ್ಗಳ ಖರೀದಿಗೆ ಹಣವನ್ನು ಖರ್ಚು ಮಾಡಿದವು, ಆದರೆ ಈ ಸಾಮರ್ಥ್ಯವನ್ನು ಕೆಲವು ಸಂಪೂರ್ಣವಾಗಿ ಬಳಸಲಾಗಲಿಲ್ಲ.
ವಿಕಾಸದ ಮುಂದಿನ ಹಂತವು ವರ್ಚುವಲ್ ಯಂತ್ರಗಳು (VMs) ಆಗಿತ್ತು, ಇದು ಬಳಕೆಯಾಗದ ಸಂಪನ್ಮೂಲಗಳ ಮೇಲೆ ಹಣವನ್ನು ವ್ಯರ್ಥ ಮಾಡುವ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಿತು. ಈ ತಂತ್ರಜ್ಞಾನವು ಒಂದೇ ಸರ್ವರ್ನಲ್ಲಿ ಪರಸ್ಪರ ಸ್ವತಂತ್ರವಾಗಿ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಚಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗಿಸಿತು, ಸಂಪೂರ್ಣವಾಗಿ ಪ್ರತ್ಯೇಕವಾದ ಜಾಗವನ್ನು ನಿಯೋಜಿಸುತ್ತದೆ. ಆದರೆ, ದುರದೃಷ್ಟವಶಾತ್, ಯಾವುದೇ ತಂತ್ರಜ್ಞಾನವು ಅದರ ನ್ಯೂನತೆಗಳನ್ನು ಹೊಂದಿದೆ. VM ಅನ್ನು ಚಲಾಯಿಸಲು ಪೂರ್ಣ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಅಗತ್ಯವಿರುತ್ತದೆ, ಇದು CPU, RAM, ಸಂಗ್ರಹಣೆಯನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು OS ಅನ್ನು ಅವಲಂಬಿಸಿ, ಪರವಾನಗಿ ವೆಚ್ಚಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಬೇಕಾಗುತ್ತದೆ. ಈ ಅಂಶಗಳು ಲೋಡಿಂಗ್ ವೇಗದ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತವೆ ಮತ್ತು ಪೋರ್ಟಬಿಲಿಟಿ ಕಷ್ಟಕರವಾಗಿಸುತ್ತದೆ.
ಮತ್ತು ಈಗ ನಾವು ಧಾರಕೀಕರಣಕ್ಕೆ ಬರುತ್ತೇವೆ. ಮತ್ತೊಮ್ಮೆ, ಈ ತಂತ್ರಜ್ಞಾನವು ಹಿಂದಿನ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ಕಂಟೇನರ್ಗಳು ಸಂಪೂರ್ಣ OS ಅನ್ನು ಬಳಸುವುದಿಲ್ಲ, ಇದು ಹೆಚ್ಚಿನ ಪ್ರಮಾಣದ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಮುಕ್ತಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಪೋರ್ಟಬಿಲಿಟಿಗಾಗಿ ವೇಗವಾದ ಮತ್ತು ಹೊಂದಿಕೊಳ್ಳುವ ಪರಿಹಾರವನ್ನು ಒದಗಿಸುತ್ತದೆ.
Конечно, технология контейнеризации не является чем-то новым и впервые была представлена в конце 70-х. В те времена проводилось много исследований, наработок, и попыток. Но именно Docker адаптировал эту технологию и сделал ее легкодоступной для масс. В наше время, когда мы говорим о контейнерах, в большинстве случаев мы имеем ввиду Docker. Когда мы говорим о Docker-контейнерах, мы подразумеваем Linux-контейнеры. Мы можем использовать Windows и macOS-системы для запуска контейнеров, но важно понимать, что в таком случае появляется дополнительная прослойка. Например, Docker на Mac незаметно запускает контейнеры внутри легковесной Linux VM. Мы еще вернемся к этой теме, когда будем обсуждать запуск Android-эмуляторов внутри контейнеров, так так здесь появляется очень важной нюанс, который необходимо разобрать более подробно.
ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಮೂಲಸೌಕರ್ಯಕ್ಕೆ ಮೌಲ್ಯ
ಕಂಟೈನರೈಸೇಶನ್ ಮತ್ತು ಡಾಕರ್ ತಂಪಾಗಿದೆ ಎಂದು ನಾವು ಕಂಡುಕೊಂಡಿದ್ದೇವೆ. ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಸಂದರ್ಭದಲ್ಲಿ ಇದನ್ನು ನೋಡೋಣ, ಏಕೆಂದರೆ ಪ್ರತಿಯೊಂದು ಸಾಧನ ಅಥವಾ ತಂತ್ರಜ್ಞಾನವು ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಬೇಕಾಗಿದೆ. UI ಪರೀಕ್ಷೆಗಳ ಸಂದರ್ಭದಲ್ಲಿ ಪರೀಕ್ಷಾ ಯಾಂತ್ರೀಕರಣದ ಸ್ಪಷ್ಟ ಸಮಸ್ಯೆಗಳನ್ನು ನಾವು ವಿವರಿಸೋಣ:
- ಸೆಲೆನಿಯಮ್ ಮತ್ತು ವಿಶೇಷವಾಗಿ Appium ಅನ್ನು ಸ್ಥಾಪಿಸುವಾಗ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಅವಲಂಬನೆಗಳು;
- ಬ್ರೌಸರ್ಗಳು, ಸಿಮ್ಯುಲೇಟರ್ಗಳು ಮತ್ತು ಡ್ರೈವರ್ಗಳ ಆವೃತ್ತಿಗಳ ನಡುವಿನ ಹೊಂದಾಣಿಕೆಯ ಸಮಸ್ಯೆಗಳು;
- ಬ್ರೌಸರ್ಗಳು/ಸಿಮ್ಯುಲೇಟರ್ಗಳಿಗೆ ಪ್ರತ್ಯೇಕ ಸ್ಥಳಾವಕಾಶದ ಕೊರತೆ, ಇದು ಸಮಾನಾಂತರ ಚಾಲನೆಗೆ ವಿಶೇಷವಾಗಿ ನಿರ್ಣಾಯಕವಾಗಿದೆ;
- ನೀವು ಒಂದೇ ಸಮಯದಲ್ಲಿ 10, 50, 100 ಅಥವಾ 1000 ಬ್ರೌಸರ್ಗಳನ್ನು ಚಲಾಯಿಸಬೇಕಾದರೆ ನಿರ್ವಹಿಸುವುದು ಮತ್ತು ನಿರ್ವಹಿಸುವುದು ಕಷ್ಟ.
ಆದರೆ ಸೆಲೆನಿಯಮ್ ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಸಾಧನ ಮತ್ತು ಡಾಕರ್ ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಕಂಟೈನರೈಸೇಶನ್ ಸಾಧನವಾಗಿರುವುದರಿಂದ, ಮೇಲೆ ತಿಳಿಸಿದ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಪ್ರಬಲವಾದ ಸಾಧನವನ್ನು ರಚಿಸಲು ಯಾರಾದರೂ ಅವುಗಳನ್ನು ಸಂಯೋಜಿಸಲು ಪ್ರಯತ್ನಿಸಿದರೆ ಆಶ್ಚರ್ಯಪಡಬೇಕಾಗಿಲ್ಲ. ಅಂತಹ ಪರಿಹಾರಗಳನ್ನು ಹೆಚ್ಚು ವಿವರವಾಗಿ ಪರಿಗಣಿಸೋಣ.
ಡಾಕರ್ನಲ್ಲಿ ಸೆಲೆನಿಯಮ್ ಗ್ರಿಡ್
Этот инструмент является самым популярным в мире Selenium для запуска нескольких браузеров на нескольких машинах и управления ими из центрального узла. Для запуска необходимо зарегистрировать как минимум 2 части: Hub и Node(s). Hub – это центральный узел, который получает все запросы от тестов и распределяет их по соответствующим Nodes. Для каждого Node мы можем настроить конкретную конфигурацию, например, указав нужный браузер и его версию. Однако нам все еще необходимо самим позаботиться о совместимых драйверах для браузеров и установить их на нужные Nodes. По этой причине Selenium grid не используется в чистом виде, за исключением тех случаев, когда нам нужно работать с браузерами, которые нельзя установить на Linux OS. Для всех остальных случаев значительно гибким и правильным решением будет использование Docker-образов для запуска Selenium grid Hub и Nodes. Такой подход сильно упрощает управление узлами, так как мы можем выбрать нужный нам образ с уже установленными совместимыми версиями браузеров и драйверов.
ಸ್ಥಿರತೆಯ ಬಗ್ಗೆ ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆಗಳ ಹೊರತಾಗಿಯೂ, ವಿಶೇಷವಾಗಿ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ನೋಡ್ಗಳನ್ನು ಸಮಾನಾಂತರವಾಗಿ ಚಲಾಯಿಸುವಾಗ, ಸೆಲೆನಿಯಮ್ ಗ್ರಿಡ್ ಇನ್ನೂ ಸೆಲೆನಿಯಮ್ ಪರೀಕ್ಷೆಗಳನ್ನು ಸಮಾನಾಂತರವಾಗಿ ನಡೆಸಲು ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಸಾಧನವಾಗಿದೆ. ಈ ಉಪಕರಣದ ವಿವಿಧ ಸುಧಾರಣೆಗಳು ಮತ್ತು ಮಾರ್ಪಾಡುಗಳು ನಿರಂತರವಾಗಿ ತೆರೆದ ಮೂಲದಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ, ಇದು ವಿವಿಧ ಅಡಚಣೆಗಳನ್ನು ಎದುರಿಸುತ್ತದೆ.
ವೆಬ್ಗಾಗಿ ಸೆಲೆನಾಯ್ಡ್
ಈ ಉಪಕರಣವು ಸೆಲೆನಿಯಮ್ ಜಗತ್ತಿನಲ್ಲಿ ಒಂದು ಪ್ರಗತಿಯಾಗಿದೆ ಏಕೆಂದರೆ ಇದು ಬಾಕ್ಸ್ನ ಹೊರಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಅನೇಕ ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಎಂಜಿನಿಯರ್ಗಳ ಜೀವನವನ್ನು ಹೆಚ್ಚು ಸುಲಭಗೊಳಿಸಿದೆ. ಮೊದಲನೆಯದಾಗಿ, ಇದು ಸೆಲೆನಿಯಮ್ ಗ್ರಿಡ್ನ ಮತ್ತೊಂದು ಮಾರ್ಪಾಡು ಅಲ್ಲ. ಬದಲಾಗಿ, ಡೆವಲಪರ್ಗಳು ಗೋಲಾಂಗ್ನಲ್ಲಿ ಸೆಲೆನಿಯಮ್ ಹಬ್ನ ಸಂಪೂರ್ಣ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ರಚಿಸಿದರು, ಇದು ವಿವಿಧ ಬ್ರೌಸರ್ಗಳಿಗಾಗಿ ಹಗುರವಾದ ಡಾಕರ್ ಚಿತ್ರಗಳೊಂದಿಗೆ ಸಂಯೋಜಿಸಲ್ಪಟ್ಟಿದೆ, ಪರೀಕ್ಷಾ ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಅಭಿವೃದ್ಧಿಗೆ ಪ್ರಚೋದನೆಯನ್ನು ನೀಡಿತು. ಇದಲ್ಲದೆ, ಸೆಲೆನಿಯಮ್ ಗ್ರಿಡ್ನ ಸಂದರ್ಭದಲ್ಲಿ, ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಬ್ರೌಸರ್ಗಳು ಮತ್ತು ಅವುಗಳ ಆವೃತ್ತಿಗಳನ್ನು ನಾವು ಮುಂಚಿತವಾಗಿ ನಿರ್ಧರಿಸಬೇಕು, ಇದು ಕೇವಲ ಒಂದು ಬ್ರೌಸರ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ಸಮಸ್ಯೆಯಾಗಿರುವುದಿಲ್ಲ. ಆದರೆ ಬಹು ಬೆಂಬಲಿತ ಬ್ರೌಸರ್ಗಳ ವಿಷಯಕ್ಕೆ ಬಂದಾಗ, ಸೆಲೆನಾಯ್ಡ್ ಅದರ 'ಬ್ರೌಸರ್ ಆನ್ ಡಿಮ್ಯಾಂಡ್' ವೈಶಿಷ್ಟ್ಯಕ್ಕೆ ಪ್ರಥಮ ಪರಿಹಾರವಾಗಿದೆ. ಅಗತ್ಯವಿರುವ ಚಿತ್ರಗಳನ್ನು ಬ್ರೌಸರ್ಗಳೊಂದಿಗೆ ಮುಂಚಿತವಾಗಿ ಡೌನ್ಲೋಡ್ ಮಾಡುವುದು ಮತ್ತು ಸೆಲೆನಾಯ್ಡ್ ಸಂವಹನ ಮಾಡುವ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ನವೀಕರಿಸುವುದು ನಮಗೆ ಬೇಕಾಗಿರುವುದು. ಸೆಲೆನಾಯ್ಡ್ ಪರೀಕ್ಷೆಗಳಿಂದ ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ, ಅದು ಬಯಸಿದ ಬ್ರೌಸರ್ನೊಂದಿಗೆ ಬಯಸಿದ ಧಾರಕವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪ್ರಾರಂಭಿಸುತ್ತದೆ. ಪರೀಕ್ಷೆಯು ಪೂರ್ಣಗೊಂಡಾಗ, ಸೆಲೆನಾಯ್ಡ್ ಕಂಟೇನರ್ ಅನ್ನು ನಿವೃತ್ತಗೊಳಿಸುತ್ತದೆ, ಇದರಿಂದಾಗಿ ಭವಿಷ್ಯದ ವಿನಂತಿಗಳಿಗಾಗಿ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಮುಕ್ತಗೊಳಿಸುತ್ತದೆ. ಈ ವಿಧಾನವು ಸೆಲೆನಿಯಮ್ ಗ್ರಿಡ್ನಲ್ಲಿ ನಾವು ಸಾಮಾನ್ಯವಾಗಿ ಎದುರಿಸುವ 'ನೋಡ್ ಡಿಗ್ರೇಡೇಶನ್' ಎಂಬ ಪ್ರಸಿದ್ಧ ಸಮಸ್ಯೆಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಿವಾರಿಸುತ್ತದೆ.
ಆದರೆ, ಅಯ್ಯೋ, ಸೆಲೆನಾಯ್ಡ್ ಇನ್ನೂ ಬೆಳ್ಳಿಯ ಬುಲೆಟ್ ಅಲ್ಲ. ನಾವು 'ಬ್ರೌಸರ್ ಆನ್ ಡಿಮ್ಯಾಂಡ್' ವೈಶಿಷ್ಟ್ಯವನ್ನು ಪಡೆದುಕೊಂಡಿದ್ದೇವೆ, ಆದರೆ 'ರಿಸೋರ್ಸ್ ಆನ್ ಡಿಮ್ಯಾಂಡ್' ವೈಶಿಷ್ಟ್ಯವು ಇನ್ನೂ ಲಭ್ಯವಿಲ್ಲ. ಸೆಲೆನಾಯ್ಡ್ ಅನ್ನು ಬಳಸಲು, ನಾವು ಅದನ್ನು ಭೌತಿಕ ಹಾರ್ಡ್ವೇರ್ ಅಥವಾ VM ನಲ್ಲಿ ನಿಯೋಜಿಸಬೇಕು, ಅಂದರೆ ಎಷ್ಟು ಸಂಪನ್ಮೂಲಗಳನ್ನು ನಿಯೋಜಿಸಬೇಕು ಎಂದು ನಾವು ಮೊದಲೇ ತಿಳಿದಿರಬೇಕು. 10, 20 ಅಥವಾ 30 ಬ್ರೌಸರ್ಗಳನ್ನು ಸಮಾನಾಂತರವಾಗಿ ಚಲಾಯಿಸುವ ಸಣ್ಣ ಯೋಜನೆಗಳಿಗೆ ಇದು ಸಮಸ್ಯೆಯಲ್ಲ ಎಂದು ನಾನು ಊಹಿಸುತ್ತೇನೆ. ಆದರೆ ನಮಗೆ 100, 500, 1000 ಅಥವಾ ಹೆಚ್ಚು ಅಗತ್ಯವಿದ್ದರೆ ಏನು? ಎಲ್ಲಾ ಸಮಯದಲ್ಲೂ ಹಲವಾರು ಸಂಪನ್ಮೂಲಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ಪಾವತಿಸಲು ಯಾವುದೇ ಅರ್ಥವಿಲ್ಲ. ಈ ಲೇಖನದ 5 ಮತ್ತು 6 ನೇ ವಿಭಾಗಗಳಲ್ಲಿ, ನೀವು ಅಳೆಯಲು ಅನುಮತಿಸುವ ಪರಿಹಾರಗಳನ್ನು ನಾವು ಚರ್ಚಿಸುತ್ತೇವೆ, ಇದರಿಂದಾಗಿ ಕಂಪನಿಯ ವೆಚ್ಚವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
Selenoid for Android
После успеха Selenoid в качестве инструмента для web-автоматизации, люди хотели получить что-то подобное для Android. И это свершилось – Selenoid был выпущен с поддержкой Android. С высокоуровневой пользовательской точки зрения принцип работы аналогичен web-автоматизации. Единственное отличие заключается в том, что вместо контейнеров с браузерами Selenoid запускает контейнеры с Android-эмуляторами. На мой взгляд, на сегодняшний момент это самый мощный бесплатный инструмент для запуска Android-тестов параллельно.
Мне бы очень не хотелось говорить о негативных сторонах данного инструмента, так как он действительно мне очень нравится. Но все же тут присутствуют те же недостатки, относящиеся и к web-автоматизации, связанные с масштабированием. В дополнение к этому нужно рассказать о еще одном ограничении, которое может стать неожиданностью, если мы настраиваем инструмент впервые. Для запуска Android-образов нам необходима физическая машина или VM с nested virtualisation — поддержкой. В практическом руководстве я демонстрирую, как это активировать на Linux VM. Однако если вы являетесь macOS пользователем и хотите развернуть Selenoid локально, то для запуска Android-тестов это будет невозможно. Но вы всегда можете запустить Linux VM локально с настроенной ‘nested virtualisation’ и развернуть Selenoid внутри.
ಮೂಲಸೌಕರ್ಯದ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯ ವಿವರಣೆ
В контексте этой статьи мы добавим 2 инструмента для иллюстрации инфраструктуры. Это Selenium grid для web-тестов и Selenoid для Android-тестов. В руководстве на GitHub я также покажу, как использовать Selenoid для запуска web-тестов.

ಅನ್ವೇಷಿಸಲು ಲಿಂಕ್ಗಳು
ಇದೇ ರೀತಿಯ ಉಪಕರಣಗಳು
- ಇತರ ಕಂಟೈನರೈಸೇಶನ್ ಉಪಕರಣಗಳು ಇವೆ, ಆದರೆ ಡಾಕರ್ ಹೆಚ್ಚು ಜನಪ್ರಿಯವಾಗಿದೆ. ನೀವು ಬೇರೆ ಯಾವುದನ್ನಾದರೂ ಪ್ರಯತ್ನಿಸಲು ಬಯಸಿದರೆ, ಸೆಲೆನಿಯಮ್ ಪರೀಕ್ಷೆಗಳನ್ನು ಸಮಾನಾಂತರವಾಗಿ ನಡೆಸಲು ನಾವು ಒಳಗೊಂಡಿರುವ ಪರಿಕರಗಳು ಬಾಕ್ಸ್ನಿಂದ ಹೊರಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ ಎಂಬುದನ್ನು ನೆನಪಿನಲ್ಲಿಡಿ.
- ಈಗಾಗಲೇ ಹೇಳಿದಂತೆ, ಸೆಲೆನಿಯಮ್ ಗ್ರಿಡ್ನ ಅನೇಕ ಮಾರ್ಪಾಡುಗಳಿವೆ, ಉದಾಹರಣೆಗೆ,.
4.CI/CD
ತಂತ್ರಜ್ಞಾನದ ಸಂಕ್ಷಿಪ್ತ ವಿವರಣೆ
ನಿರಂತರ ಏಕೀಕರಣದ ಅಭ್ಯಾಸವು ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ಸಾಕಷ್ಟು ಜನಪ್ರಿಯವಾಗಿದೆ ಮತ್ತು ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆಗಳೊಂದಿಗೆ ಸಮನಾಗಿರುತ್ತದೆ. ಇದರ ಹೊರತಾಗಿಯೂ, ಪರಿಭಾಷೆಯಲ್ಲಿ ಗೊಂದಲವಿದೆ ಎಂದು ನನಗೆ ಅನಿಸುತ್ತದೆ. ಈ ಪ್ಯಾರಾಗ್ರಾಫ್ನಲ್ಲಿ ನಾನು ನನ್ನ ದೃಷ್ಟಿಕೋನದಿಂದ ಈ ತಂತ್ರಜ್ಞಾನದ 3 ಮಾರ್ಪಾಡುಗಳನ್ನು ವಿವರಿಸಲು ಬಯಸುತ್ತೇನೆ. ಅಂತರ್ಜಾಲದಲ್ಲಿ ನೀವು ವಿಭಿನ್ನ ವ್ಯಾಖ್ಯಾನಗಳೊಂದಿಗೆ ಅನೇಕ ಲೇಖನಗಳನ್ನು ಕಾಣಬಹುದು, ಮತ್ತು ನಿಮ್ಮ ಅಭಿಪ್ರಾಯವು ಭಿನ್ನವಾಗಿದ್ದರೆ ಅದು ಸಂಪೂರ್ಣವಾಗಿ ಸಾಮಾನ್ಯವಾಗಿದೆ. ನಿಮ್ಮ ಸಹೋದ್ಯೋಗಿಗಳೊಂದಿಗೆ ನೀವು ಒಂದೇ ಪುಟದಲ್ಲಿರುವುದು ಅತ್ಯಂತ ಮುಖ್ಯವಾದ ವಿಷಯ.
ಆದ್ದರಿಂದ, 3 ಪದಗಳಿವೆ: CI - ನಿರಂತರ ಏಕೀಕರಣ, CD - ನಿರಂತರ ವಿತರಣೆ ಮತ್ತು ಮತ್ತೆ CD - ನಿರಂತರ ನಿಯೋಜನೆ. (ಕೆಳಗೆ ನಾನು ಈ ಪದಗಳನ್ನು ಇಂಗ್ಲಿಷ್ನಲ್ಲಿ ಬಳಸುತ್ತೇನೆ) ಪ್ರತಿ ಮಾರ್ಪಾಡು ನಿಮ್ಮ ಅಭಿವೃದ್ಧಿ ಪೈಪ್ಲೈನ್ಗೆ ಹಲವಾರು ಹೆಚ್ಚುವರಿ ಹಂತಗಳನ್ನು ಸೇರಿಸುತ್ತದೆ. ಆದರೆ ಪದ ನಿರಂತರ (ನಿರಂತರ) ಅತ್ಯಂತ ಮುಖ್ಯವಾದ ವಿಷಯ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ನಾವು ಪ್ರಾರಂಭದಿಂದ ಅಂತ್ಯದವರೆಗೆ ಯಾವುದೇ ಅಡಚಣೆಯಿಲ್ಲದೆ ಅಥವಾ ಹಸ್ತಚಾಲಿತ ಹಸ್ತಕ್ಷೇಪವಿಲ್ಲದೆ ಏನಾದರೂ ಸಂಭವಿಸುತ್ತದೆ ಎಂದು ಅರ್ಥೈಸುತ್ತೇವೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ CI & CD ಮತ್ತು CD ಗಳನ್ನು ನೋಡೋಣ.
- ನಿರಂತರ ಏಕೀಕರಣ ಇದು ವಿಕಾಸದ ಆರಂಭಿಕ ಹಂತವಾಗಿದೆ. ಸರ್ವರ್ಗೆ ಹೊಸ ಕೋಡ್ ಸಲ್ಲಿಸಿದ ನಂತರ, ನಮ್ಮ ಬದಲಾವಣೆಗಳು ಸರಿಯಾಗಿವೆ ಎಂದು ನಾವು ತ್ವರಿತ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಸ್ವೀಕರಿಸಲು ನಿರೀಕ್ಷಿಸುತ್ತೇವೆ. ವಿಶಿಷ್ಟವಾಗಿ, CI ಚಾಲನೆಯಲ್ಲಿರುವ ಸ್ಥಿರ ಕೋಡ್ ವಿಶ್ಲೇಷಣೆ ಪರಿಕರಗಳು ಮತ್ತು ಘಟಕ/ಆಂತರಿಕ API ಪರೀಕ್ಷೆಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಇದು ಕೆಲವು ಸೆಕೆಂಡುಗಳು/ನಿಮಿಷಗಳಲ್ಲಿ ನಮ್ಮ ಕೋಡ್ ಕುರಿತು ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಲು ಅನುಮತಿಸುತ್ತದೆ.
- ನಿರಂತರ ವಿತರಣೆ ನಾವು ಏಕೀಕರಣ/UI ಪರೀಕ್ಷೆಗಳನ್ನು ನಡೆಸುವ ಹೆಚ್ಚು ಸುಧಾರಿತ ಹಂತವಾಗಿದೆ. ಆದಾಗ್ಯೂ, ಈ ಹಂತದಲ್ಲಿ ನಾವು CI ಯಂತೆ ತ್ವರಿತವಾಗಿ ಫಲಿತಾಂಶಗಳನ್ನು ಪಡೆಯುವುದಿಲ್ಲ. ಮೊದಲನೆಯದಾಗಿ, ಈ ರೀತಿಯ ಪರೀಕ್ಷೆಗಳು ಪೂರ್ಣಗೊಳ್ಳಲು ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಎರಡನೆಯದಾಗಿ, ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, ನಾವು ಪರೀಕ್ಷೆ/ಸ್ಟೇಜಿಂಗ್ ಪರಿಸರಕ್ಕೆ ನಮ್ಮ ಬದಲಾವಣೆಗಳನ್ನು ನಿಯೋಜಿಸಬೇಕು. ಇದಲ್ಲದೆ, ನಾವು ಮೊಬೈಲ್ ಅಭಿವೃದ್ಧಿಯ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತಿದ್ದರೆ, ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನ ನಿರ್ಮಾಣವನ್ನು ರಚಿಸಲು ಹೆಚ್ಚುವರಿ ಹಂತವು ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ.
- ನಿರಂತರ ನಿಯೋಜನೆ ಹಿಂದಿನ ಹಂತಗಳಲ್ಲಿ ಎಲ್ಲಾ ಸ್ವೀಕಾರ ಪರೀಕ್ಷೆಗಳು ಉತ್ತೀರ್ಣರಾಗಿದ್ದರೆ ನಾವು ಉತ್ಪಾದನೆಗೆ ನಮ್ಮ ಬದಲಾವಣೆಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಬಿಡುಗಡೆ ಮಾಡುತ್ತೇವೆ ಎಂದು ಊಹಿಸುತ್ತದೆ. ಇದರ ಜೊತೆಗೆ, ಬಿಡುಗಡೆಯ ಹಂತದ ನಂತರ, ನೀವು ಉತ್ಪಾದನೆಯಲ್ಲಿ ಹೊಗೆ ಪರೀಕ್ಷೆಗಳನ್ನು ನಡೆಸುವುದು ಮತ್ತು ಆಸಕ್ತಿಯ ಮೆಟ್ರಿಕ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸುವಂತಹ ವಿವಿಧ ಹಂತಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು. ಸ್ವಯಂಚಾಲಿತ ಪರೀಕ್ಷೆಗಳಿಂದ ಉತ್ತಮ ವ್ಯಾಪ್ತಿಯೊಂದಿಗೆ ಮಾತ್ರ ನಿರಂತರ ನಿಯೋಜನೆ ಸಾಧ್ಯ. ಪರೀಕ್ಷೆ ಸೇರಿದಂತೆ ಯಾವುದೇ ಹಸ್ತಚಾಲಿತ ಮಧ್ಯಸ್ಥಿಕೆಗಳು ಅಗತ್ಯವಿದ್ದರೆ, ಇದು ಇನ್ನು ಮುಂದೆ ಇರುವುದಿಲ್ಲ ನಿರಂತರ (ನಿರಂತರ). ನಂತರ ನಾವು ನಮ್ಮ ಪೈಪ್ಲೈನ್ ನಿರಂತರ ವಿತರಣೆಯ ಅಭ್ಯಾಸವನ್ನು ಮಾತ್ರ ಅನುಸರಿಸುತ್ತದೆ ಎಂದು ಹೇಳಬಹುದು.
ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಮೂಲಸೌಕರ್ಯಕ್ಕೆ ಮೌಲ್ಯ
ಈ ವಿಭಾಗದಲ್ಲಿ, ನಾವು ಎಂಡ್-ಟು-ಎಂಡ್ UI ಪರೀಕ್ಷೆಗಳ ಕುರಿತು ಮಾತನಾಡುವಾಗ, ನಾವು ನಮ್ಮ ಬದಲಾವಣೆಗಳನ್ನು ಮತ್ತು ಸಂಬಂಧಿತ ಸೇವೆಗಳನ್ನು ಪರೀಕ್ಷಿಸಲು ಪರಿಸರವನ್ನು ನಿಯೋಜಿಸಬೇಕು ಎಂದು ನಾನು ಸ್ಪಷ್ಟಪಡಿಸಬೇಕು. ನಿರಂತರ ಏಕೀಕರಣ - ಪ್ರಕ್ರಿಯೆಯು ಈ ಕಾರ್ಯಕ್ಕೆ ಅನ್ವಯಿಸುವುದಿಲ್ಲ ಮತ್ತು ಕನಿಷ್ಠ ನಿರಂತರ ವಿತರಣಾ ಅಭ್ಯಾಸಗಳನ್ನು ಅನುಷ್ಠಾನಗೊಳಿಸುವುದನ್ನು ನಾವು ಕಾಳಜಿ ವಹಿಸಬೇಕು. UI ಪರೀಕ್ಷೆಗಳ ಸಂದರ್ಭದಲ್ಲಿ ನಾವು ಅವುಗಳನ್ನು ಉತ್ಪಾದನೆಯಲ್ಲಿ ಚಲಾಯಿಸಲು ಹೋದರೆ ನಿರಂತರ ನಿಯೋಜನೆಯು ಅರ್ಥಪೂರ್ಣವಾಗಿದೆ.
ಮತ್ತು ಆರ್ಕಿಟೆಕ್ಚರ್ ಬದಲಾವಣೆಯ ವಿವರಣೆಯನ್ನು ನಾವು ನೋಡುವ ಮೊದಲು, ನಾನು GitLab CI ಬಗ್ಗೆ ಕೆಲವು ಮಾತುಗಳನ್ನು ಹೇಳಲು ಬಯಸುತ್ತೇನೆ. ಇತರ CI/CD ಪರಿಕರಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿ, GitLab ರಿಮೋಟ್ ರೆಪೊಸಿಟರಿ ಮತ್ತು ಇತರ ಹಲವು ಹೆಚ್ಚುವರಿ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಹೀಗಾಗಿ, GitLab CI ಗಿಂತ ಹೆಚ್ಚು. ಇದು ಸೋರ್ಸ್ ಕೋಡ್ ಮ್ಯಾನೇಜ್ಮೆಂಟ್, ಅಗೈಲ್ ಮ್ಯಾನೇಜ್ಮೆಂಟ್, CI/CD ಪೈಪ್ಲೈನ್ಗಳು, ಲಾಗಿಂಗ್ ಟೂಲ್ಗಳು ಮತ್ತು ಬಾಕ್ಸ್ನ ಹೊರಗೆ ಮೆಟ್ರಿಕ್ಸ್ ಸಂಗ್ರಹವನ್ನು ಒಳಗೊಂಡಿದೆ. GitLab ಆರ್ಕಿಟೆಕ್ಚರ್ Gitlab CI/CD ಮತ್ತು GitLab ರನ್ನರ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ. ಅಧಿಕೃತ ವೆಬ್ಸೈಟ್ನಿಂದ ಚಿಕ್ಕ ವಿವರಣೆ ಇಲ್ಲಿದೆ:
Gitlab CI/CD ಎಂಬುದು API ನೊಂದಿಗೆ ಒಂದು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದ್ದು ಅದು ತನ್ನ ಸ್ಥಿತಿಯನ್ನು ಡೇಟಾಬೇಸ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ, ಯೋಜನೆಗಳು/ನಿರ್ಮಾಣಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ. GitLab ರನ್ನರ್ ಬಿಲ್ಡ್ಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವ ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದೆ. ಇದನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ನಿಯೋಜಿಸಬಹುದು ಮತ್ತು API ಮೂಲಕ GitLab CI/CD ಯೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಚಾಲನೆಯಲ್ಲಿರುವ ಪರೀಕ್ಷೆಗಳಿಗೆ ನಿಮಗೆ Gitlab ನಿದರ್ಶನ ಮತ್ತು ರನ್ನರ್ ಎರಡೂ ಅಗತ್ಯವಿದೆ.
ಮೂಲಸೌಕರ್ಯದ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯ ವಿವರಣೆ

ಅನ್ವೇಷಿಸಲು ಲಿಂಕ್ಗಳು
ಇದೇ ರೀತಿಯ ಉಪಕರಣಗಳು
- ಮತ್ತು ಅನೇಕ ಇತರರು
5. ಮೇಘ ವೇದಿಕೆಗಳು
ತಂತ್ರಜ್ಞಾನದ ಸಂಕ್ಷಿಪ್ತ ವಿವರಣೆ
ಈ ವಿಭಾಗದಲ್ಲಿ ನಾವು 'ಸಾರ್ವಜನಿಕ ಮೋಡಗಳು' ಎಂಬ ಜನಪ್ರಿಯ ಪ್ರವೃತ್ತಿಯ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತೇವೆ. ಮೇಲೆ ವಿವರಿಸಿದ ವರ್ಚುವಲೈಸೇಶನ್ ಮತ್ತು ಕಂಟೈನರೈಸೇಶನ್ ತಂತ್ರಜ್ಞಾನಗಳು ಒದಗಿಸುವ ಅಗಾಧ ಪ್ರಯೋಜನಗಳ ಹೊರತಾಗಿಯೂ, ನಮಗೆ ಇನ್ನೂ ಕಂಪ್ಯೂಟಿಂಗ್ ಸಂಪನ್ಮೂಲಗಳ ಅಗತ್ಯವಿದೆ. ಕಂಪನಿಗಳು ದುಬಾರಿ ಸರ್ವರ್ಗಳನ್ನು ಖರೀದಿಸುತ್ತವೆ ಅಥವಾ ಡೇಟಾ ಕೇಂದ್ರಗಳನ್ನು ಬಾಡಿಗೆಗೆ ಪಡೆಯುತ್ತವೆ, ಆದರೆ ಈ ಸಂದರ್ಭದಲ್ಲಿ ನಮಗೆ ಎಷ್ಟು ಸಂಪನ್ಮೂಲಗಳು ಬೇಕಾಗುತ್ತವೆ, ನಾವು ಅವುಗಳನ್ನು 24/7 ಬಳಸುತ್ತೇವೆಯೇ ಮತ್ತು ಯಾವ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು (ಕೆಲವೊಮ್ಮೆ ಅವಾಸ್ತವಿಕ) ಮಾಡುವುದು ಅವಶ್ಯಕ. ಉದಾಹರಣೆಗೆ, ಉತ್ಪಾದನೆಗೆ XNUMX/XNUMX ಚಾಲನೆಯಲ್ಲಿರುವ ಸರ್ವರ್ ಅಗತ್ಯವಿದೆ, ಆದರೆ ಕೆಲಸದ ಸಮಯದ ಹೊರಗೆ ಪರೀಕ್ಷಿಸಲು ನಮಗೆ ಇದೇ ರೀತಿಯ ಸಂಪನ್ಮೂಲಗಳು ಬೇಕೇ? ಇದು ಪರೀಕ್ಷೆಯ ಪ್ರಕಾರವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. ಮರುದಿನ ಫಲಿತಾಂಶಗಳನ್ನು ಪಡೆಯಲು ನಾವು ಕೆಲಸ ಮಾಡದ ಸಮಯದಲ್ಲಿ ನಡೆಸಲು ಯೋಜಿಸುವ ಲೋಡ್/ಒತ್ತಡ ಪರೀಕ್ಷೆಗಳು ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ. ಆದರೆ ಖಂಡಿತವಾಗಿ XNUMX/XNUMX ಸರ್ವರ್ ಲಭ್ಯತೆಯು ಅಂತ್ಯದಿಂದ ಕೊನೆಯವರೆಗೆ ಸ್ವಯಂಚಾಲಿತ ಪರೀಕ್ಷೆಗಳಿಗೆ ಅಗತ್ಯವಿಲ್ಲ ಮತ್ತು ವಿಶೇಷವಾಗಿ ಹಸ್ತಚಾಲಿತ ಪರೀಕ್ಷಾ ಪರಿಸರಗಳಿಗೆ ಅಲ್ಲ. ಅಂತಹ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಬೇಡಿಕೆಯ ಮೇಲೆ ಅಗತ್ಯವಿರುವಷ್ಟು ಸಂಪನ್ಮೂಲಗಳನ್ನು ಪಡೆಯುವುದು, ಅವುಗಳನ್ನು ಬಳಸುವುದು ಮತ್ತು ಅಗತ್ಯವಿಲ್ಲದಿದ್ದಾಗ ಪಾವತಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುವುದು ಒಳ್ಳೆಯದು. ಇದಲ್ಲದೆ, ಕೆಲವು ಮೌಸ್ ಕ್ಲಿಕ್ಗಳನ್ನು ಮಾಡುವ ಮೂಲಕ ಅಥವಾ ಒಂದೆರಡು ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಚಲಾಯಿಸುವ ಮೂಲಕ ಅವುಗಳನ್ನು ತಕ್ಷಣವೇ ಸ್ವೀಕರಿಸಲು ಉತ್ತಮವಾಗಿದೆ. ಇದಕ್ಕಾಗಿಯೇ ಸಾರ್ವಜನಿಕ ಮೋಡಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ವ್ಯಾಖ್ಯಾನವನ್ನು ನೋಡೋಣ:
"ಸಾರ್ವಜನಿಕ ಕ್ಲೌಡ್ ಅನ್ನು ಸಾರ್ವಜನಿಕ ಇಂಟರ್ನೆಟ್ನಲ್ಲಿ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಪೂರೈಕೆದಾರರು ನೀಡುವ ಕಂಪ್ಯೂಟಿಂಗ್ ಸೇವೆಗಳು ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ, ಅವುಗಳನ್ನು ಬಳಸಲು ಅಥವಾ ಖರೀದಿಸಲು ಬಯಸುವ ಯಾರಿಗಾದರೂ ಲಭ್ಯವಾಗುವಂತೆ ಮಾಡುತ್ತದೆ. ಅವುಗಳು ಉಚಿತ ಅಥವಾ ಬೇಡಿಕೆಯ ಮೇರೆಗೆ ಮಾರಾಟವಾಗಬಹುದು, ಗ್ರಾಹಕರು ಅವರು ಸೇವಿಸುವ CPU ಸೈಕಲ್ಗಳು, ಸಂಗ್ರಹಣೆ ಅಥವಾ ಬ್ಯಾಂಡ್ವಿಡ್ತ್ಗೆ ಪ್ರತಿ ಬಳಕೆಗೆ ಮಾತ್ರ ಪಾವತಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ."
ಸಾರ್ವಜನಿಕ ಮೋಡಗಳು ದುಬಾರಿ ಎಂಬ ಅಭಿಪ್ರಾಯವಿದೆ. ಆದರೆ ಕಂಪನಿಯ ವೆಚ್ಚವನ್ನು ಕಡಿಮೆ ಮಾಡುವುದು ಅವರ ಪ್ರಮುಖ ಆಲೋಚನೆಯಾಗಿದೆ. ಮೊದಲೇ ಹೇಳಿದಂತೆ, ಸಾರ್ವಜನಿಕ ಮೋಡಗಳು ಬೇಡಿಕೆಯ ಮೇಲೆ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಪಡೆಯಲು ಮತ್ತು ನೀವು ಬಳಸುವ ಸಮಯಕ್ಕೆ ಮಾತ್ರ ಪಾವತಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಅಲ್ಲದೆ, ಕೆಲವೊಮ್ಮೆ ನೌಕರರು ಸಂಬಳವನ್ನು ಪಡೆಯುತ್ತಾರೆ ಮತ್ತು ತಜ್ಞರು ಸಹ ದುಬಾರಿ ಸಂಪನ್ಮೂಲವಾಗಿದೆ ಎಂದು ನಾವು ಮರೆತುಬಿಡುತ್ತೇವೆ. ಸಾರ್ವಜನಿಕ ಮೋಡಗಳು ಮೂಲಸೌಕರ್ಯ ಬೆಂಬಲವನ್ನು ಹೆಚ್ಚು ಸುಲಭಗೊಳಿಸುತ್ತದೆ ಎಂದು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಬೇಕು, ಇದು ಎಂಜಿನಿಯರ್ಗಳು ಹೆಚ್ಚು ಪ್ರಮುಖ ಕಾರ್ಯಗಳ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಮೂಲಸೌಕರ್ಯಕ್ಕೆ ಮೌಲ್ಯ
ಅಂತ್ಯದಿಂದ ಕೊನೆಯವರೆಗೆ UI ಪರೀಕ್ಷೆಗಳಿಗೆ ನಮಗೆ ಯಾವ ನಿರ್ದಿಷ್ಟ ಸಂಪನ್ಮೂಲಗಳು ಬೇಕು? ಮೂಲಭೂತವಾಗಿ ಇವುಗಳು ವರ್ಚುವಲ್ ಯಂತ್ರಗಳು ಅಥವಾ ಕ್ಲಸ್ಟರ್ಗಳು (ಮುಂದಿನ ವಿಭಾಗದಲ್ಲಿ ನಾವು ಕುಬರ್ನೆಟ್ಸ್ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತೇವೆ) ಬ್ರೌಸರ್ಗಳು ಮತ್ತು ಎಮ್ಯುಲೇಟರ್ಗಳನ್ನು ಚಲಾಯಿಸಲು. ನಾವು ಹೆಚ್ಚು ಬ್ರೌಸರ್ಗಳು ಮತ್ತು ಎಮ್ಯುಲೇಟರ್ಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಚಲಾಯಿಸಲು ಬಯಸುತ್ತೇವೆ, ಹೆಚ್ಚು CPU ಮತ್ತು ಮೆಮೊರಿ ಅಗತ್ಯವಿರುತ್ತದೆ ಮತ್ತು ಅದಕ್ಕಾಗಿ ನಾವು ಹೆಚ್ಚು ಹಣವನ್ನು ಪಾವತಿಸಬೇಕಾಗುತ್ತದೆ. ಹೀಗಾಗಿ, ಪರೀಕ್ಷಾ ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಸಂದರ್ಭದಲ್ಲಿ ಸಾರ್ವಜನಿಕ ಮೋಡಗಳು ನಮಗೆ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ (100, 200, 1000...) ಬ್ರೌಸರ್ಗಳು/ಎಮ್ಯುಲೇಟರ್ಗಳನ್ನು ಬೇಡಿಕೆಯ ಮೇರೆಗೆ ಚಲಾಯಿಸಲು ಅವಕಾಶ ನೀಡುತ್ತವೆ, ಪರೀಕ್ಷಾ ಫಲಿತಾಂಶಗಳನ್ನು ಸಾಧ್ಯವಾದಷ್ಟು ಬೇಗ ಪಡೆದುಕೊಳ್ಳಿ ಮತ್ತು ಅಂತಹ ಅತ್ಯಂತ ಸಂಪನ್ಮೂಲ-ತೀವ್ರತೆಗೆ ಪಾವತಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತವೆ. ಶಕ್ತಿ.
ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಕ್ಲೌಡ್ ಪೂರೈಕೆದಾರರು ಅಮೆಜಾನ್ ವೆಬ್ ಸೇವೆಗಳು (AWS), Microsoft Azure, Google Cloud Platform (GCP). GCP ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದಕ್ಕೆ ಹೇಗೆ ಮಾರ್ಗದರ್ಶಿಯು ಉದಾಹರಣೆಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, ಆದರೆ ಸಾಮಾನ್ಯವಾಗಿ ನೀವು ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಕಾರ್ಯಗಳಿಗಾಗಿ ಏನು ಬಳಸುತ್ತೀರಿ ಎಂಬುದು ಮುಖ್ಯವಲ್ಲ. ಅವೆಲ್ಲವೂ ಸರಿಸುಮಾರು ಒಂದೇ ರೀತಿಯ ಕಾರ್ಯವನ್ನು ಒದಗಿಸುತ್ತವೆ. ವಿಶಿಷ್ಟವಾಗಿ, ಪೂರೈಕೆದಾರರನ್ನು ಆಯ್ಕೆ ಮಾಡಲು, ನಿರ್ವಹಣೆಯು ಕಂಪನಿಯ ಸಂಪೂರ್ಣ ಮೂಲಸೌಕರ್ಯ ಮತ್ತು ವ್ಯಾಪಾರದ ಅವಶ್ಯಕತೆಗಳ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ, ಇದು ಈ ಲೇಖನದ ವ್ಯಾಪ್ತಿಯನ್ನು ಮೀರಿದೆ. ಆಟೋಮೇಷನ್ ಇಂಜಿನಿಯರ್ಗಳಿಗೆ, ಕ್ಲೌಡ್ ಪ್ರೊವೈಡರ್ಗಳ ಬಳಕೆಯನ್ನು ನಿರ್ದಿಷ್ಟವಾಗಿ ಪರೀಕ್ಷಾ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಕ್ಲೌಡ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳ ಬಳಕೆಯನ್ನು ಹೋಲಿಸುವುದು ಹೆಚ್ಚು ಆಸಕ್ತಿಕರವಾಗಿರುತ್ತದೆ, ಉದಾಹರಣೆಗೆ ಸಾಸ್ ಲ್ಯಾಬ್ಗಳು, ಬ್ರೌಸರ್ಸ್ಟ್ಯಾಕ್, ಬಿಟ್ಬಾರ್, ಇತ್ಯಾದಿ. ಹಾಗಾಗಿ ನಾವೂ ಮಾಡೋಣ! ನನ್ನ ಅಭಿಪ್ರಾಯದಲ್ಲಿ, ಸಾಸ್ ಲ್ಯಾಬ್ಸ್ ಅತ್ಯಂತ ಪ್ರಸಿದ್ಧ ಕ್ಲೌಡ್ ಟೆಸ್ಟಿಂಗ್ ಫಾರ್ಮ್ ಆಗಿದೆ, ಅದಕ್ಕಾಗಿಯೇ ನಾನು ಅದನ್ನು ಹೋಲಿಕೆಗಾಗಿ ಬಳಸಿದ್ದೇನೆ.
ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಉದ್ದೇಶಗಳಿಗಾಗಿ GCP vs ಸಾಸ್ ಲ್ಯಾಬ್ಗಳು:
Представим, что нам нужно прогнать одновременно 8 web-тестов и 8 Android-тестов. Для этого мы будем использовать GCP и запустим 2 виртуальные машины с Selenoid. На первой мы поднимем 8 контейнеров с браузерами. На второй – 8 контейнеров с эмуляторами. Давайте взглянем на цены:

Chrome ನೊಂದಿಗೆ ಒಂದು ಕಂಟೇನರ್ ಅನ್ನು ರನ್ ಮಾಡಲು, ನಮಗೆ ಅಗತ್ಯವಿದೆ n1-ಸ್ಟ್ಯಾಂಡರ್ಡ್-1 машина. В случае с Android ಅದು ಇರುತ್ತದೆ n1-ಸ್ಟ್ಯಾಂಡರ್ಡ್-4 ಒಂದು ಎಮ್ಯುಲೇಟರ್ಗಾಗಿ. ವಾಸ್ತವವಾಗಿ, CPU/Memory ಗಾಗಿ ನಿರ್ದಿಷ್ಟ ಬಳಕೆದಾರ ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿಸುವುದು ಹೆಚ್ಚು ಹೊಂದಿಕೊಳ್ಳುವ ಮತ್ತು ಅಗ್ಗದ ಮಾರ್ಗವಾಗಿದೆ, ಆದರೆ ಈ ಸಮಯದಲ್ಲಿ ಸಾಸ್ ಲ್ಯಾಬ್ಗಳೊಂದಿಗೆ ಹೋಲಿಕೆ ಮಾಡಲು ಇದು ಮುಖ್ಯವಲ್ಲ.
ಮತ್ತು ಸಾಸ್ ಲ್ಯಾಬ್ಗಳನ್ನು ಬಳಸುವ ಸುಂಕಗಳು ಇಲ್ಲಿವೆ:

ನೀವು ಈಗಾಗಲೇ ವ್ಯತ್ಯಾಸವನ್ನು ಗಮನಿಸಿದ್ದೀರಿ ಎಂದು ನಾನು ನಂಬುತ್ತೇನೆ, ಆದರೆ ನಮ್ಮ ಕಾರ್ಯಕ್ಕಾಗಿ ನಾನು ಇನ್ನೂ ಲೆಕ್ಕಾಚಾರಗಳೊಂದಿಗೆ ಟೇಬಲ್ ಅನ್ನು ಒದಗಿಸುತ್ತೇನೆ:
ಅಗತ್ಯವಿರುವ ಸಂಪನ್ಮೂಲಗಳು
ಮಾಸಿಕ
ಕೆಲಸದ ಸಮಯ(ಬೆಳಿಗ್ಗೆ 8 - ರಾತ್ರಿ 8)
ಕೆಲಸದ ಸಮಯ+ ಪೂರ್ವಭಾವಿ
ವೆಬ್ಗಾಗಿ GCP
n1-ಸ್ಟ್ಯಾಂಡರ್ಡ್-1 x 8 = n1-ಸ್ಟ್ಯಾಂಡರ್ಡ್-8
$194.18
23 ದಿನಗಳು * 12ಗಂ * 0.38 = $104.88
23 ದಿನಗಳು * 12ಗಂ * 0.08 = $22.08
ವೆಬ್ಗಾಗಿ ಸಾಸ್ ಲ್ಯಾಬ್ಗಳು
ವರ್ಚುವಲ್ Cloud8 ಸಮಾನಾಂತರ ಪರೀಕ್ಷೆಗಳು
$1.559
-
-
GCP for Android
n1-ಸ್ಟ್ಯಾಂಡರ್ಡ್-4 x 8: n1-ಸ್ಟ್ಯಾಂಡರ್ಡ್-16
$776.72
23 ದಿನಗಳು * 12ಗಂ * 1.52 = $419.52
23 days * 12h * 0.32 = 88.32$
Sauce Labs for Android
ನೈಜ ಸಾಧನ ಕ್ಲೌಡ್ 8 ಸಮಾನಾಂತರ ಪರೀಕ್ಷೆಗಳು
$1.999
-
-
ನೀವು ನೋಡುವಂತೆ, ವೆಚ್ಚದಲ್ಲಿನ ವ್ಯತ್ಯಾಸವು ದೊಡ್ಡದಾಗಿದೆ, ವಿಶೇಷವಾಗಿ ನೀವು ಹನ್ನೆರಡು ಗಂಟೆಗಳ ಕೆಲಸದ ಅವಧಿಯಲ್ಲಿ ಮಾತ್ರ ಪರೀಕ್ಷೆಗಳನ್ನು ನಡೆಸಿದರೆ. ಆದರೆ ನೀವು ಪೂರ್ವಭಾವಿ ಯಂತ್ರಗಳನ್ನು ಬಳಸಿದರೆ ನೀವು ವೆಚ್ಚವನ್ನು ಇನ್ನಷ್ಟು ಕಡಿತಗೊಳಿಸಬಹುದು. ಏನದು?
ಪೂರ್ವಭಾವಿ VM ಎಂದರೆ ನೀವು ಸಾಮಾನ್ಯ ನಿದರ್ಶನಗಳಿಗಿಂತ ಹೆಚ್ಚಿನ ಬೆಲೆಯಲ್ಲಿ ರಚಿಸಬಹುದು ಮತ್ತು ಚಲಾಯಿಸಬಹುದು. ಆದಾಗ್ಯೂ, ಇತರ ಕಾರ್ಯಗಳಿಗಾಗಿ ಆ ಸಂಪನ್ಮೂಲಗಳಿಗೆ ಪ್ರವೇಶದ ಅಗತ್ಯವಿದ್ದರೆ ಕಂಪ್ಯೂಟ್ ಎಂಜಿನ್ ಈ ನಿದರ್ಶನಗಳನ್ನು ಕೊನೆಗೊಳಿಸಬಹುದು (ಪೂರ್ವಭಾವಿಯಾಗಿ). ಪೂರ್ವಭಾವಿ ನಿದರ್ಶನಗಳು ಹೆಚ್ಚುವರಿ ಕಂಪ್ಯೂಟ್ ಎಂಜಿನ್ ಸಾಮರ್ಥ್ಯ, ಆದ್ದರಿಂದ ಅವುಗಳ ಲಭ್ಯತೆಯು ಬಳಕೆಯೊಂದಿಗೆ ಬದಲಾಗುತ್ತದೆ.
ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ಗಳು ದೋಷ-ಸಹಿಷ್ಣುವಾಗಿದ್ದರೆ ಮತ್ತು ಸಂಭವನೀಯ ನಿದರ್ಶನ ಪೂರ್ವಭಾವಿಗಳನ್ನು ತಡೆದುಕೊಳ್ಳಬಲ್ಲವು, ಆಗ ಪೂರ್ವಭಾವಿ ನಿದರ್ಶನಗಳು ನಿಮ್ಮ ಕಂಪ್ಯೂಟ್ ಎಂಜಿನ್ ವೆಚ್ಚವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಮಾಡಬಹುದು. ಉದಾಹರಣೆಗೆ, ಬ್ಯಾಚ್ ಪ್ರೊಸೆಸಿಂಗ್ ಉದ್ಯೋಗಗಳು ಪೂರ್ವಭಾವಿ ನಿದರ್ಶನಗಳಲ್ಲಿ ರನ್ ಆಗಬಹುದು. ಪ್ರಕ್ರಿಯೆಯ ಸಮಯದಲ್ಲಿ ಆ ಕೆಲವು ನಿದರ್ಶನಗಳು ಕೊನೆಗೊಂಡರೆ, ಕೆಲಸವು ನಿಧಾನಗೊಳ್ಳುತ್ತದೆ ಆದರೆ ಸಂಪೂರ್ಣವಾಗಿ ನಿಲ್ಲುವುದಿಲ್ಲ. ಪೂರ್ವಭಾವಿ ನಿದರ್ಶನಗಳು ನಿಮ್ಮ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ನಿದರ್ಶನಗಳ ಮೇಲೆ ಹೆಚ್ಚುವರಿ ಕೆಲಸದ ಹೊರೆಯನ್ನು ಇರಿಸದೆಯೇ ಮತ್ತು ಹೆಚ್ಚುವರಿ ಸಾಮಾನ್ಯ ನಿದರ್ಶನಗಳಿಗೆ ಪೂರ್ಣ ಬೆಲೆಯನ್ನು ಪಾವತಿಸುವ ಅಗತ್ಯವಿಲ್ಲದೇ ನಿಮ್ಮ ಬ್ಯಾಚ್ ಪ್ರಕ್ರಿಯೆ ಕಾರ್ಯಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸುತ್ತದೆ.
И это все еще не конец! В действительности я уверен, что никто не запускает тесты по 12 часов без перерыва. И если это так, то вы можете автоматически запускать и останавливать виртуальные машины, когда они не нужны. Реальное время использования может снизиться до 6 часов в сутки. Тогда оплата в контексте нашей задачи уменьшится аж до 11$ в месяц за 8 браузеров. Разве это не прекрасно? Но с preemptible машинами мы должны быть осторожны и готовы к прерываниям и нестабильной работе, хотя эти ситуации могут быть предусмотрены и обработаны программно. Оно того стоит!
Но ни в коем случае я не говорю ‘никогда не используйте облачные тестовые фермы’. Они имеют ряд преимуществ. Прежде всего это не просто виртуальная машина, а полноценное решение для автоматизации тестирования с набором функционала из коробки: удаленный доступ, логи, скриншоты, видеозапись, различные браузеры и физические мобильные устройства. Во многих ситуациях это может быть незаменимой шикарной альтернативой. Особенно тестовые платформы полезны для IOS-автоматизации, когда публичные облака могут предложить только Linux/Windows-системы. Но разговор про IOS будет в следующих статьях. Я рекомендую всегда смотреть по ситуации и отталкиваться от задач: в каких-то дешевле и эффективнее использовать публичные облака, а в каких то тестовые платформы определено стоят потраченных денег.
ಮೂಲಸೌಕರ್ಯದ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯ ವಿವರಣೆ

ಅನ್ವೇಷಿಸಲು ಲಿಂಕ್ಗಳು
ಇದೇ ರೀತಿಯ ಉಪಕರಣಗಳು:
6. ಆರ್ಕೆಸ್ಟ್ರೇಶನ್
ತಂತ್ರಜ್ಞಾನದ ಸಂಕ್ಷಿಪ್ತ ವಿವರಣೆ
У меня хорошие новости – мы почти достигли конца статьи! На данный момент наша инфраструктура автоматизации состоит из web и Android-тестов, которые мы запускаем через GitLab CI параллельно, используя инструменты с поддержкой Docker: Selenium grid и Selenoid. Более того, мы используем созданные через GCP виртуальные машины для поднятия в них контейнеров с браузерами и эмуляторами. Для уменьшения расходов мы запускаем этим виртуальные машины только по требованию и останавливаем, когда тестирование не проводится. Существует ли что-то еще, что может улучшить нашу инфраструктуру? Ответ – да! Встречаем Kubernetes (K8s)!
ಮೊದಲಿಗೆ, ಆರ್ಕೆಸ್ಟ್ರೇಶನ್, ಕ್ಲಸ್ಟರ್ ಮತ್ತು ಕುಬರ್ನೆಟ್ಸ್ ಪದಗಳು ಪರಸ್ಪರ ಹೇಗೆ ಸಂಬಂಧಿಸಿವೆ ಎಂಬುದನ್ನು ನೋಡೋಣ. ಉನ್ನತ ಮಟ್ಟದಲ್ಲಿ, ಆರ್ಕೆಸ್ಟ್ರೇಶನ್ ಎನ್ನುವುದು ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿಯೋಜಿಸುವ ಮತ್ತು ನಿರ್ವಹಿಸುವ ವ್ಯವಸ್ಥೆಯಾಗಿದೆ. ಪರೀಕ್ಷಾ ಯಾಂತ್ರೀಕರಣಕ್ಕಾಗಿ, ಅಂತಹ ಕಂಟೈನರೈಸ್ಡ್ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಸೆಲೆನಿಯಮ್ ಗ್ರಿಡ್ ಮತ್ತು ಸೆಲೆನಾಯ್ಡ್. ಡಾಕರ್ ಮತ್ತು K8 ಗಳು ಪರಸ್ಪರ ಪೂರಕವಾಗಿರುತ್ತವೆ. ಮೊದಲನೆಯದನ್ನು ಅಪ್ಲಿಕೇಶನ್ ನಿಯೋಜನೆಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಎರಡನೆಯದು ಆರ್ಕೆಸ್ಟ್ರೇಶನ್ಗಾಗಿ. ಪ್ರತಿಯಾಗಿ, K8s ಒಂದು ಕ್ಲಸ್ಟರ್ ಆಗಿದೆ. VM ಗಳನ್ನು ನೋಡ್ಗಳಾಗಿ ಬಳಸುವುದು ಕ್ಲಸ್ಟರ್ನ ಕಾರ್ಯವಾಗಿದೆ, ಇದು ಒಂದು ಸರ್ವರ್ನಲ್ಲಿ (ಕ್ಲಸ್ಟರ್) ವಿವಿಧ ಕಾರ್ಯಗಳು, ಪ್ರೋಗ್ರಾಂಗಳು ಮತ್ತು ಸೇವೆಗಳನ್ನು ಸ್ಥಾಪಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಯಾವುದೇ ನೋಡ್ಗಳು ವಿಫಲವಾದರೆ, ಇತರ ನೋಡ್ಗಳು ಆಯ್ಕೆಯಾಗುತ್ತವೆ, ಇದು ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನ ಅಡೆತಡೆಯಿಲ್ಲದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಇದರ ಜೊತೆಗೆ, K8s ಸ್ಕೇಲಿಂಗ್ಗೆ ಸಂಬಂಧಿಸಿದ ಪ್ರಮುಖ ಕಾರ್ಯವನ್ನು ಹೊಂದಿದೆ, ಇದಕ್ಕೆ ಧನ್ಯವಾದಗಳು ನಾವು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಲೋಡ್ ಮತ್ತು ಸೆಟ್ ಮಿತಿಗಳ ಆಧಾರದ ಮೇಲೆ ಸಂಪನ್ಮೂಲಗಳ ಸೂಕ್ತ ಪ್ರಮಾಣವನ್ನು ಪಡೆಯುತ್ತೇವೆ.
ಸತ್ಯದಲ್ಲಿ, ಮೊದಲಿನಿಂದಲೂ ಕುಬರ್ನೆಟ್ಸ್ ಅನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ನಿಯೋಜಿಸುವುದು ಕ್ಷುಲ್ಲಕ ಕೆಲಸವಲ್ಲ. ನಾನು "ಕುಬರ್ನೆಟ್ಸ್ ದಿ ಹಾರ್ಡ್ ವೇ" ಅನ್ನು ಹೇಗೆ ಮಾರ್ಗದರ್ಶಿಸಬೇಕೆಂದು ಪ್ರಸಿದ್ಧವಾದ ಲಿಂಕ್ ಅನ್ನು ಬಿಡುತ್ತೇನೆ ಮತ್ತು ನಿಮಗೆ ಆಸಕ್ತಿ ಇದ್ದರೆ, ನೀವು ಅದನ್ನು ಅಭ್ಯಾಸ ಮಾಡಬಹುದು. ಆದರೆ, ಅದೃಷ್ಟವಶಾತ್, ಪರ್ಯಾಯ ವಿಧಾನಗಳು ಮತ್ತು ಸಾಧನಗಳಿವೆ. GCP ಯಲ್ಲಿ Google Kubernetes ಎಂಜಿನ್ (GKE) ಅನ್ನು ಬಳಸುವುದು ಸುಲಭವಾದ ಮಾರ್ಗವಾಗಿದೆ, ಇದು ಕೆಲವು ಕ್ಲಿಕ್ಗಳಲ್ಲಿ ರೆಡಿಮೇಡ್ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಪಡೆಯಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಕಲಿಕೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಈ ವಿಧಾನವನ್ನು ಬಳಸಲು ನಾನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ, ಏಕೆಂದರೆ ಆಂತರಿಕ ಘಟಕಗಳನ್ನು ಪರಸ್ಪರ ಹೇಗೆ ಸಂಯೋಜಿಸಬೇಕು ಎಂಬುದನ್ನು ಕಲಿಯುವ ಬದಲು ನಿಮ್ಮ ಕಾರ್ಯಗಳಿಗಾಗಿ K8 ಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದನ್ನು ಕಲಿಯಲು ಇದು ನಿಮ್ಮನ್ನು ಕೇಂದ್ರೀಕರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಮೂಲಸೌಕರ್ಯಕ್ಕೆ ಮೌಲ್ಯ
K8s ಒದಗಿಸುವ ಕೆಲವು ಮಹತ್ವದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನೋಡೋಣ:
- ಅಪ್ಲಿಕೇಶನ್ ನಿಯೋಜನೆ: VM ಗಳ ಬದಲಿಗೆ ಬಹು-ನೋಡ್ಸ್ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಬಳಸುವುದು;
- ಡೈನಾಮಿಕ್ ಸ್ಕೇಲಿಂಗ್: ಬೇಡಿಕೆಯ ಮೇಲೆ ಮಾತ್ರ ಬಳಸಲಾಗುವ ಸಂಪನ್ಮೂಲಗಳ ವೆಚ್ಚವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ;
- ಸ್ವಯಂ-ಗುಣಪಡಿಸುವಿಕೆ: ಬೀಜಕೋಶಗಳ ಸ್ವಯಂಚಾಲಿತ ಚೇತರಿಕೆ (ಇದರ ಪರಿಣಾಮವಾಗಿ ಧಾರಕಗಳನ್ನು ಸಹ ಪುನಃಸ್ಥಾಪಿಸಲಾಗುತ್ತದೆ);
- ಅಲಭ್ಯತೆಯಿಲ್ಲದೆ ನವೀಕರಣಗಳು ಮತ್ತು ಬದಲಾವಣೆಗಳ ರೋಲ್ಬ್ಯಾಕ್ಗಳು: ಪರಿಕರಗಳು, ಬ್ರೌಸರ್ಗಳು ಮತ್ತು ಎಮ್ಯುಲೇಟರ್ಗಳನ್ನು ನವೀಕರಿಸುವುದು ಪ್ರಸ್ತುತ ಬಳಕೆದಾರರ ಕೆಲಸವನ್ನು ಅಡ್ಡಿಪಡಿಸುವುದಿಲ್ಲ
ಆದರೆ K8s ಇನ್ನೂ ಬೆಳ್ಳಿ ಬುಲೆಟ್ ಅಲ್ಲ. ನಾವು ಪರಿಗಣಿಸುತ್ತಿರುವ ಪರಿಕರಗಳ ಸಂದರ್ಭದಲ್ಲಿ ಎಲ್ಲಾ ಅನುಕೂಲಗಳು ಮತ್ತು ಮಿತಿಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು (ಸೆಲೆನಿಯಮ್ ಗ್ರಿಡ್, ಸೆಲೆನಾಯ್ಡ್), ನಾವು K8 ಗಳ ರಚನೆಯನ್ನು ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಚರ್ಚಿಸುತ್ತೇವೆ. ಕ್ಲಸ್ಟರ್ ಎರಡು ರೀತಿಯ ನೋಡ್ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ: ಮಾಸ್ಟರ್ ನೋಡ್ಗಳು ಮತ್ತು ವರ್ಕರ್ಸ್ ನೋಡ್ಗಳು. ನಿರ್ವಹಣೆ, ನಿಯೋಜನೆ ಮತ್ತು ವೇಳಾಪಟ್ಟಿ ನಿರ್ಧಾರಗಳಿಗೆ ಮಾಸ್ಟರ್ ನೋಡ್ಗಳು ಜವಾಬ್ದಾರರಾಗಿರುತ್ತಾರೆ. ವರ್ಕರ್ಸ್ ನೋಡ್ಗಳು ಅಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ. ನೋಡ್ಗಳು ಕಂಟೇನರ್ ರನ್ಟೈಮ್ ಪರಿಸರವನ್ನು ಸಹ ಒಳಗೊಂಡಿರುತ್ತವೆ. ನಮ್ಮ ಸಂದರ್ಭದಲ್ಲಿ, ಇದು ಡಾಕರ್ ಆಗಿದೆ, ಇದು ಕಂಟೇನರ್-ಸಂಬಂಧಿತ ಕಾರ್ಯಾಚರಣೆಗಳಿಗೆ ಕಾರಣವಾಗಿದೆ. ಆದರೆ ಪರ್ಯಾಯ ಪರಿಹಾರಗಳೂ ಇವೆ, ಉದಾಹರಣೆಗೆ. ಸ್ಕೇಲಿಂಗ್ ಅಥವಾ ಸ್ವಯಂ-ಗುಣಪಡಿಸುವಿಕೆಯು ಧಾರಕಗಳಿಗೆ ನೇರವಾಗಿ ಅನ್ವಯಿಸುವುದಿಲ್ಲ ಎಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಬಹಳ ಮುಖ್ಯ. ಪಾಡ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಸೇರಿಸುವ/ಕಡಿಮೆ ಮಾಡುವ ಮೂಲಕ ಇದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ, ಇದು ಧಾರಕಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ (ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರತಿ ಪಾಡ್ಗೆ ಒಂದು ಕಂಟೇನರ್, ಆದರೆ ಕಾರ್ಯವನ್ನು ಅವಲಂಬಿಸಿ ಹೆಚ್ಚು ಇರಬಹುದು). ಉನ್ನತ ಮಟ್ಟದ ಕ್ರಮಾನುಗತವು ವರ್ಕರ್ ನೋಡ್ಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಅದರೊಳಗೆ ಪಾಡ್ಗಳಿವೆ, ಅದರೊಳಗೆ ಧಾರಕಗಳನ್ನು ಬೆಳೆಸಲಾಗುತ್ತದೆ.
ಸ್ಕೇಲಿಂಗ್ ವೈಶಿಷ್ಟ್ಯವು ಪ್ರಮುಖವಾಗಿದೆ ಮತ್ತು ಕ್ಲಸ್ಟರ್ ನೋಡ್-ಪೂಲ್ನೊಳಗೆ ಮತ್ತು ನೋಡ್ನೊಳಗಿನ ಪಾಡ್ಗಳಿಗೆ ಎರಡೂ ನೋಡ್ಗಳಿಗೆ ಅನ್ವಯಿಸಬಹುದು. ನೋಡ್ಗಳು ಮತ್ತು ಪಾಡ್ಗಳೆರಡಕ್ಕೂ ಅನ್ವಯಿಸುವ 2 ವಿಧದ ಸ್ಕೇಲಿಂಗ್ಗಳಿವೆ. ಮೊದಲ ವಿಧವು ಸಮತಲವಾಗಿದೆ - ನೋಡ್ಗಳು/ಪಾಡ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಹೆಚ್ಚಿಸುವ ಮೂಲಕ ಸ್ಕೇಲಿಂಗ್ ಸಂಭವಿಸುತ್ತದೆ. ಈ ಪ್ರಕಾರವು ಹೆಚ್ಚು ಯೋಗ್ಯವಾಗಿದೆ. ಎರಡನೆಯ ವಿಧವು, ಅದರ ಪ್ರಕಾರ, ಲಂಬವಾಗಿರುತ್ತದೆ. ನೋಡ್ಗಳು/ಪಾಡ್ಗಳ ಗಾತ್ರವನ್ನು ಹೆಚ್ಚಿಸುವ ಮೂಲಕ ಸ್ಕೇಲಿಂಗ್ ಅನ್ನು ಕೈಗೊಳ್ಳಲಾಗುತ್ತದೆ ಮತ್ತು ಅವುಗಳ ಸಂಖ್ಯೆ ಅಲ್ಲ.
ಈಗ ಮೇಲಿನ ಪದಗಳ ಸಂದರ್ಭದಲ್ಲಿ ನಮ್ಮ ಸಾಧನಗಳನ್ನು ನೋಡೋಣ.
ಸೆಲೆನಿಯಮ್ ಗ್ರಿಡ್
ಮೊದಲೇ ಹೇಳಿದಂತೆ, ಸೆಲೆನಿಯಮ್ ಗ್ರಿಡ್ ಬಹಳ ಜನಪ್ರಿಯ ಸಾಧನವಾಗಿದೆ, ಮತ್ತು ಅದನ್ನು ಕಂಟೈನರೈಸ್ ಮಾಡಿರುವುದು ಆಶ್ಚರ್ಯವೇನಿಲ್ಲ. ಆದ್ದರಿಂದ, ಸೆಲೆನಿಯಮ್ ಗ್ರಿಡ್ ಅನ್ನು K8 ಗಳಲ್ಲಿ ನಿಯೋಜಿಸಬಹುದೆಂದು ಆಶ್ಚರ್ಯವೇನಿಲ್ಲ. ಇದನ್ನು ಹೇಗೆ ಮಾಡಬೇಕೆಂಬುದರ ಉದಾಹರಣೆಯನ್ನು ಅಧಿಕೃತ K8s ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಕಾಣಬಹುದು. ಎಂದಿನಂತೆ, ನಾನು ವಿಭಾಗದ ಕೊನೆಯಲ್ಲಿ ಲಿಂಕ್ಗಳನ್ನು ಲಗತ್ತಿಸುತ್ತೇನೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಟೆರಾಫಾರ್ಮ್ನಲ್ಲಿ ಇದನ್ನು ಹೇಗೆ ಮಾಡಬೇಕೆಂದು ಮಾರ್ಗದರ್ಶಿ ಹೇಗೆ ತೋರಿಸುತ್ತದೆ. ಬ್ರೌಸರ್ ಕಂಟೈನರ್ಗಳನ್ನು ಹೊಂದಿರುವ ಪಾಡ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಹೇಗೆ ಅಳೆಯುವುದು ಎಂಬುದರ ಕುರಿತು ಸೂಚನೆಗಳಿವೆ. ಆದರೆ K8 ಗಳ ಸಂದರ್ಭದಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತ ಸ್ಕೇಲಿಂಗ್ ಕಾರ್ಯವು ಇನ್ನೂ ಸಂಪೂರ್ಣವಾಗಿ ಸ್ಪಷ್ಟವಾದ ಕಾರ್ಯವಲ್ಲ. ನಾನು ಅಧ್ಯಯನ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿದಾಗ, ನನಗೆ ಯಾವುದೇ ಪ್ರಾಯೋಗಿಕ ಮಾರ್ಗದರ್ಶನ ಅಥವಾ ಶಿಫಾರಸುಗಳು ಸಿಗಲಿಲ್ಲ. DevOps ತಂಡದ ಬೆಂಬಲದೊಂದಿಗೆ ಹಲವಾರು ಅಧ್ಯಯನಗಳು ಮತ್ತು ಪ್ರಯೋಗಗಳ ನಂತರ, ನಾವು ಒಂದು ಪಾಡ್ನೊಳಗೆ ಅಗತ್ಯವಾದ ಬ್ರೌಸರ್ಗಳೊಂದಿಗೆ ಕಂಟೇನರ್ಗಳನ್ನು ಹೆಚ್ಚಿಸುವ ವಿಧಾನವನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ್ದೇವೆ, ಅದು ಒಂದು ವರ್ಕರ್ ನೋಡ್ನಲ್ಲಿದೆ. ಈ ವಿಧಾನವು ನೋಡ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಹೆಚ್ಚಿಸುವ ಮೂಲಕ ಸಮತಲ ಸ್ಕೇಲಿಂಗ್ ತಂತ್ರವನ್ನು ಅನ್ವಯಿಸಲು ನಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಭವಿಷ್ಯದಲ್ಲಿ ಇದು ಬದಲಾಗುತ್ತದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ ಮತ್ತು ಉತ್ತಮ ವಿಧಾನಗಳು ಮತ್ತು ಸಿದ್ಧ ಪರಿಹಾರಗಳ ಹೆಚ್ಚಿನ ವಿವರಣೆಗಳನ್ನು ನಾವು ನೋಡುತ್ತೇವೆ, ವಿಶೇಷವಾಗಿ ಬದಲಾದ ಆಂತರಿಕ ವಾಸ್ತುಶಿಲ್ಪದೊಂದಿಗೆ ಸೆಲೆನಿಯಮ್ ಗ್ರಿಡ್ 4 ಬಿಡುಗಡೆಯಾದ ನಂತರ.
ಸೆಲೆನಾಯ್ಡ್:
K8s ನಲ್ಲಿ ಸೆಲೆನಾಯ್ಡ್ ನಿಯೋಜನೆಯು ಪ್ರಸ್ತುತ ದೊಡ್ಡ ನಿರಾಶೆಯಾಗಿದೆ. ಅವು ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. ಸಿದ್ಧಾಂತದಲ್ಲಿ, ನಾವು ಪಾಡ್ನೊಳಗೆ ಸೆಲೆನಾಯ್ಡ್ ಕಂಟೇನರ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಬಹುದು, ಆದರೆ ಸೆಲೆನಾಯ್ಡ್ ಬ್ರೌಸರ್ಗಳೊಂದಿಗೆ ಕಂಟೇನರ್ಗಳನ್ನು ಪ್ರಾರಂಭಿಸಿದಾಗ, ಅವು ಇನ್ನೂ ಅದೇ ಪಾಡ್ನೊಳಗೆ ಇರುತ್ತವೆ. ಇದು ಸ್ಕೇಲಿಂಗ್ ಅನ್ನು ಅಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ ಮತ್ತು ಇದರ ಪರಿಣಾಮವಾಗಿ, ಕ್ಲಸ್ಟರ್ನೊಳಗಿನ ಸೆಲೆನಾಯ್ಡ್ನ ಕೆಲಸವು ವರ್ಚುವಲ್ ಯಂತ್ರದೊಳಗಿನ ಕೆಲಸದಿಂದ ಭಿನ್ನವಾಗಿರುವುದಿಲ್ಲ. ಕಥೆಯ ಅಂತ್ಯ.
ಚಂದ್ರನ:
ಸೆಲೆನಾಯ್ಡ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ಈ ಅಡಚಣೆಯನ್ನು ತಿಳಿದುಕೊಂಡು, ಡೆವಲಪರ್ಗಳು ಮೂನ್ ಎಂಬ ಹೆಚ್ಚು ಶಕ್ತಿಶಾಲಿ ಸಾಧನವನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿದರು. ಈ ಉಪಕರಣವನ್ನು ಮೂಲತಃ ಕುಬರ್ನೆಟ್ಸ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಇದರ ಪರಿಣಾಮವಾಗಿ, ಆಟೋಸ್ಕೇಲಿಂಗ್ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಬಹುದು ಮತ್ತು ಬಳಸಬೇಕು. ಇದಲ್ಲದೆ, ಈ ಸಮಯದಲ್ಲಿ ಅದು ಇದೆ ಎಂದು ನಾನು ಹೇಳುತ್ತೇನೆ ಏಕೈಕ ಸೆಲೆನಿಯಮ್ ಜಗತ್ತಿನಲ್ಲಿನ ಒಂದು ಸಾಧನ, ಇದು ಬಾಕ್ಸ್ನ ಹೊರಗೆ ಸ್ಥಳೀಯ K8s ಕ್ಲಸ್ಟರ್ ಬೆಂಬಲವನ್ನು ಹೊಂದಿದೆ (ಇನ್ನು ಮುಂದೆ ಲಭ್ಯವಿಲ್ಲ, ಮುಂದಿನ ಉಪಕರಣವನ್ನು ನೋಡಿ ) ಈ ಬೆಂಬಲವನ್ನು ಒದಗಿಸುವ ಚಂದ್ರನ ಪ್ರಮುಖ ಲಕ್ಷಣಗಳು:
ಸಂಪೂರ್ಣವಾಗಿ ಸ್ಥಿತಿಯಿಲ್ಲದ. ಸೆಲೆನಾಯ್ಡ್ ಪ್ರಸ್ತುತ ಚಾಲನೆಯಲ್ಲಿರುವ ಬ್ರೌಸರ್ ಸೆಷನ್ಗಳ ಬಗ್ಗೆ ಮೆಮೊರಿ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಕೆಲವು ಕಾರಣಗಳಿಂದ ಅದರ ಪ್ರಕ್ರಿಯೆಯು ಕ್ರ್ಯಾಶ್ ಆಗಿದ್ದರೆ - ನಂತರ ಎಲ್ಲಾ ಚಾಲನೆಯಲ್ಲಿರುವ ಅವಧಿಗಳು ಕಳೆದುಹೋಗುತ್ತವೆ. ಚಂದ್ರನಿಗೆ ವಿರುದ್ಧವಾಗಿ ಯಾವುದೇ ಆಂತರಿಕ ಸ್ಥಿತಿಯನ್ನು ಹೊಂದಿಲ್ಲ ಮತ್ತು ಡೇಟಾ ಕೇಂದ್ರಗಳಾದ್ಯಂತ ಪುನರಾವರ್ತಿಸಬಹುದು. ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಪ್ರತಿಕೃತಿಗಳು ಕೆಳಗೆ ಹೋದರೂ ಬ್ರೌಸರ್ ಸೆಷನ್ಗಳು ಜೀವಂತವಾಗಿರುತ್ತವೆ.
ಆದ್ದರಿಂದ, ಚಂದ್ರನು ಉತ್ತಮ ಪರಿಹಾರವಾಗಿದೆ, ಆದರೆ ಒಂದು ಸಮಸ್ಯೆ ಇದೆ: ಇದು ಉಚಿತವಲ್ಲ. ಬೆಲೆ ಅವಧಿಗಳ ಸಂಖ್ಯೆಯನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. ನೀವು 0-4 ಸೆಷನ್ಗಳನ್ನು ಮಾತ್ರ ಉಚಿತವಾಗಿ ಚಲಾಯಿಸಬಹುದು, ಇದು ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಲ್ಲ. ಆದರೆ, ಐದನೇ ಅಧಿವೇಶನದಿಂದ ಪ್ರಾರಂಭಿಸಿ, ನೀವು ಪ್ರತಿಯೊಂದಕ್ಕೂ $5 ಪಾವತಿಸಬೇಕಾಗುತ್ತದೆ. ಪರಿಸ್ಥಿತಿಯು ಕಂಪನಿಯಿಂದ ಕಂಪನಿಗೆ ಭಿನ್ನವಾಗಿರಬಹುದು, ಆದರೆ ನಮ್ಮ ಸಂದರ್ಭದಲ್ಲಿ, ಚಂದ್ರನನ್ನು ಬಳಸುವುದು ಅರ್ಥಹೀನವಾಗಿದೆ. ನಾನು ಮೇಲೆ ವಿವರಿಸಿದಂತೆ, ನಾವು ಬೇಡಿಕೆಯ ಮೇರೆಗೆ ಸೆಲೆನಿಯಮ್ ಗ್ರಿಡ್ನೊಂದಿಗೆ VM ಗಳನ್ನು ಚಲಾಯಿಸಬಹುದು ಅಥವಾ ಕ್ಲಸ್ಟರ್ನಲ್ಲಿ ನೋಡ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಹೆಚ್ಚಿಸಬಹುದು. ಸರಿಸುಮಾರು ಒಂದು ಪೈಪ್ಲೈನ್ಗಾಗಿ, ನಾವು 500 ಬ್ರೌಸರ್ಗಳನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ ಮತ್ತು ಪರೀಕ್ಷೆಗಳು ಪೂರ್ಣಗೊಂಡ ನಂತರ ಎಲ್ಲಾ ಸಂಪನ್ಮೂಲಗಳನ್ನು ನಿಲ್ಲಿಸುತ್ತೇವೆ. ನಾವು ಚಂದ್ರನನ್ನು ಬಳಸಿದರೆ, ನಾವು ಎಷ್ಟು ಬಾರಿ ಪರೀಕ್ಷೆಗಳನ್ನು ನಡೆಸುತ್ತಿದ್ದರೂ ತಿಂಗಳಿಗೆ ಹೆಚ್ಚುವರಿಯಾಗಿ 500 x 5 = $2500 ಪಾವತಿಸಬೇಕಾಗುತ್ತದೆ. ಮತ್ತೆ, ನಾನು ಚಂದ್ರನನ್ನು ಬಳಸಬೇಡಿ ಎಂದು ಹೇಳುತ್ತಿಲ್ಲ. ನಿಮ್ಮ ಕಾರ್ಯಗಳಿಗಾಗಿ, ಇದು ಅನಿವಾರ್ಯ ಪರಿಹಾರವಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, ನಿಮ್ಮ ಸಂಸ್ಥೆಯಲ್ಲಿ ನೀವು ಅನೇಕ ಯೋಜನೆಗಳು/ತಂಡಗಳನ್ನು ಹೊಂದಿದ್ದರೆ ಮತ್ತು ನಿಮಗೆ ಎಲ್ಲರಿಗೂ ದೊಡ್ಡ ಸಾಮಾನ್ಯ ಕ್ಲಸ್ಟರ್ ಅಗತ್ಯವಿದ್ದರೆ. ಯಾವಾಗಲೂ ಹಾಗೆ, ನಾನು ಕೊನೆಯಲ್ಲಿ ಲಿಂಕ್ ಅನ್ನು ಬಿಡುತ್ತೇನೆ ಮತ್ತು ನಿಮ್ಮ ಕಾರ್ಯದ ಸಂದರ್ಭದಲ್ಲಿ ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ಮಾಡಲು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ.
ಕ್ಯಾಲಿಸ್ಟೊ: (ಗಮನ! ಇದು ಮೂಲ ಲೇಖನದಲ್ಲಿಲ್ಲ ಮತ್ತು ರಷ್ಯಾದ ಅನುವಾದದಲ್ಲಿ ಮಾತ್ರ ಒಳಗೊಂಡಿದೆ)
ನಾನು ಹೇಳಿದಂತೆ, ಸೆಲೆನಿಯಮ್ ಬಹಳ ಜನಪ್ರಿಯ ಸಾಧನವಾಗಿದೆ ಮತ್ತು ಐಟಿ ಕ್ಷೇತ್ರವು ಬಹಳ ಬೇಗನೆ ಅಭಿವೃದ್ಧಿ ಹೊಂದುತ್ತಿದೆ. ನಾನು ಅನುವಾದದಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಿರುವಾಗ, ಕ್ಯಾಲಿಸ್ಟೊ ಎಂಬ ಹೊಸ ಭರವಸೆಯ ಸಾಧನವು ವೆಬ್ನಲ್ಲಿ ಕಾಣಿಸಿಕೊಂಡಿತು (ಹಲೋ ಸೈಪ್ರೆಸ್ ಮತ್ತು ಇತರ ಸೆಲೆನಿಯಮ್ ಕೊಲೆಗಾರರು). ಇದು K8 ಗಳೊಂದಿಗೆ ಸ್ಥಳೀಯವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ನೋಡ್ಗಳಾದ್ಯಂತ ವಿತರಿಸಲಾದ ಪಾಡ್ಗಳಲ್ಲಿ ಸೆಲೆನಾಯ್ಡ್ ಪಾತ್ರೆಗಳನ್ನು ಚಲಾಯಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಆಟೋಸ್ಕೇಲಿಂಗ್ ಸೇರಿದಂತೆ ಎಲ್ಲವೂ ಬಾಕ್ಸ್ನ ಹೊರಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಅದ್ಭುತ, ಆದರೆ ಪರೀಕ್ಷಿಸಬೇಕಾಗಿದೆ. ನಾನು ಈಗಾಗಲೇ ಈ ಉಪಕರಣವನ್ನು ನಿಯೋಜಿಸಲು ಮತ್ತು ಹಲವಾರು ಪ್ರಯೋಗಗಳನ್ನು ನಡೆಸಲು ನಿರ್ವಹಿಸುತ್ತಿದ್ದೇನೆ. ಆದರೆ ತೀರ್ಮಾನಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ಇದು ತುಂಬಾ ಮುಂಚೆಯೇ, ಬಹಳ ದೂರದ ಫಲಿತಾಂಶಗಳನ್ನು ಪಡೆದ ನಂತರ, ಬಹುಶಃ ನಾನು ಮುಂದಿನ ಲೇಖನಗಳಲ್ಲಿ ವಿಮರ್ಶೆಯನ್ನು ಮಾಡುತ್ತೇನೆ. ಸದ್ಯಕ್ಕೆ ನಾನು ಸ್ವತಂತ್ರ ಸಂಶೋಧನೆಗಾಗಿ ಮಾತ್ರ ಲಿಂಕ್ಗಳನ್ನು ಬಿಡುತ್ತಿದ್ದೇನೆ.
ಮೂಲಸೌಕರ್ಯದ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯ ವಿವರಣೆ
ಅನ್ವೇಷಿಸಲು ಲಿಂಕ್ಗಳು
ಇದೇ ರೀತಿಯ ಉಪಕರಣಗಳು
7. ಕೋಡ್ (IaC) ಆಗಿ ಮೂಲಸೌಕರ್ಯ
ತಂತ್ರಜ್ಞಾನದ ಸಂಕ್ಷಿಪ್ತ ವಿವರಣೆ
ಮತ್ತು ಈಗ ನಾವು ಕೊನೆಯ ವಿಭಾಗಕ್ಕೆ ಬರುತ್ತೇವೆ. ವಿಶಿಷ್ಟವಾಗಿ, ಈ ತಂತ್ರಜ್ಞಾನ ಮತ್ತು ಸಂಬಂಧಿತ ಕಾರ್ಯಗಳು ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಎಂಜಿನಿಯರ್ಗಳ ಜವಾಬ್ದಾರಿಯಲ್ಲ. ಮತ್ತು ಇದಕ್ಕೆ ಕಾರಣಗಳಿವೆ. ಮೊದಲನೆಯದಾಗಿ, ಅನೇಕ ಸಂಸ್ಥೆಗಳಲ್ಲಿ, ಮೂಲಸೌಕರ್ಯ ಸಮಸ್ಯೆಗಳು DevOps ಇಲಾಖೆಯ ನಿಯಂತ್ರಣದಲ್ಲಿವೆ ಮತ್ತು ಅಭಿವೃದ್ಧಿ ತಂಡಗಳು ಪೈಪ್ಲೈನ್ ಅನ್ನು ಏನು ಕೆಲಸ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅದರೊಂದಿಗೆ ಸಂಪರ್ಕಗೊಂಡಿರುವ ಎಲ್ಲವನ್ನೂ ಹೇಗೆ ಬೆಂಬಲಿಸಬೇಕು ಎಂಬುದರ ಬಗ್ಗೆ ನಿಜವಾಗಿಯೂ ಕಾಳಜಿ ವಹಿಸುವುದಿಲ್ಲ. ಎರಡನೆಯದಾಗಿ, ಪ್ರಾಮಾಣಿಕವಾಗಿರಲಿ, ಮೂಲಸೌಕರ್ಯವನ್ನು ಕೋಡ್ ಆಗಿ (IaC) ಅಭ್ಯಾಸವನ್ನು ಇನ್ನೂ ಅನೇಕ ಕಂಪನಿಗಳಲ್ಲಿ ಅಳವಡಿಸಲಾಗಿಲ್ಲ. ಆದರೆ ಇದು ಖಂಡಿತವಾಗಿಯೂ ಜನಪ್ರಿಯ ಪ್ರವೃತ್ತಿಯಾಗಿದೆ ಮತ್ತು ಅದಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಪ್ರಕ್ರಿಯೆಗಳು, ವಿಧಾನಗಳು ಮತ್ತು ಸಾಧನಗಳಲ್ಲಿ ತೊಡಗಿಸಿಕೊಳ್ಳಲು ಪ್ರಯತ್ನಿಸುವುದು ಮುಖ್ಯವಾಗಿದೆ. ಅಥವಾ ಕನಿಷ್ಠ ನವೀಕೃತವಾಗಿರಿ.
ಈ ವಿಧಾನವನ್ನು ಬಳಸುವ ಪ್ರೇರಣೆಯೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸೋಣ. GitlabCI ನಲ್ಲಿ ಪರೀಕ್ಷೆಗಳನ್ನು ನಡೆಸಲು, Gitlab ರನ್ನರ್ ಅನ್ನು ಚಲಾಯಿಸಲು ನಮಗೆ ಕನಿಷ್ಠ ಸಂಪನ್ಮೂಲಗಳ ಅಗತ್ಯವಿದೆ ಎಂದು ನಾವು ಈಗಾಗಲೇ ಚರ್ಚಿಸಿದ್ದೇವೆ. ಮತ್ತು ಬ್ರೌಸರ್ಗಳು/ಎಮ್ಯುಲೇಟರ್ಗಳೊಂದಿಗೆ ಕಂಟೇನರ್ಗಳನ್ನು ರನ್ ಮಾಡಲು, ನಾವು VM ಅಥವಾ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಕಾಯ್ದಿರಿಸಬೇಕಾಗುತ್ತದೆ. ಸಂಪನ್ಮೂಲಗಳನ್ನು ಪರೀಕ್ಷಿಸುವುದರ ಜೊತೆಗೆ, ಡೇಟಾಬೇಸ್ಗಳು, ಸ್ವಯಂಚಾಲಿತ ವೇಳಾಪಟ್ಟಿಗಳು, ನೆಟ್ವರ್ಕ್ ಕಾನ್ಫಿಗರೇಶನ್ಗಳು, ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ಗಳು, ಬಳಕೆದಾರರ ಹಕ್ಕುಗಳು ಇತ್ಯಾದಿಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಅಭಿವೃದ್ಧಿ, ವೇದಿಕೆ, ಉತ್ಪಾದನಾ ಪರಿಸರಗಳನ್ನು ಬೆಂಬಲಿಸಲು ನಮಗೆ ಗಮನಾರ್ಹ ಪ್ರಮಾಣದ ಸಾಮರ್ಥ್ಯದ ಅಗತ್ಯವಿದೆ. ಮುಖ್ಯ ವಿಷಯವೆಂದರೆ ಎಲ್ಲವನ್ನೂ ಬೆಂಬಲಿಸಲು ಅಗತ್ಯವಿರುವ ಪ್ರಯತ್ನ. ನಾವು ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲು ಮತ್ತು ನವೀಕರಣಗಳನ್ನು ಹೊರತರಲು ಹಲವಾರು ಮಾರ್ಗಗಳಿವೆ. ಉದಾಹರಣೆಗೆ, GCP ಯ ಸಂದರ್ಭದಲ್ಲಿ, ನಾವು ಬ್ರೌಸರ್ನಲ್ಲಿ UI ಕನ್ಸೋಲ್ ಅನ್ನು ಬಳಸಬಹುದು ಮತ್ತು ಬಟನ್ಗಳನ್ನು ಕ್ಲಿಕ್ ಮಾಡುವ ಮೂಲಕ ಎಲ್ಲಾ ಕ್ರಿಯೆಗಳನ್ನು ಮಾಡಬಹುದು. ಕ್ಲೌಡ್ ಘಟಕಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು API ಕರೆಗಳನ್ನು ಬಳಸುವುದು ಅಥವಾ ಬಯಸಿದ ಮ್ಯಾನಿಪ್ಯುಲೇಷನ್ಗಳನ್ನು ನಿರ್ವಹಿಸಲು gCloud ಆಜ್ಞಾ ಸಾಲಿನ ಉಪಯುಕ್ತತೆಯನ್ನು ಬಳಸುವುದು ಪರ್ಯಾಯವಾಗಿದೆ. ಆದರೆ ನಿಜವಾಗಿಯೂ ದೊಡ್ಡ ಸಂಖ್ಯೆಯ ವಿವಿಧ ಘಟಕಗಳು ಮತ್ತು ಮೂಲಸೌಕರ್ಯ ಅಂಶಗಳೊಂದಿಗೆ, ಎಲ್ಲಾ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ನಿರ್ವಹಿಸಲು ಕಷ್ಟವಾಗುತ್ತದೆ ಅಥವಾ ಅಸಾಧ್ಯವಾಗುತ್ತದೆ. ಇದಲ್ಲದೆ, ಈ ಎಲ್ಲಾ ಹಸ್ತಚಾಲಿತ ಕ್ರಿಯೆಗಳನ್ನು ನಿಯಂತ್ರಿಸಲಾಗುವುದಿಲ್ಲ. ನಾವು ಅವುಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮೊದಲು ಪರಿಶೀಲನೆಗಾಗಿ ಸಲ್ಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆಯನ್ನು ಬಳಸುತ್ತೇವೆ ಮತ್ತು ಘಟನೆಗೆ ಕಾರಣವಾದ ಬದಲಾವಣೆಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಹಿಂತಿರುಗಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅಂತಹ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು, ಇಂಜಿನಿಯರ್ಗಳು ಸ್ವಯಂಚಾಲಿತ ಬ್ಯಾಷ್/ಶೆಲ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ರಚಿಸಿದರು ಮತ್ತು ರಚಿಸಿದರು, ಇದು ಹಿಂದಿನ ವಿಧಾನಗಳಿಗಿಂತ ಉತ್ತಮವಾಗಿಲ್ಲ, ಏಕೆಂದರೆ ಅವುಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಓದುವುದು, ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು, ನಿರ್ವಹಿಸುವುದು ಮತ್ತು ಕಾರ್ಯವಿಧಾನದ ಶೈಲಿಯಲ್ಲಿ ಮಾರ್ಪಡಿಸುವುದು ಅಷ್ಟು ಸುಲಭವಲ್ಲ.
ಈ ಲೇಖನದಲ್ಲಿ ಮತ್ತು ಹೇಗೆ ಮಾರ್ಗದರ್ಶನ ಮಾಡುವುದು, IaC ಅಭ್ಯಾಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ 2 ಪರಿಕರಗಳನ್ನು ನಾನು ಬಳಸುತ್ತೇನೆ. ಅವುಗಳೆಂದರೆ ಟೆರಾಫಾರ್ಮ್ ಮತ್ತು ಅನ್ಸಿಬಲ್. ಅದೇ ಸಮಯದಲ್ಲಿ ಅವುಗಳನ್ನು ಬಳಸುವುದರಲ್ಲಿ ಯಾವುದೇ ಅರ್ಥವಿಲ್ಲ ಎಂದು ಕೆಲವರು ನಂಬುತ್ತಾರೆ, ಏಕೆಂದರೆ ಅವುಗಳ ಕಾರ್ಯವು ಒಂದೇ ಆಗಿರುತ್ತದೆ ಮತ್ತು ಅವುಗಳು ಪರಸ್ಪರ ಬದಲಾಯಿಸಲ್ಪಡುತ್ತವೆ. ಆದರೆ ವಾಸ್ತವವಾಗಿ ಆರಂಭದಲ್ಲಿ ಅವರಿಗೆ ಸಂಪೂರ್ಣವಾಗಿ ವಿಭಿನ್ನ ಕಾರ್ಯಗಳನ್ನು ನೀಡಲಾಗುತ್ತದೆ. ಮತ್ತು ಈ ಉಪಕರಣಗಳು ಒಂದಕ್ಕೊಂದು ಪೂರಕವಾಗಿರಬೇಕು ಎಂಬ ಅಂಶವನ್ನು HashiCorp ಮತ್ತು RedHat ಪ್ರತಿನಿಧಿಸುವ ಡೆವಲಪರ್ಗಳು ಜಂಟಿ ಪ್ರಸ್ತುತಿಯಲ್ಲಿ ದೃಢಪಡಿಸಿದರು. ಪರಿಕಲ್ಪನಾ ವ್ಯತ್ಯಾಸವೆಂದರೆ ಟೆರ್ರಾಫಾರ್ಮ್ ಸರ್ವರ್ಗಳನ್ನು ಸ್ವತಃ ನಿರ್ವಹಿಸಲು ಒದಗಿಸುವ ಸಾಧನವಾಗಿದೆ. ಅನ್ಸಿಬಲ್ ಒಂದು ಕಾನ್ಫಿಗರೇಶನ್ ನಿರ್ವಹಣಾ ಸಾಧನವಾಗಿದ್ದು, ಈ ಸರ್ವರ್ಗಳಲ್ಲಿ ಸಾಫ್ಟ್ವೇರ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು, ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು ಮತ್ತು ನಿರ್ವಹಿಸುವುದು ಇದರ ಕಾರ್ಯವಾಗಿದೆ.
ಈ ಉಪಕರಣಗಳ ಮತ್ತೊಂದು ಪ್ರಮುಖ ವಿಶಿಷ್ಟ ಲಕ್ಷಣವೆಂದರೆ ಕೋಡಿಂಗ್ ಶೈಲಿ. ಬ್ಯಾಷ್ ಮತ್ತು ಅನ್ಸಿಬಲ್ಗಿಂತ ಭಿನ್ನವಾಗಿ, ಟೆರ್ರಾಫಾರ್ಮ್ ಮರಣದಂಡನೆಯ ಪರಿಣಾಮವಾಗಿ ಸಾಧಿಸಲು ಬಯಸಿದ ಅಂತಿಮ ಸ್ಥಿತಿಯ ವಿವರಣೆಯನ್ನು ಆಧರಿಸಿ ಘೋಷಣಾ ಶೈಲಿಯನ್ನು ಬಳಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ನಾವು 10 VM ಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಟೆರಾಫಾರ್ಮ್ ಮೂಲಕ ಬದಲಾವಣೆಗಳನ್ನು ಅನ್ವಯಿಸಲು ಹೋದರೆ, ನಾವು 10 VM ಗಳನ್ನು ಪಡೆಯುತ್ತೇವೆ. ನಾವು ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಮತ್ತೊಮ್ಮೆ ರನ್ ಮಾಡಿದರೆ, ನಾವು ಈಗಾಗಲೇ 10 VM ಗಳನ್ನು ಹೊಂದಿರುವುದರಿಂದ ಏನೂ ಆಗುವುದಿಲ್ಲ ಮತ್ತು ಟೆರ್ರಾಫಾರ್ಮ್ ಈ ಬಗ್ಗೆ ತಿಳಿದಿದೆ ಏಕೆಂದರೆ ಇದು ಮೂಲಸೌಕರ್ಯದ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯನ್ನು ರಾಜ್ಯದ ಫೈಲ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಆದರೆ ಅನ್ಸಿಬಲ್ ಒಂದು ಕಾರ್ಯವಿಧಾನದ ವಿಧಾನವನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು ನೀವು ಅದನ್ನು 10 ವಿಎಂಗಳನ್ನು ರಚಿಸಲು ಕೇಳಿದರೆ, ಮೊದಲ ಉಡಾವಣೆಯಲ್ಲಿ ನಾವು ಟೆರಾಫಾರ್ಮ್ನಂತೆಯೇ 10 ವಿಎಂಗಳನ್ನು ಪಡೆಯುತ್ತೇವೆ. ಆದರೆ ಮರುಪ್ರಾರಂಭಿಸಿದ ನಂತರ ನಾವು ಈಗಾಗಲೇ 20 VM ಗಳನ್ನು ಹೊಂದಿದ್ದೇವೆ. ಇದು ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸವಾಗಿದೆ. ಕಾರ್ಯವಿಧಾನದ ಶೈಲಿಯಲ್ಲಿ, ನಾವು ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸುವುದಿಲ್ಲ ಮತ್ತು ನಿರ್ವಹಿಸಬೇಕಾದ ಕ್ರಮಗಳ ಅನುಕ್ರಮವನ್ನು ಸರಳವಾಗಿ ವಿವರಿಸುತ್ತೇವೆ. ಸಹಜವಾಗಿ, ನಾವು ವಿವಿಧ ಸಂದರ್ಭಗಳನ್ನು ನಿಭಾಯಿಸಬಹುದು, ಸಂಪನ್ಮೂಲಗಳ ಅಸ್ತಿತ್ವ ಮತ್ತು ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಗೆ ಹಲವಾರು ತಪಾಸಣೆಗಳನ್ನು ಸೇರಿಸಬಹುದು, ಆದರೆ ನಮ್ಮ ಸಮಯವನ್ನು ವ್ಯರ್ಥ ಮಾಡುವುದರಲ್ಲಿ ಮತ್ತು ಈ ತರ್ಕವನ್ನು ನಿಯಂತ್ರಿಸಲು ಪ್ರಯತ್ನವನ್ನು ಮಾಡುವುದರಲ್ಲಿ ಯಾವುದೇ ಅರ್ಥವಿಲ್ಲ. ಜೊತೆಗೆ, ಇದು ತಪ್ಪುಗಳನ್ನು ಮಾಡುವ ಅಪಾಯವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.
ಮೇಲಿನ ಎಲ್ಲವನ್ನು ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಹೇಳುವುದಾದರೆ, ಸರ್ವರ್ಗಳನ್ನು ಒದಗಿಸುವುದಕ್ಕಾಗಿ ಟೆರಾಫಾರ್ಮ್ ಮತ್ತು ಘೋಷಣಾತ್ಮಕ ಸಂಕೇತವು ಹೆಚ್ಚು ಸೂಕ್ತವಾದ ಸಾಧನವಾಗಿದೆ ಎಂದು ನಾವು ತೀರ್ಮಾನಿಸಬಹುದು. ಆದರೆ ಕಾನ್ಫಿಗರೇಶನ್ ನಿರ್ವಹಣೆಯ ಕೆಲಸವನ್ನು ಅನ್ಸಿಬಲ್ಗೆ ನಿಯೋಜಿಸುವುದು ಉತ್ತಮ. ಅದು ಹೊರಗುಳಿಯುವುದರೊಂದಿಗೆ, ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಸಂದರ್ಭದಲ್ಲಿ ಬಳಕೆಯ ಸಂದರ್ಭಗಳನ್ನು ನೋಡೋಣ.
ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಮೂಲಸೌಕರ್ಯಕ್ಕೆ ಮೌಲ್ಯ
ಇಲ್ಲಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕಾದ ಏಕೈಕ ಪ್ರಮುಖ ವಿಷಯವೆಂದರೆ ಪರೀಕ್ಷಾ ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಮೂಲಸೌಕರ್ಯವನ್ನು ಸಂಪೂರ್ಣ ಕಂಪನಿಯ ಮೂಲಸೌಕರ್ಯದ ಭಾಗವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಇದರರ್ಥ ಎಲ್ಲಾ IaC ಅಭ್ಯಾಸಗಳನ್ನು ಇಡೀ ಸಂಸ್ಥೆಯ ಸಂಪನ್ಮೂಲಗಳಿಗೆ ಜಾಗತಿಕವಾಗಿ ಅನ್ವಯಿಸಬೇಕು. ಇದಕ್ಕೆ ಯಾರು ಜವಾಬ್ದಾರರು ಎಂಬುದು ನಿಮ್ಮ ಪ್ರಕ್ರಿಯೆಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ. DevOps ತಂಡವು ಈ ಸಮಸ್ಯೆಗಳಲ್ಲಿ ಹೆಚ್ಚು ಅನುಭವವನ್ನು ಹೊಂದಿದೆ, ಅವರು ಏನಾಗುತ್ತಿದೆ ಎಂಬುದರ ಸಂಪೂರ್ಣ ಚಿತ್ರವನ್ನು ನೋಡುತ್ತಾರೆ. ಆದಾಗ್ಯೂ, ಕ್ಯೂಎ ಎಂಜಿನಿಯರ್ಗಳು ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಮತ್ತು ಪೈಪ್ಲೈನ್ನ ರಚನೆಯನ್ನು ನಿರ್ಮಿಸುವ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಹೆಚ್ಚು ತೊಡಗಿಸಿಕೊಂಡಿದ್ದಾರೆ, ಇದು ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಬದಲಾವಣೆಗಳು ಮತ್ತು ಸುಧಾರಣೆಗೆ ಅವಕಾಶಗಳನ್ನು ಉತ್ತಮವಾಗಿ ನೋಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ನಿರೀಕ್ಷಿತ ಫಲಿತಾಂಶವನ್ನು ಸಾಧಿಸಲು ಒಟ್ಟಿಗೆ ಕೆಲಸ ಮಾಡುವುದು, ಜ್ಞಾನ ಮತ್ತು ಆಲೋಚನೆಗಳನ್ನು ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳುವುದು ಉತ್ತಮ ಆಯ್ಕೆಯಾಗಿದೆ.
ಪರೀಕ್ಷಾ ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಸಂದರ್ಭದಲ್ಲಿ ಟೆರಾಫಾರ್ಮ್ ಮತ್ತು ಅನ್ಸಿಬಲ್ ಅನ್ನು ಬಳಸುವ ಕೆಲವು ಉದಾಹರಣೆಗಳು ಮತ್ತು ನಾವು ಮೊದಲು ಚರ್ಚಿಸಿದ ಪರಿಕರಗಳು ಇಲ್ಲಿವೆ:
1. ಟೆರಾಫಾರ್ಮ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು VM ಗಳು ಮತ್ತು ಕ್ಲಸ್ಟರ್ಗಳ ಅಗತ್ಯ ಗುಣಲಕ್ಷಣಗಳು ಮತ್ತು ನಿಯತಾಂಕಗಳನ್ನು ವಿವರಿಸಿ.
2. ಅನ್ಸಿಬಲ್ ಅನ್ನು ಬಳಸಿ, ಪರೀಕ್ಷೆಗೆ ಅಗತ್ಯವಾದ ಪರಿಕರಗಳನ್ನು ಸ್ಥಾಪಿಸಿ: ಡಾಕರ್, ಸೆಲೆನಾಯ್ಡ್, ಸೆಲೆನಿಯಮ್ ಗ್ರಿಡ್ ಮತ್ತು ಬ್ರೌಸರ್ಗಳು/ಎಮ್ಯುಲೇಟರ್ಗಳ ಅಗತ್ಯವಿರುವ ಆವೃತ್ತಿಗಳನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ.
3. ಟೆರಾಫಾರ್ಮ್ ಬಳಸಿ, GitLab ರನ್ನರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುವ VM ನ ಗುಣಲಕ್ಷಣಗಳನ್ನು ವಿವರಿಸಿ.
4. ಅನ್ಸಿಬಲ್, ಸೆಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳು ಮತ್ತು ಕಾನ್ಫಿಗರೇಶನ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಗಿಟ್ಲ್ಯಾಬ್ ರನ್ನರ್ ಮತ್ತು ಅಗತ್ಯ ಜೊತೆಗಿನ ಪರಿಕರಗಳನ್ನು ಸ್ಥಾಪಿಸಿ.
ಮೂಲಸೌಕರ್ಯದ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯ ವಿವರಣೆ

ಅನ್ವೇಷಿಸಲು ಲಿಂಕ್ಗಳು:
ಇದೇ ರೀತಿಯ ಉಪಕರಣಗಳು
ಅದನ್ನು ಸಂಕ್ಷಿಪ್ತಗೊಳಿಸೋಣ!
ಹಂತ
ತಂತ್ರಜ್ಞಾನ
ಪರಿಕರಗಳು
ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಮೂಲಸೌಕರ್ಯಕ್ಕೆ ಮೌಲ್ಯ
1
ಸ್ಥಳೀಯ ಓಟ
Node.js, ಸೆಲೆನಿಯಮ್, ಆಪಿಯಮ್
- ವೆಬ್ ಮತ್ತು ಮೊಬೈಲ್ಗಾಗಿ ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಪರಿಕರಗಳು
- ಅನೇಕ ಭಾಷೆಗಳು ಮತ್ತು ವೇದಿಕೆಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ (Node.js ಸೇರಿದಂತೆ)
2
ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆಗಳು
ಹೋಗಿ
- ಅಭಿವೃದ್ಧಿ ಕೋಡ್ನೊಂದಿಗೆ ಇದೇ ರೀತಿಯ ಪ್ರಯೋಜನಗಳು
3
ಕಂಟೈನರೈಸೇಶನ್
Docker, Selenium grid, Selenoid (Web, Android)
- ಪರೀಕ್ಷೆಗಳನ್ನು ಸಮಾನಾಂತರವಾಗಿ ನಡೆಸುವುದು
- ಪ್ರತ್ಯೇಕ ಪರಿಸರಗಳು
- ಸರಳ, ಹೊಂದಿಕೊಳ್ಳುವ ಆವೃತ್ತಿ ನವೀಕರಣಗಳು
- ಬಳಕೆಯಾಗದ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ನಿಲ್ಲಿಸುವುದು
- ಹೊಂದಿಸಲು ಸುಲಭ
4
CI/CD
ಗಿಟ್ಲಾಬ್ ಸಿಐ
- ಪೈಪ್ಲೈನ್ನ ಭಾಗವನ್ನು ಪರೀಕ್ಷಿಸುತ್ತದೆ
- ತ್ವರಿತ ಪ್ರತಿಕ್ರಿಯೆ
- ಸಂಪೂರ್ಣ ಕಂಪನಿ/ತಂಡಕ್ಕೆ ಗೋಚರತೆ
5
ಮೇಘ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳು
Google ಮೇಘ ಪ್ಲಾಟ್ಫಾರ್ಮ್
- ಬೇಡಿಕೆಯ ಮೇಲೆ ಸಂಪನ್ಮೂಲಗಳು (ಅಗತ್ಯವಿದ್ದಾಗ ಮಾತ್ರ ನಾವು ಪಾವತಿಸುತ್ತೇವೆ)
- ನಿರ್ವಹಿಸಲು ಮತ್ತು ನವೀಕರಿಸಲು ಸುಲಭ
- ಎಲ್ಲಾ ಸಂಪನ್ಮೂಲಗಳ ಗೋಚರತೆ ಮತ್ತು ನಿಯಂತ್ರಣ
6
ವಾದ್ಯವೃಂದದ ಸಂಯೋಜನೆ
ಕುಬರ್ನೆಟ್ಸ್
ಪಾಡ್ಗಳ ಒಳಗೆ ಬ್ರೌಸರ್ಗಳು/ಎಮ್ಯುಲೇಟರ್ಗಳನ್ನು ಹೊಂದಿರುವ ಕಂಟೈನರ್ಗಳ ಸಂದರ್ಭದಲ್ಲಿ:
- ಸ್ಕೇಲಿಂಗ್/ಆಟೋ ಸ್ಕೇಲಿಂಗ್
- ಸ್ವಯಂ-ಗುಣಪಡಿಸುವಿಕೆ
- ಅಡಚಣೆಯಿಲ್ಲದೆ ನವೀಕರಣಗಳು ಮತ್ತು ರೋಲ್ಬ್ಯಾಕ್ಗಳು
7
ಕೋಡ್ ಆಗಿ ಮೂಲಸೌಕರ್ಯ (IaC)
ಟೆರಾಫಾರ್ಮ್, ಅನ್ಸಿಬಲ್
- ಅಭಿವೃದ್ಧಿ ಮೂಲಸೌಕರ್ಯದೊಂದಿಗೆ ಇದೇ ಪ್ರಯೋಜನಗಳು
- ಕೋಡ್ ಆವೃತ್ತಿಯ ಎಲ್ಲಾ ಪ್ರಯೋಜನಗಳು
- ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲು ಮತ್ತು ನಿರ್ವಹಿಸಲು ಸುಲಭ
- ಸಂಪೂರ್ಣ ಸ್ವಯಂಚಾಲಿತ
ಮೈಂಡ್ ಮ್ಯಾಪ್ ರೇಖಾಚಿತ್ರಗಳು: ಮೂಲಸೌಕರ್ಯದ ವಿಕಾಸ
ಹಂತ 1: ಸ್ಥಳೀಯ

ಹಂತ 2: VCS

ಹಂತ 3: ಕಂಟೈನರೈಸೇಶನ್

ಹಂತ 4: CI/CD

ಹಂತ 5: ಮೇಘ ವೇದಿಕೆಗಳು

ಹಂತ 6: ಆರ್ಕೆಸ್ಟ್ರೇಶನ್

ಹಂತ 7: IaC

ಮುಂದಿನ ಏನು?
ಆದ್ದರಿಂದ, ಇದು ಲೇಖನದ ಅಂತ್ಯವಾಗಿದೆ. ಆದರೆ ಕೊನೆಯಲ್ಲಿ, ನಾನು ನಿಮ್ಮೊಂದಿಗೆ ಕೆಲವು ಒಪ್ಪಂದಗಳನ್ನು ಸ್ಥಾಪಿಸಲು ಬಯಸುತ್ತೇನೆ.
ನಿನ್ನ ಕಡೆಯಿಂದ
ನಾನು ಆರಂಭದಲ್ಲಿ ಹೇಳಿದಂತೆ, ಲೇಖನವು ಪ್ರಾಯೋಗಿಕವಾಗಿ ಬಳಸಬೇಕೆಂದು ನಾನು ಬಯಸುತ್ತೇನೆ ಮತ್ತು ನೈಜ ಕೆಲಸದಲ್ಲಿ ಪಡೆದ ಜ್ಞಾನವನ್ನು ಅನ್ವಯಿಸಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ನಾನು ಮತ್ತೆ ಸೇರಿಸುತ್ತೇನೆ.
ಆದರೆ ಅದರ ನಂತರವೂ, ನಿಲ್ಲಿಸಬೇಡಿ, ಅಭ್ಯಾಸ ಮಾಡಿ, ಸಂಬಂಧಿತ ಲಿಂಕ್ಗಳು ಮತ್ತು ಪುಸ್ತಕಗಳನ್ನು ಅಧ್ಯಯನ ಮಾಡಿ, ನಿಮ್ಮ ಕಂಪನಿಯಲ್ಲಿ ಅದು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಕಂಡುಕೊಳ್ಳಿ, ಸುಧಾರಿಸಬಹುದಾದ ಸ್ಥಳಗಳನ್ನು ಹುಡುಕಿ ಮತ್ತು ಅದರಲ್ಲಿ ಭಾಗವಹಿಸಿ. ಒಳ್ಳೆಯದಾಗಲಿ!
ನನ್ನ ಕಡೆಯಿಂದ
Из заголовка видно, что это была только первая часть. Несмотря на то, что она получилось довольно большой, здесь все еще не раскрыты важные темы. Во второй части я планирую рассмотреть инфраструктуру автоматизации в контексте IOS. Из-за ограничений Apple, связанных с запусками IOS симуляторов только на macOS системах, наш набор решений сужен. Например, мы лишены возможности использовать Docker для запуска симулятора или публичных облаков для запуска виртуальных машин. Но это не означает, что нет других альтернатив. Я постараюсь держать вас в курсе передовых решений и современных инструментов!
ಅಲ್ಲದೆ, ಮೇಲ್ವಿಚಾರಣೆಗೆ ಸಂಬಂಧಿಸಿದ ಸಾಕಷ್ಟು ದೊಡ್ಡ ವಿಷಯಗಳನ್ನು ನಾನು ಉಲ್ಲೇಖಿಸಿಲ್ಲ. ಭಾಗ 3 ರಲ್ಲಿ, ನಾನು ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಮೂಲಸೌಕರ್ಯ ಮಾನಿಟರಿಂಗ್ ಪರಿಕರಗಳನ್ನು ಮತ್ತು ಯಾವ ಡೇಟಾ ಮತ್ತು ಮೆಟ್ರಿಕ್ಗಳನ್ನು ಪರಿಗಣಿಸಬೇಕು ಎಂಬುದನ್ನು ನೋಡಲಿದ್ದೇನೆ.
ಮತ್ತು ಅಂತಿಮವಾಗಿ. ಭವಿಷ್ಯದಲ್ಲಿ, ಪರೀಕ್ಷಾ ಮೂಲಸೌಕರ್ಯ ಮತ್ತು ಜನಪ್ರಿಯ ಸಾಧನಗಳನ್ನು ನಿರ್ಮಿಸುವ ಕುರಿತು ವೀಡಿಯೊ ಕೋರ್ಸ್ ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲು ನಾನು ಯೋಜಿಸುತ್ತೇನೆ. ಪ್ರಸ್ತುತ, ಇಂಟರ್ನೆಟ್ನಲ್ಲಿ DevOps ಕುರಿತು ಕೆಲವು ಕೋರ್ಸ್ಗಳು ಮತ್ತು ಉಪನ್ಯಾಸಗಳಿವೆ, ಆದರೆ ಎಲ್ಲಾ ವಸ್ತುಗಳನ್ನು ಅಭಿವೃದ್ಧಿಯ ಸಂದರ್ಭದಲ್ಲಿ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗುತ್ತದೆ, ಪರೀಕ್ಷಾ ಯಾಂತ್ರೀಕರಣವಲ್ಲ. ಈ ವಿಷಯದ ಕುರಿತು, ಪರೀಕ್ಷಕರು ಮತ್ತು ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಎಂಜಿನಿಯರ್ಗಳ ಸಮುದಾಯಕ್ಕೆ ಅಂತಹ ಕೋರ್ಸ್ ಆಸಕ್ತಿದಾಯಕ ಮತ್ತು ಮೌಲ್ಯಯುತವಾಗಿದೆಯೇ ಎಂಬುದರ ಕುರಿತು ನನಗೆ ನಿಜವಾಗಿಯೂ ಪ್ರತಿಕ್ರಿಯೆಯ ಅಗತ್ಯವಿದೆ. ಮುಂಚಿತವಾಗಿ ಧನ್ಯವಾದಗಳು!
ಮೂಲ: www.habr.com

