ಡಾಕರ್‌ನೊಂದಿಗೆ ನಿರಂತರ ವಿತರಣಾ ಅಭ್ಯಾಸಗಳು (ವಿಮರ್ಶೆ ಮತ್ತು ವೀಡಿಯೊ)

ನಮ್ಮ ತಾಂತ್ರಿಕ ನಿರ್ದೇಶಕರ ಇತ್ತೀಚಿನ ಭಾಷಣಗಳ ಆಧಾರದ ಮೇಲೆ ನಾವು ನಮ್ಮ ಬ್ಲಾಗ್ ಅನ್ನು ಪ್ರಕಟಣೆಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ ಡಿಸ್ಟಾಲ್ (ಡಿಮಿಟ್ರಿ ಸ್ಟೋಲಿಯಾರೋವ್). ಇವೆಲ್ಲವೂ 2016 ರಲ್ಲಿ ವಿವಿಧ ವೃತ್ತಿಪರ ಕಾರ್ಯಕ್ರಮಗಳಲ್ಲಿ ನಡೆದವು ಮತ್ತು DevOps ಮತ್ತು ಡಾಕರ್ ವಿಷಯಕ್ಕೆ ಮೀಸಲಾಗಿವೆ. Badoo ಕಚೇರಿಯಲ್ಲಿ ಡಾಕರ್ ಮಾಸ್ಕೋ ಸಭೆಯ ಒಂದು ವೀಡಿಯೊ, ನಾವು ಈಗಾಗಲೇ ಹೊಂದಿದ್ದೇವೆ ಪ್ರಕಟಿಸಲಾಗಿದೆ ಆನ್ಲೈನ್. ವರದಿಗಳ ಸಾರವನ್ನು ತಿಳಿಸುವ ಲೇಖನಗಳೊಂದಿಗೆ ಹೊಸವುಗಳು ಇರುತ್ತವೆ. ಆದ್ದರಿಂದ…

ಸಮ್ಮೇಳನದಲ್ಲಿ ಮೇ 31 ರೂಟ್ ಕಾನ್ಫ್ 2016, ಉತ್ಸವದ ಭಾಗವಾಗಿ ನಡೆದ “ರಷ್ಯನ್ ಇಂಟರ್ನೆಟ್ ಟೆಕ್ನಾಲಜೀಸ್” (RIT++ 2016), “ನಿರಂತರ ನಿಯೋಜನೆ ಮತ್ತು ನಿಯೋಜನೆ” ವಿಭಾಗವನ್ನು “ಡಾಕರ್‌ನೊಂದಿಗೆ ನಿರಂತರ ವಿತರಣೆಯ ಅತ್ಯುತ್ತಮ ಅಭ್ಯಾಸಗಳು” ವರದಿಯೊಂದಿಗೆ ತೆರೆಯಲಾಗಿದೆ. ಇದು ಡಾಕರ್ ಮತ್ತು ಇತರ ಓಪನ್ ಸೋರ್ಸ್ ಉತ್ಪನ್ನಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನಿರಂತರ ವಿತರಣಾ (ಸಿಡಿ) ಪ್ರಕ್ರಿಯೆಯನ್ನು ನಿರ್ಮಿಸಲು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಸಂಕ್ಷಿಪ್ತಗೊಳಿಸಿದೆ ಮತ್ತು ವ್ಯವಸ್ಥಿತಗೊಳಿಸಿದೆ. ಉತ್ಪಾದನೆಯಲ್ಲಿ ನಾವು ಈ ಪರಿಹಾರಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತೇವೆ, ಇದು ಪ್ರಾಯೋಗಿಕ ಅನುಭವವನ್ನು ಅವಲಂಬಿಸಲು ನಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ಡಾಕರ್‌ನೊಂದಿಗೆ ನಿರಂತರ ವಿತರಣಾ ಅಭ್ಯಾಸಗಳು (ವಿಮರ್ಶೆ ಮತ್ತು ವೀಡಿಯೊ)

ಒಂದು ಗಂಟೆ ಕಳೆಯಲು ನಿಮಗೆ ಅವಕಾಶವಿದ್ದರೆ ವರದಿಯ ವೀಡಿಯೊ, ಅದನ್ನು ಪೂರ್ಣವಾಗಿ ವೀಕ್ಷಿಸಲು ನಾವು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ. ಇಲ್ಲದಿದ್ದರೆ, ಪಠ್ಯ ರೂಪದಲ್ಲಿ ಮುಖ್ಯ ಸಾರಾಂಶವನ್ನು ಕೆಳಗೆ ನೀಡಲಾಗಿದೆ.

ಡಾಕರ್‌ನೊಂದಿಗೆ ನಿರಂತರ ವಿತರಣೆ

ಬೈ ನಿರಂತರ ವಿತರಣೆ Git ರೆಪೊಸಿಟರಿಯಿಂದ ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ ಮೊದಲು ಉತ್ಪಾದನೆಗೆ ಬರುತ್ತದೆ ಮತ್ತು ನಂತರ ಆರ್ಕೈವ್‌ನಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುವ ಪರಿಣಾಮವಾಗಿ ಈವೆಂಟ್‌ಗಳ ಸರಪಳಿಯನ್ನು ನಾವು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತೇವೆ. ಇದು ಈ ರೀತಿ ಕಾಣುತ್ತದೆ: Git → ಬಿಲ್ಡ್ → ಪರೀಕ್ಷೆ → ಬಿಡುಗಡೆ → ಕಾರ್ಯನಿರ್ವಹಿಸು.

ಡಾಕರ್‌ನೊಂದಿಗೆ ನಿರಂತರ ವಿತರಣಾ ಅಭ್ಯಾಸಗಳು (ವಿಮರ್ಶೆ ಮತ್ತು ವೀಡಿಯೊ)
ಹೆಚ್ಚಿನ ವರದಿಯನ್ನು ನಿರ್ಮಾಣ ಹಂತಕ್ಕೆ (ಅಪ್ಲಿಕೇಶನ್ ಅಸೆಂಬ್ಲಿ) ಮೀಸಲಿಡಲಾಗಿದೆ, ಮತ್ತು ವಿಷಯಗಳ ಬಿಡುಗಡೆ ಮತ್ತು ಕಾರ್ಯವನ್ನು ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಸ್ಪರ್ಶಿಸಲಾಗುತ್ತದೆ. ಅವುಗಳನ್ನು ಪರಿಹರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಸಮಸ್ಯೆಗಳು ಮತ್ತು ಮಾದರಿಗಳ ಬಗ್ಗೆ ನಾವು ಮಾತನಾಡುತ್ತೇವೆ ಮತ್ತು ಈ ಮಾದರಿಗಳ ನಿರ್ದಿಷ್ಟ ಅನುಷ್ಠಾನಗಳು ವಿಭಿನ್ನವಾಗಿರಬಹುದು.

ಇಲ್ಲಿ ಡಾಕರ್ ಏಕೆ ಬೇಕು? ಈ ಓಪನ್ ಸೋರ್ಸ್ ಟೂಲ್‌ನ ಸಂದರ್ಭದಲ್ಲಿ ನಾವು ನಿರಂತರ ವಿತರಣಾ ಅಭ್ಯಾಸಗಳ ಬಗ್ಗೆ ಮಾತನಾಡಲು ನಿರ್ಧರಿಸಿದ್ದು ಯಾವುದಕ್ಕೂ ಅಲ್ಲ. ಸಂಪೂರ್ಣ ವರದಿಯು ಅದರ ಬಳಕೆಗೆ ಮೀಸಲಾಗಿದ್ದರೂ, ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ ರೋಲ್‌ಔಟ್‌ನ ಮುಖ್ಯ ಮಾದರಿಯನ್ನು ಪರಿಗಣಿಸುವಾಗ ಅನೇಕ ಕಾರಣಗಳನ್ನು ಬಹಿರಂಗಪಡಿಸಲಾಗುತ್ತದೆ.

ಮುಖ್ಯ ರೋಲ್ಔಟ್ ಮಾದರಿ

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

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

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

ಸಾಮಾನ್ಯೀಕರಿಸೋಣ ಮುಖ್ಯ ರೋಲ್ಔಟ್ ಮಾದರಿ ಕೆಳಗಿನ ಅಂಶಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಂಡು ಹೊಸ ಆವೃತ್ತಿಗಳು:

  1. ಮೊದಲಿಗೆ, ಅಪ್ಲಿಕೇಶನ್‌ನ ಹಳೆಯ ಆವೃತ್ತಿಯು ಮೊದಲ ಕಂಟೇನರ್‌ನಲ್ಲಿ ಚಲಿಸುತ್ತದೆ.
  2. ನಂತರ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಹೊರತೆಗೆಯಲಾಗುತ್ತದೆ ಮತ್ತು ಎರಡನೇ ಧಾರಕದಲ್ಲಿ "ಬೆಚ್ಚಗಾಗುತ್ತದೆ". ಈ ಹೊಸ ಆವೃತ್ತಿಯು ಸ್ವತಃ ನವೀಕರಿಸಿದ ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ ಅನ್ನು ಮಾತ್ರವಲ್ಲದೆ ಅದರ ಯಾವುದೇ ಅವಲಂಬನೆಗಳು, ಹಾಗೆಯೇ ಸಿಸ್ಟಮ್ ಘಟಕಗಳನ್ನು (ಉದಾಹರಣೆಗೆ, OpenSSL ನ ಹೊಸ ಆವೃತ್ತಿ ಅಥವಾ ಸಂಪೂರ್ಣ ವಿತರಣೆ) ಒಯ್ಯಬಹುದು ಎಂಬುದು ಗಮನಾರ್ಹವಾಗಿದೆ.
  3. ವಿನಂತಿಗಳನ್ನು ಪೂರೈಸಲು ಹೊಸ ಆವೃತ್ತಿಯು ಸಂಪೂರ್ಣವಾಗಿ ಸಿದ್ಧವಾದಾಗ, ಸಂಚಾರವು ಮೊದಲ ಕಂಟೇನರ್‌ನಿಂದ ಎರಡನೆಯದಕ್ಕೆ ಬದಲಾಗುತ್ತದೆ.
  4. ಹಳೆಯ ಆವೃತ್ತಿಯನ್ನು ಈಗ ನಿಲ್ಲಿಸಬಹುದು.

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

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

ಪುನರುತ್ಪಾದನೆ

"ಪುನರುತ್ಪಾದನೆ" ಎಂದರೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಎದುರಾಗುವ ಸಾಮಾನ್ಯೀಕೃತ ಸಮಸ್ಯೆಗಳ ಗುಂಪನ್ನು ನಾವು ಅರ್ಥೈಸುತ್ತೇವೆ. ನಾವು ಅಂತಹ ಪ್ರಕರಣಗಳ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತಿದ್ದೇವೆ:

  • ಪ್ರದರ್ಶನಕ್ಕಾಗಿ ಗುಣಮಟ್ಟದ ವಿಭಾಗದಿಂದ ಪರಿಶೀಲಿಸಲಾದ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಉತ್ಪಾದನೆಯಲ್ಲಿ ನಿಖರವಾಗಿ ಪುನರುತ್ಪಾದಿಸಬೇಕು.
  • ವಿವಿಧ ರೆಪೊಸಿಟರಿ ಕನ್ನಡಿಗಳಿಂದ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಸ್ವೀಕರಿಸಬಹುದಾದ ಸರ್ವರ್‌ಗಳಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಪ್ರಕಟಿಸಲಾಗುತ್ತದೆ (ಕಾಲಕ್ರಮೇಣ ಅವುಗಳನ್ನು ನವೀಕರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಅವುಗಳ ಜೊತೆಗೆ ಸ್ಥಾಪಿಸಲಾದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಆವೃತ್ತಿಗಳು).
  • "ಎಲ್ಲವೂ ಸ್ಥಳೀಯವಾಗಿ ನನಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ!" (...ಮತ್ತು ಡೆವಲಪರ್‌ಗಳನ್ನು ಉತ್ಪಾದನೆಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ.)
  • ನೀವು ಹಳೆಯ (ಆರ್ಕೈವ್ ಮಾಡಿದ) ಆವೃತ್ತಿಯಲ್ಲಿ ಏನನ್ನಾದರೂ ಪರಿಶೀಲಿಸಬೇಕಾಗಿದೆ.
  • ...

ಬಳಸಿದ ಪರಿಸರದ ಸಂಪೂರ್ಣ ಅನುಸರಣೆ (ಹಾಗೆಯೇ ಮಾನವ ಅಂಶದ ಅನುಪಸ್ಥಿತಿ) ಅವಶ್ಯಕವಾಗಿದೆ ಎಂಬ ಅಂಶಕ್ಕೆ ಅವರ ಸಾಮಾನ್ಯ ಸಾರವು ಕುದಿಯುತ್ತದೆ. ಪುನರುತ್ಪಾದನೆಯನ್ನು ನಾವು ಹೇಗೆ ಖಾತರಿಪಡಿಸಬಹುದು? ಡಾಕರ್ ಚಿತ್ರಗಳನ್ನು ಮಾಡಿ Git ನಿಂದ ಕೋಡ್ ಆಧರಿಸಿ, ತದನಂತರ ಯಾವುದೇ ಕಾರ್ಯಕ್ಕಾಗಿ ಅವುಗಳನ್ನು ಬಳಸಿ: ಪರೀಕ್ಷಾ ಸೈಟ್‌ಗಳಲ್ಲಿ, ಉತ್ಪಾದನೆಯಲ್ಲಿ, ಪ್ರೋಗ್ರಾಮರ್‌ಗಳ ಸ್ಥಳೀಯ ಯಂತ್ರಗಳಲ್ಲಿ ... ಅದೇ ಸಮಯದಲ್ಲಿ, ನಿರ್ವಹಿಸುವ ಕ್ರಿಯೆಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುವುದು ಮುಖ್ಯ после ಚಿತ್ರವನ್ನು ಜೋಡಿಸುವುದು: ಇದು ಸರಳವಾಗಿದೆ, ದೋಷಗಳ ಸಾಧ್ಯತೆ ಕಡಿಮೆ.

ಮೂಲಸೌಕರ್ಯವು ಕೋಡ್ ಆಗಿದೆ

ಮೂಲಸೌಕರ್ಯ ಅಗತ್ಯತೆಗಳು (ಸರ್ವರ್ ಸಾಫ್ಟ್‌ವೇರ್ ಲಭ್ಯತೆ, ಅದರ ಆವೃತ್ತಿ, ಇತ್ಯಾದಿ) ಔಪಚಾರಿಕವಾಗಿ ಮತ್ತು "ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಲಾಗಿಲ್ಲ", ನಂತರ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್ ನವೀಕರಣದ ರೋಲ್‌ಔಟ್ ಹಾನಿಕಾರಕ ಪರಿಣಾಮಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು. ಉದಾಹರಣೆಗೆ, ವೇದಿಕೆಯಲ್ಲಿ ನೀವು ಈಗಾಗಲೇ PHP 7.0 ಗೆ ಬದಲಾಯಿಸಿದ್ದೀರಿ ಮತ್ತು ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಕೋಡ್ ಅನ್ನು ಪುನಃ ಬರೆದಿದ್ದೀರಿ - ನಂತರ ಕೆಲವು ಹಳೆಯ PHP (5.5) ನೊಂದಿಗೆ ಉತ್ಪಾದನೆಯಲ್ಲಿ ಅದರ ನೋಟವು ಖಂಡಿತವಾಗಿಯೂ ಯಾರನ್ನಾದರೂ ಆಶ್ಚರ್ಯಗೊಳಿಸುತ್ತದೆ. ಇಂಟರ್ಪ್ರಿಟರ್ ಆವೃತ್ತಿಯಲ್ಲಿನ ಪ್ರಮುಖ ಬದಲಾವಣೆಯ ಬಗ್ಗೆ ನೀವು ಮರೆಯದಿರಬಹುದು, ಆದರೆ "ದೆವ್ವವು ವಿವರಗಳಲ್ಲಿದೆ": ಆಶ್ಚರ್ಯವು ಯಾವುದೇ ಅವಲಂಬನೆಯ ಸಣ್ಣ ನವೀಕರಣದಲ್ಲಿರಬಹುದು.

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

ಡಾಕರ್‌ನೊಂದಿಗೆ ನಿರಂತರ ವಿತರಣಾ ಅಭ್ಯಾಸಗಳು (ವಿಮರ್ಶೆ ಮತ್ತು ವೀಡಿಯೊ)

ಬಹು-ಪದರದ ಅಪ್ಲಿಕೇಶನ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ನ ಸಂದರ್ಭದಲ್ಲಿ - ಉದಾಹರಣೆಗೆ, ಡಾಕರ್ ಕಂಟೇನರ್‌ನಲ್ಲಿ ಈಗಾಗಲೇ ಚಾಲನೆಯಲ್ಲಿರುವ ಅಪ್ಲಿಕೇಶನ್‌ನ ಮುಂದೆ ನಿಂತಿರುವ nginx ಇದೆ - ಪ್ರತಿ ಲೇಯರ್‌ಗೆ Git ನಲ್ಲಿನ ಕೋಡ್‌ನಿಂದ ಡಾಕರ್ ಚಿತ್ರಗಳನ್ನು ರಚಿಸಬೇಕು. ನಂತರ ಮೊದಲ ಚಿತ್ರವು ಇಂಟರ್ಪ್ರಿಟರ್ ಮತ್ತು ಇತರ "ಕ್ಲೋಸ್" ಅವಲಂಬನೆಗಳೊಂದಿಗೆ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹೊಂದಿರುತ್ತದೆ, ಮತ್ತು ಎರಡನೇ ಚಿತ್ರವು ಅಪ್ಸ್ಟ್ರೀಮ್ nginx ಅನ್ನು ಹೊಂದಿರುತ್ತದೆ.

ಡಾಕರ್ ಚಿತ್ರಗಳು, Git ನೊಂದಿಗೆ ಸಂವಹನ

Git ನಿಂದ ಸಂಗ್ರಹಿಸಲಾದ ಎಲ್ಲಾ ಡಾಕರ್ ಚಿತ್ರಗಳನ್ನು ನಾವು ಎರಡು ವರ್ಗಗಳಾಗಿ ವಿಂಗಡಿಸುತ್ತೇವೆ: ತಾತ್ಕಾಲಿಕ ಮತ್ತು ಬಿಡುಗಡೆ. ತಾತ್ಕಾಲಿಕ ಚಿತ್ರಗಳು Git ನಲ್ಲಿನ ಶಾಖೆಯ ಹೆಸರಿನಿಂದ ಟ್ಯಾಗ್ ಮಾಡಲಾಗಿದೆ, ಮುಂದಿನ ಕಮಿಟ್‌ನಿಂದ ತಿದ್ದಿ ಬರೆಯಬಹುದು ಮತ್ತು ಪೂರ್ವವೀಕ್ಷಣೆಗಾಗಿ ಮಾತ್ರ ಹೊರತರಲಾಗುತ್ತದೆ (ಉತ್ಪಾದನೆಗಾಗಿ ಅಲ್ಲ). ಬಿಡುಗಡೆ ಮಾಡುವಿಕೆಯಿಂದ ಇದು ಅವರ ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸವಾಗಿದೆ: ಅವುಗಳಲ್ಲಿ ಯಾವ ನಿರ್ದಿಷ್ಟ ಬದ್ಧತೆ ಇದೆ ಎಂದು ನಿಮಗೆ ತಿಳಿದಿಲ್ಲ.

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

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

ಡ್ಯಾಪ್

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

ಇದರ ಮೂಲ ಕೋಡ್ ಅನ್ನು ರೂಬಿಯಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ, ಓಪನ್ ಸೋರ್ಸ್ ಮತ್ತು ಪ್ರಕಟಿಸಲಾಗಿದೆ GitHub. ದುರದೃಷ್ಟವಶಾತ್, ದಸ್ತಾವೇಜನ್ನು ಪ್ರಸ್ತುತ ಉಪಕರಣದ ದುರ್ಬಲ ಅಂಶವಾಗಿದೆ, ಆದರೆ ನಾವು ಅದರ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದ್ದೇವೆ. ಮತ್ತು ನಾವು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಾರಿ ಡಪ್ ಬಗ್ಗೆ ಬರೆಯುತ್ತೇವೆ ಮತ್ತು ಮಾತನಾಡುತ್ತೇವೆ, ಏಕೆಂದರೆ... ಸಂಪೂರ್ಣ ಆಸಕ್ತಿ ಸಮುದಾಯದೊಂದಿಗೆ ಅದರ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ನಾವು ಪ್ರಾಮಾಣಿಕವಾಗಿ ಕಾಯಲು ಸಾಧ್ಯವಿಲ್ಲ, ಆದರೆ ಈ ಮಧ್ಯೆ, ನಿಮ್ಮ ಸಮಸ್ಯೆಗಳನ್ನು ಕಳುಹಿಸಿ ಮತ್ತು ವಿನಂತಿಗಳನ್ನು ಎಳೆಯಿರಿ ಮತ್ತು/ಅಥವಾ GitHub ನಲ್ಲಿ ಯೋಜನೆಯ ಅಭಿವೃದ್ಧಿಯನ್ನು ಅನುಸರಿಸಿ.

ಆಗಸ್ಟ್ 13, 2019 ನವೀಕರಿಸಲಾಗಿದೆ: ಪ್ರಸ್ತುತ ಯೋಜನೆಯಾಗಿದೆ ಡ್ಯಾಪ್ ಎಂದು ಮರುನಾಮಕರಣ ಮಾಡಲಾಗಿದೆ werf, ಅದರ ಕೋಡ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ Go ನಲ್ಲಿ ಪುನಃ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು ಅದರ ದಾಖಲಾತಿಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಲಾಗಿದೆ.

ಕುಬರ್ನೆಟ್ಸ್

ವೃತ್ತಿಪರ ಪರಿಸರದಲ್ಲಿ ಈಗಾಗಲೇ ಗಮನಾರ್ಹವಾದ ಮನ್ನಣೆಯನ್ನು ಪಡೆದಿರುವ ಮತ್ತೊಂದು ಸಿದ್ಧ-ಸಿದ್ಧ ತೆರೆದ ಮೂಲ ಸಾಧನವಾಗಿದೆ ಕುಬರ್ನೆಟ್ಸ್,ಡಾಕರ್ ಮ್ಯಾನೇಜ್ಮೆಂಟ್ ಕ್ಲಸ್ಟರ್. ಡಾಕರ್‌ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಯೋಜನೆಗಳ ಕಾರ್ಯಾಚರಣೆಯಲ್ಲಿ ಅದರ ಬಳಕೆಯ ವಿಷಯವು ವರದಿಯ ವ್ಯಾಪ್ತಿಯನ್ನು ಮೀರಿದೆ, ಆದ್ದರಿಂದ ಪ್ರಸ್ತುತಿಯು ಕೆಲವು ಆಸಕ್ತಿದಾಯಕ ವೈಶಿಷ್ಟ್ಯಗಳ ಅವಲೋಕನಕ್ಕೆ ಸೀಮಿತವಾಗಿದೆ.

ರೋಲ್‌ಔಟ್‌ಗಾಗಿ, ಕುಬರ್ನೆಟ್ಸ್ ಕೊಡುಗೆಗಳು:

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

ನಿರಂತರ ವಿತರಣೆಯು ಹೊಸ ಆವೃತ್ತಿಯ ಬಿಡುಗಡೆ ಮಾತ್ರವಲ್ಲದೆ, ಕುಬರ್ನೆಟ್ಸ್ ನಂತರದ ಮೂಲಸೌಕರ್ಯ ನಿರ್ವಹಣೆಗೆ ಹಲವಾರು ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಹೊಂದಿದೆ: ಅಂತರ್ನಿರ್ಮಿತ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ಎಲ್ಲಾ ಕಂಟೇನರ್‌ಗಳಿಗೆ ಲಾಗಿಂಗ್, ಸ್ವಯಂಚಾಲಿತ ಸ್ಕೇಲಿಂಗ್, ಇತ್ಯಾದಿ. ಇವೆಲ್ಲವೂ ಈಗಾಗಲೇ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ ಮತ್ತು ಸರಿಯಾದ ಸಮಯಕ್ಕಾಗಿ ಕಾಯುತ್ತಿದೆ. ನಿಮ್ಮ ಪ್ರಕ್ರಿಯೆಗಳಲ್ಲಿ ಅನುಷ್ಠಾನ.

ಅಂತಿಮ ಶಿಫಾರಸುಗಳು

  1. ಡಾಕರ್ ಬಳಸಿ.
  2. ನಿಮ್ಮ ಎಲ್ಲಾ ಅಗತ್ಯಗಳಿಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಡಾಕರ್ ಚಿತ್ರಗಳನ್ನು ರಚಿಸಿ.
  3. "ಮೂಲಸೌಕರ್ಯವು ಕೋಡ್" ತತ್ವವನ್ನು ಅನುಸರಿಸಿ.
  4. ಜಿಟ್ ಅನ್ನು ಡಾಕರ್‌ಗೆ ಲಿಂಕ್ ಮಾಡಿ.
  5. ರೋಲ್‌ಔಟ್‌ನ ಕ್ರಮವನ್ನು ನಿಯಂತ್ರಿಸಿ.
  6. ಸಿದ್ಧ ವೇದಿಕೆಯನ್ನು ಬಳಸಿ (ಕುಬರ್ನೆಟ್ಸ್ ಅಥವಾ ಇನ್ನೊಂದು).

ವೀಡಿಯೊಗಳು ಮತ್ತು ಸ್ಲೈಡ್‌ಗಳು

ಪ್ರದರ್ಶನದ ವೀಡಿಯೊ (ಸುಮಾರು ಒಂದು ಗಂಟೆ) YouTube ನಲ್ಲಿ ಪ್ರಕಟಿಸಲಾಗಿದೆ (ವರದಿಯು 5 ನೇ ನಿಮಿಷದಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ - ಈ ಕ್ಷಣದಿಂದ ಆಡಲು ಲಿಂಕ್ ಅನ್ನು ಅನುಸರಿಸಿ).

ವರದಿಯ ಮಂಡನೆ:

ಪಿಎಸ್

ನಮ್ಮ ಬ್ಲಾಗ್‌ನಲ್ಲಿ ವಿಷಯದ ಕುರಿತು ಇತರ ವರದಿಗಳು:

ಮೂಲ: www.habr.com

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