ಇಸ್ಟಿಯೊದಲ್ಲಿ ಡಾರ್ಕ್ ಲಾಂಚ್: ರಹಸ್ಯ ಸೇವೆಗಳು

"ಅಪಾಯವು ನನ್ನ ಮಧ್ಯದ ಹೆಸರು," ಅಂತರಾಷ್ಟ್ರೀಯ ನಿಗೂಢ ವ್ಯಕ್ತಿ ಆಸ್ಟಿನ್ ಪವರ್ಸ್ ಹೇಳುತ್ತಿದ್ದರು. ಆದರೆ ಸೂಪರ್ ಏಜೆಂಟ್‌ಗಳು ಮತ್ತು ಗುಪ್ತಚರ ಸೇವೆಗಳಿಂದ ಹೆಚ್ಚಿನ ಗೌರವವನ್ನು ಪಡೆದಿರುವುದು ಕಂಪ್ಯೂಟರ್ ಸೇವೆಗಳಿಗೆ ಸೂಕ್ತವಲ್ಲ, ಅಲ್ಲಿ ಬೇಸರವು ಅಪಾಯಕ್ಕಿಂತ ಉತ್ತಮವಾಗಿರುತ್ತದೆ.

ಇಸ್ಟಿಯೊದಲ್ಲಿ ಡಾರ್ಕ್ ಲಾಂಚ್: ರಹಸ್ಯ ಸೇವೆಗಳು

ಮತ್ತು Istio, OpenShift ಮತ್ತು Kubernetes ಜೊತೆಗೆ, ಮೈಕ್ರೊ ಸರ್ವೀಸ್‌ಗಳನ್ನು ನಿಯೋಜಿಸುವುದನ್ನು ನಿಜವಾಗಿಯೂ ನೀರಸ ಮತ್ತು ಊಹಿಸಬಹುದಾದಂತೆ ಮಾಡುತ್ತದೆ - ಮತ್ತು ಅದು ಅದ್ಭುತವಾಗಿದೆ. ನಾವು ಇದರ ಬಗ್ಗೆ ಮತ್ತು ಹೆಚ್ಚಿನದನ್ನು ಇಸ್ಟಿಯೊ ಸರಣಿಯ ನಾಲ್ಕನೇ ಮತ್ತು ಅಂತಿಮ ಪೋಸ್ಟ್‌ನಲ್ಲಿ ಮಾತನಾಡುತ್ತೇವೆ.

ಬೇಸರವು ಸರಿಯಾಗಿದ್ದಾಗ

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

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

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

ಬೇಸರವನ್ನು ಆಯೋಜಿಸುವುದು ಆಸಕ್ತಿದಾಯಕವಾಗಿದೆ

ಕೆಳಗಿನ Istio ರೂಟಿಂಗ್ ನಿಯಮವನ್ನು ನೋಡೋಣ, ಇದು ಎಲ್ಲಾ HTTP ವಿನಂತಿಗಳನ್ನು ಮೈಕ್ರೋ ಸರ್ವಿಸ್ ಶಿಫಾರಸು v1 ಗೆ ರವಾನಿಸುತ್ತದೆ (ಎಲ್ಲಾ ಉದಾಹರಣೆಗಳಿಂದ ತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ ಇಸ್ಟಿಯೊ ಟ್ಯುಟೋರಿಯಲ್ GitHub ರೆಪೊ), ಏಕಕಾಲದಲ್ಲಿ ಅವುಗಳನ್ನು ಶಿಫಾರಸು v2 ಮೈಕ್ರೋ ಸರ್ವೀಸ್‌ಗೆ ಪ್ರತಿಬಿಂಬಿಸುವಾಗ:

ಇಸ್ಟಿಯೊದಲ್ಲಿ ಡಾರ್ಕ್ ಲಾಂಚ್: ರಹಸ್ಯ ಸೇವೆಗಳು
ಲೇಬಲ್ಗೆ ಗಮನ ಕೊಡಿ mirror: ಪರದೆಯ ಕೆಳಭಾಗದಲ್ಲಿ - ಇದು ಟ್ರಾಫಿಕ್ ಮಿರರಿಂಗ್ ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ. ಹೌದು, ಇದು ತುಂಬಾ ಸರಳವಾಗಿದೆ!

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

ನಾಟಕವನ್ನು ಸೇರಿಸೋಣ

ಒಳಬರುವ ವಿನಂತಿಗಳು ಡೇಟಾ ಬದಲಾವಣೆಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದಾದ ಸಂದರ್ಭಗಳನ್ನು ವಿ2 ಕೋಡ್‌ನಲ್ಲಿ ಒದಗಿಸುವುದು ಅವಶ್ಯಕ ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ವಿನಂತಿಗಳು ಸುಲಭವಾಗಿ ಮತ್ತು ಪಾರದರ್ಶಕವಾಗಿ ಪ್ರತಿಬಿಂಬಿಸಲ್ಪಡುತ್ತವೆ, ಆದರೆ ಪರೀಕ್ಷೆಯಲ್ಲಿ ಸಂಸ್ಕರಣಾ ವಿಧಾನದ ಆಯ್ಕೆಯು ನಿಮಗೆ ಬಿಟ್ಟದ್ದು - ಮತ್ತು ಇದು ಸ್ವಲ್ಪ ಚಿಂತಿತವಾಗಿದೆ.

ಒಂದು ಪ್ರಮುಖ ಅಂಶವನ್ನು ಪುನರಾವರ್ತಿಸೋಣ

ಟ್ರಾಫಿಕ್ ಮಿರರಿಂಗ್‌ನೊಂದಿಗೆ ರಹಸ್ಯ ಉಡಾವಣೆ (ಡಾರ್ಕ್ ಲಾಂಚ್/ರಿಕ್ವೆಸ್ಟ್ ಮಿರರಿಂಗ್) ಕೋಡ್ ಅನ್ನು ಯಾವುದೇ ರೀತಿಯಲ್ಲಿ ಪರಿಣಾಮ ಬೀರದಂತೆ ನಿರ್ವಹಿಸಬಹುದು.

ಚಿಂತನೆಗೆ ಆಹಾರ

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

ಇಸ್ಟಿಯೊದಲ್ಲಿ ಕ್ಯಾನರಿ ನಿಯೋಜನೆ: ಕಾರ್ಯಾರಂಭವನ್ನು ಸರಳಗೊಳಿಸುವುದು

ಎಚ್ಚರಿಕೆಯಿಂದ ಮತ್ತು ಕ್ರಮೇಣ

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

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

ಬ್ರೌಸರ್ ಅನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಲಾಗುತ್ತಿದೆ

ಸರಳವಾದ ರೂಟಿಂಗ್ ಮಾನದಂಡವೆಂದರೆ ಬ್ರೌಸರ್ ಆಧಾರಿತ ಮರುನಿರ್ದೇಶನ. ಸಫಾರಿ ಬ್ರೌಸರ್‌ಗಳಿಂದ ಕೇವಲ ವಿನಂತಿಗಳು v2 ಗೆ ಹೋಗಲು ನೀವು ಬಯಸುತ್ತೀರಿ ಎಂದು ಹೇಳೋಣ. ಇದನ್ನು ಹೇಗೆ ಮಾಡಲಾಗುತ್ತದೆ ಎಂಬುದು ಇಲ್ಲಿದೆ:

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

ಇಸ್ಟಿಯೊದಲ್ಲಿ ಡಾರ್ಕ್ ಲಾಂಚ್: ರಹಸ್ಯ ಸೇವೆಗಳು
v2 ನಲ್ಲಿ ಟ್ರಾಫಿಕ್ ಎಲ್ಲಿದೆ? ನಮ್ಮ ಉದಾಹರಣೆಯಲ್ಲಿ ಎಲ್ಲಾ ವಿನಂತಿಗಳು ನಮ್ಮ ಸ್ವಂತ ಆಜ್ಞಾ ಸಾಲಿನಿಂದ ಮಾತ್ರ ಬಂದಿರುವುದರಿಂದ, ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ. ಆದರೆ ಮೇಲಿನ ಪರದೆಯಲ್ಲಿನ ಕೆಳಗಿನ ಸಾಲುಗಳಿಗೆ ಗಮನ ಕೊಡಿ: ನಾವು ಸಫಾರಿ ಬ್ರೌಸರ್‌ನಿಂದ ವಿನಂತಿಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ್ದೇವೆ ಎಂಬ ಅಂಶಕ್ಕೆ ಇದು ಪ್ರತಿಕ್ರಿಯೆಯಾಗಿದೆ, ಅದು ಇದನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ:

ಇಸ್ಟಿಯೊದಲ್ಲಿ ಡಾರ್ಕ್ ಲಾಂಚ್: ರಹಸ್ಯ ಸೇವೆಗಳು

ಅನಿಯಮಿತ ಶಕ್ತಿ

ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳು ರೂಟಿಂಗ್ ವಿನಂತಿಗಳಿಗೆ ಅತ್ಯಂತ ಶಕ್ತಿಯುತ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಒದಗಿಸುತ್ತವೆ ಎಂದು ನಾವು ಈಗಾಗಲೇ ಬರೆದಿದ್ದೇವೆ. ಕೆಳಗಿನ ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ (ಅದು ಏನು ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ನೀವು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿರಿ ಎಂದು ನಾವು ಭಾವಿಸುತ್ತೇವೆ):

ಇಸ್ಟಿಯೊದಲ್ಲಿ ಡಾರ್ಕ್ ಲಾಂಚ್: ರಹಸ್ಯ ಸೇವೆಗಳು
ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳು ಏನು ಮಾಡಬಹುದು ಎಂಬ ಕಲ್ಪನೆಯನ್ನು ಈಗ ನೀವು ಹೊಂದಿರಬಹುದು.

ಸ್ಮಾರ್ಟ್ ಆಗಿ ವರ್ತಿಸಿ

ಸ್ಮಾರ್ಟ್ ರೂಟಿಂಗ್, ನಿರ್ದಿಷ್ಟವಾಗಿ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ಯಾಕೆಟ್ ಹೆಡರ್‌ಗಳನ್ನು ಸಂಸ್ಕರಿಸುವುದು, ನಿಮಗೆ ಬೇಕಾದ ರೀತಿಯಲ್ಲಿ ಟ್ರಾಫಿಕ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಮತ್ತು ಇದು ಹೊಸ ಕೋಡ್‌ನ ಅನುಷ್ಠಾನವನ್ನು ಹೆಚ್ಚು ಸರಳಗೊಳಿಸುತ್ತದೆ - ಇದು ಸರಳವಾಗಿದೆ, ಇದಕ್ಕೆ ಕೋಡ್ ಅನ್ನು ಬದಲಾಯಿಸುವ ಅಗತ್ಯವಿಲ್ಲ, ಮತ್ತು ಅಗತ್ಯವಿದ್ದರೆ, ಎಲ್ಲವನ್ನೂ ತ್ವರಿತವಾಗಿ ಹಿಂತಿರುಗಿಸಬಹುದು.

ಆಸಕ್ತಿ ಇದೆಯೇ?

ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ Istio, Kubernetes ಮತ್ತು OpenShift ಅನ್ನು ಪ್ರಯೋಗಿಸಲು ನೀವು ಉತ್ಸುಕರಾಗಿದ್ದೀರಾ? ತಂಡ Red Hat ಡೆವಲಪರ್ ತಂಡ ಅತ್ಯುತ್ತಮವನ್ನು ಸಿದ್ಧಪಡಿಸಿದೆ ಪಠ್ಯಪುಸ್ತಕ ಈ ವಿಷಯದ ಮೇಲೆ ಮತ್ತು ಎಲ್ಲಾ ಜೊತೆಯಲ್ಲಿರುವ ಫೈಲ್‌ಗಳನ್ನು ಸಾರ್ವಜನಿಕವಾಗಿ ಲಭ್ಯವಾಗುವಂತೆ ಮಾಡಿದೆ. ಆದ್ದರಿಂದ ಮುಂದುವರಿಯಿರಿ ಮತ್ತು ನೀವೇ ಏನನ್ನೂ ನಿರಾಕರಿಸಬೇಡಿ.

ಇಸ್ಟಿಯೊ ಎಗ್ರೆಸ್: ಸ್ಮಾರಕ ಅಂಗಡಿಯ ಮೂಲಕ ನಿರ್ಗಮಿಸಿ

Red Hat OpenShift ಮತ್ತು Kubernetes ಜೊತೆಗೆ Istio ಅನ್ನು ಬಳಸುವ ಮೂಲಕ, ನೀವು ಮೈಕ್ರೋಸರ್ವಿಸ್‌ನೊಂದಿಗೆ ನಿಮ್ಮ ಜೀವನವನ್ನು ಹೆಚ್ಚು ಸುಲಭಗೊಳಿಸಬಹುದು. ಇಸ್ಟಿಯೊನ ಸೇವಾ ಜಾಲರಿಯನ್ನು ಕುಬರ್ನೆಟ್ಸ್ ಪಾಡ್‌ಗಳ ಒಳಗೆ ಮರೆಮಾಡಲಾಗಿದೆ ಮತ್ತು ನಿಮ್ಮ ಕೋಡ್ (ಹೆಚ್ಚಾಗಿ) ​​ಪ್ರತ್ಯೇಕವಾಗಿ ಚಲಿಸುತ್ತದೆ. ಕಾರ್ಯಕ್ಷಮತೆ, ಬದಲಾವಣೆಯ ಸುಲಭ, ಟ್ರೇಸಿಂಗ್, ಇತ್ಯಾದಿ - ಸೈಡ್‌ಕಾರ್ ಕಂಟೇನರ್‌ಗಳ ಬಳಕೆಯಿಂದಾಗಿ ಇವೆಲ್ಲವೂ ಬಳಸಲು ಸುಲಭವಾಗಿದೆ. ಆದರೆ ನಿಮ್ಮ ಮೈಕ್ರೊ ಸರ್ವಿಸ್ ನಿಮ್ಮ ಓಪನ್‌ಶಿಫ್ಟ್-ಕುಬರ್ನೆಟ್ಸ್ ಸಿಸ್ಟಮ್‌ನ ಹೊರಗೆ ಇರುವ ಇತರ ಸೇವೆಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಬೇಕಾದರೆ ಏನು ಮಾಡಬೇಕು?

ಇಲ್ಲಿಯೇ ಇಸ್ಟಿಯೋ ಎಗ್ರೆಸ್ ರಕ್ಷಣೆಗೆ ಬರುತ್ತದೆ. ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಹೇಳುವುದಾದರೆ, ನಿಮ್ಮ ಕುಬರ್ನೆಟ್ಸ್ ಪಾಡ್‌ಗಳ ವ್ಯವಸ್ಥೆಯ ಭಾಗವಾಗಿರದ ಸಂಪನ್ಮೂಲಗಳನ್ನು (ಓದಲು: “ಸೇವೆಗಳು”) ಪ್ರವೇಶಿಸಲು ಇದು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ನೀವು ಹೆಚ್ಚುವರಿ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ನಿರ್ವಹಿಸದಿದ್ದರೆ, ಇಸ್ಟಿಯೊ ಎಗ್ರೆಸ್ ಪರಿಸರದಲ್ಲಿ ಟ್ರಾಫಿಕ್ ಅನ್ನು ಪಾಡ್‌ಗಳ ಕ್ಲಸ್ಟರ್‌ನೊಳಗೆ ಮತ್ತು ಆಂತರಿಕ ಐಪಿ ಕೋಷ್ಟಕಗಳ ಆಧಾರದ ಮೇಲೆ ಅಂತಹ ಕ್ಲಸ್ಟರ್‌ಗಳ ನಡುವೆ ಮಾತ್ರ ರವಾನಿಸಲಾಗುತ್ತದೆ. ಮತ್ತು ಹೊರಗಿನಿಂದ ಸೇವೆಗಳಿಗೆ ನಿಮಗೆ ಪ್ರವೇಶ ಅಗತ್ಯವಿಲ್ಲದಿರುವವರೆಗೆ ಅಂತಹ ಪ್ಯೂಪೇಶನ್ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

ಎಗ್ರೆಸ್ ನಿಯಮಗಳ ಆಧಾರದ ಮೇಲೆ ಅಥವಾ IP ವಿಳಾಸಗಳ ಶ್ರೇಣಿಯ ಮೇಲೆ ಮೇಲಿನ IP ಕೋಷ್ಟಕಗಳನ್ನು ಬೈಪಾಸ್ ಮಾಡಲು ಎಗ್ರೆಸ್ ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ನಾವು httpbin.org/headers ಗೆ GET ವಿನಂತಿಯನ್ನು ಮಾಡುವ ಜಾವಾ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ ಎಂದು ಹೇಳೋಣ.

(ಹೊರಹೋಗುವ ಸೇವಾ ವಿನಂತಿಗಳನ್ನು ಪರೀಕ್ಷಿಸಲು httpbin.org ಕೇವಲ ಅನುಕೂಲಕರ ಸಂಪನ್ಮೂಲವಾಗಿದೆ.)

ನೀವು ಆಜ್ಞಾ ಸಾಲಿನಲ್ಲಿ ನಮೂದಿಸಿದರೆ curl http://httpbin.org/headers, ನಾವು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ನೋಡುತ್ತೇವೆ:

ಇಸ್ಟಿಯೊದಲ್ಲಿ ಡಾರ್ಕ್ ಲಾಂಚ್: ರಹಸ್ಯ ಸೇವೆಗಳು
ಅಥವಾ ನೀವು ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಅದೇ ವಿಳಾಸವನ್ನು ತೆರೆಯಬಹುದು:

ಇಸ್ಟಿಯೊದಲ್ಲಿ ಡಾರ್ಕ್ ಲಾಂಚ್: ರಹಸ್ಯ ಸೇವೆಗಳು
ನೀವು ನೋಡುವಂತೆ, ಅಲ್ಲಿರುವ ಸೇವೆಯು ಅದಕ್ಕೆ ರವಾನಿಸಲಾದ ಹೆಡರ್‌ಗಳನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.

ನಾವು ಆಮದುಗಳನ್ನು ತಲೆಯಿಂದ ಬದಲಾಯಿಸುತ್ತಿದ್ದೇವೆ

ಈಗ ನಾವು ಈ ಸೇವೆಯ ಜಾವಾ ಕೋಡ್ ಅನ್ನು ನಮ್ಮ ಸಿಸ್ಟಮ್‌ಗೆ ಬಾಹ್ಯವಾಗಿ ತೆಗೆದುಕೊಳ್ಳೋಣ ಮತ್ತು ಅದನ್ನು ನಮ್ಮದೇ ಆದ ಮೇಲೆ ಚಲಾಯಿಸೋಣ, ಅಲ್ಲಿ, ನೆನಪಿಸಿಕೊಳ್ಳಿ, ಇಸ್ಟಿಯೊ ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿದೆ. (ಸಂಪರ್ಕಿಸುವ ಮೂಲಕ ನೀವೇ ಇದನ್ನು ಮಾಡಬಹುದು ನಮ್ಮ ಇಸ್ಟಿಯೋ ಟ್ಯುಟೋರಿಯಲ್.) ಸೂಕ್ತವಾದ ಚಿತ್ರವನ್ನು ನಿರ್ಮಿಸಿ ಅದನ್ನು ಓಪನ್‌ಶಿಫ್ಟ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನಲ್ಲಿ ಪ್ರಾರಂಭಿಸಿದ ನಂತರ, ನಾವು ಈ ಸೇವೆಯನ್ನು ಆಜ್ಞೆಯೊಂದಿಗೆ ಕರೆಯುತ್ತೇವೆ curl egresshttpbin-istioegress.$(minishift ip).nip.io, ಅದರ ನಂತರ ನಾವು ಇದನ್ನು ಪರದೆಯ ಮೇಲೆ ನೋಡುತ್ತೇವೆ:

ಇಸ್ಟಿಯೊದಲ್ಲಿ ಡಾರ್ಕ್ ಲಾಂಚ್: ರಹಸ್ಯ ಸೇವೆಗಳು
ಓಹ್, ಏನಾಯಿತು? ಎಲ್ಲವೂ ಕೆಲಸ ಮಾಡಿದೆ. ಕಂಡುಬಂದಿಲ್ಲ ಎಂದರೆ ಏನು? ನಾವು ಅವನಿಗಾಗಿ ಮಾಡಿದ್ದೇವೆ curl.

IP ಕೋಷ್ಟಕಗಳನ್ನು ಸಂಪೂರ್ಣ ಇಂಟರ್ನೆಟ್‌ಗೆ ವಿಸ್ತರಿಸುವುದು

ಇದಕ್ಕಾಗಿ ಇಸ್ತಿಯೋವನ್ನು ದೂಷಿಸಬೇಕು (ಅಥವಾ ಧನ್ಯವಾದ ಹೇಳಬೇಕು). ಎಲ್ಲಾ ನಂತರ, ಇಸ್ಟಿಯೊ ಕೇವಲ ಸೈಡ್‌ಕಾರ್ ಕಂಟೇನರ್‌ಗಳಾಗಿದ್ದು ಅದು ಪತ್ತೆ ಮತ್ತು ರೂಟಿಂಗ್‌ಗೆ ಜವಾಬ್ದಾರರಾಗಿದ್ದೇವೆ (ಮತ್ತು ನಾವು ಮೊದಲು ಮಾತನಾಡಿದ ಬಹಳಷ್ಟು ಇತರ ವಿಷಯಗಳು). ಈ ಕಾರಣಕ್ಕಾಗಿ, IP ಕೋಷ್ಟಕಗಳು ನಿಮ್ಮ ಕ್ಲಸ್ಟರ್ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಏನಿದೆ ಎಂದು ಮಾತ್ರ ತಿಳಿಯುತ್ತದೆ. ಮತ್ತು httpbin.org ಹೊರಗೆ ಇದೆ ಮತ್ತು ಆದ್ದರಿಂದ ಪ್ರವೇಶಿಸಲಾಗುವುದಿಲ್ಲ. ಮತ್ತು ಇಲ್ಲಿಯೇ ಇಸ್ಟಿಯೊ ಎಗ್ರೆಸ್ ರಕ್ಷಣೆಗೆ ಬರುತ್ತದೆ - ನಿಮ್ಮ ಮೂಲ ಕೋಡ್‌ಗೆ ಯಾವುದೇ ಬದಲಾವಣೆಯಿಲ್ಲದೆ.

ಕೆಳಗಿನ ಎಗ್ರೆಸ್ ನಿಯಮವು ಇಸ್ಟಿಯೊವನ್ನು ಅಗತ್ಯವಿರುವ ಸೇವೆಗಾಗಿ ಹುಡುಕಲು (ಅಗತ್ಯವಿದ್ದರೆ, ನಂತರ ಸಂಪೂರ್ಣ ಇಂಟರ್ನೆಟ್‌ನಾದ್ಯಂತ) ಒತ್ತಾಯಿಸುತ್ತದೆ, ಈ ಸಂದರ್ಭದಲ್ಲಿ, httpbin.org. ಈ ಫೈಲ್‌ನಿಂದ ನೀವು ನೋಡುವಂತೆ (egress_httpbin.yml), ಇಲ್ಲಿ ಕಾರ್ಯವು ತುಂಬಾ ಸರಳವಾಗಿದೆ:

ಇಸ್ಟಿಯೊದಲ್ಲಿ ಡಾರ್ಕ್ ಲಾಂಚ್: ರಹಸ್ಯ ಸೇವೆಗಳು
ಈ ನಿಯಮವನ್ನು ಅನ್ವಯಿಸಲು ಮಾತ್ರ ಉಳಿದಿದೆ:

istioctl create -f egress_httpbin.yml -n istioegress

ಆಜ್ಞೆಯೊಂದಿಗೆ ನೀವು ಎಗ್ರೆಸ್ ನಿಯಮಗಳನ್ನು ವೀಕ್ಷಿಸಬಹುದು istioctl get egressrules:

ಇಸ್ಟಿಯೊದಲ್ಲಿ ಡಾರ್ಕ್ ಲಾಂಚ್: ರಹಸ್ಯ ಸೇವೆಗಳು
ಮತ್ತು ಅಂತಿಮವಾಗಿ, ನಾವು ಮತ್ತೆ ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸುತ್ತೇವೆ ಕರ್ಲ್ - ಮತ್ತು ಎಲ್ಲವೂ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ನಾವು ನೋಡುತ್ತೇವೆ:

ಇಸ್ಟಿಯೊದಲ್ಲಿ ಡಾರ್ಕ್ ಲಾಂಚ್: ರಹಸ್ಯ ಸೇವೆಗಳು

ನಾವು ಮುಕ್ತವಾಗಿ ಯೋಚಿಸುತ್ತೇವೆ

ನೀವು ನೋಡುವಂತೆ, ಹೊರಗಿನ ಪ್ರಪಂಚದೊಂದಿಗೆ ಸಂವಹನವನ್ನು ಸಂಘಟಿಸಲು ಇಸ್ಟಿಯೊ ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ನೀವು ಇನ್ನೂ ಓಪನ್‌ಶಿಫ್ಟ್ ಸೇವೆಗಳನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ಅವುಗಳನ್ನು ಕುಬರ್ನೆಟ್ಸ್ ಮೂಲಕ ನಿರ್ವಹಿಸಬಹುದು, ಅಗತ್ಯವಿರುವಂತೆ ಮೇಲಕ್ಕೆ ಮತ್ತು ಕೆಳಕ್ಕೆ ಅಳೆಯುವ ಎಲ್ಲವನ್ನೂ ಪಾಡ್‌ಗಳಲ್ಲಿ ಇರಿಸಬಹುದು. ಮತ್ತು ಅದೇ ಸಮಯದಲ್ಲಿ, ನಿಮ್ಮ ಪರಿಸರಕ್ಕೆ ಹೊರಗಿನ ಸೇವೆಗಳನ್ನು ನೀವು ಸುರಕ್ಷಿತವಾಗಿ ಪ್ರವೇಶಿಸಬಹುದು. ಮತ್ತು ಹೌದು, ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಯಾವುದೇ ರೀತಿಯಲ್ಲಿ ಸ್ಪರ್ಶಿಸದೆಯೇ ಇದೆಲ್ಲವನ್ನೂ ಮಾಡಬಹುದು ಎಂದು ನಾವು ಮತ್ತೊಮ್ಮೆ ಪುನರಾವರ್ತಿಸುತ್ತೇವೆ.

ಇದು ಇಸ್ಟಿಯೋದಲ್ಲಿ ಸರಣಿಯ ಕೊನೆಯ ಪೋಸ್ಟ್ ಆಗಿತ್ತು. ಟ್ಯೂನ್ ಆಗಿರಿ - ಮುಂದೆ ಸಾಕಷ್ಟು ಆಸಕ್ತಿದಾಯಕ ವಿಷಯಗಳಿವೆ!

ಮೂಲ: www.habr.com

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