ಬಫರ್ನಲ್ಲಿ ನಮ್ಮ ಸಿಸ್ಟಂಗಳ ಭಾಗಗಳು ಹೇಗೆ ತೆರೆಮರೆಯಲ್ಲಿ ಸಂವಹನ ನಡೆಸುತ್ತವೆ ಎಂಬುದನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಲು ನಾವು ಇತ್ತೀಚೆಗೆ ಒಂದು ಸಣ್ಣ ಯೋಜನೆಯನ್ನು ಪ್ರಾರಂಭಿಸಿದ್ದೇವೆ. ಕೆಲವು ತ್ವರಿತ ಸಂದರ್ಭಗಳು: ನಾವು SQS (Amazon ಸರಳ ಸರತಿ ಸೇವೆ. ಈ ಸರತಿಗಳು ಕಾರ್ಯಗಳಿಗಾಗಿ ಕಾಯುವ ಕೊಠಡಿಗಳಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ನಮ್ಮ ಸಿಸ್ಟಮ್ನ ಒಂದು ಭಾಗವು ಸಂದೇಶವನ್ನು ಬಿಡುತ್ತದೆ ಮತ್ತು ಇನ್ನೊಂದು ಭಾಗವು ಅದನ್ನು ನಂತರ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಈ ಪ್ರಕ್ರಿಯೆಯು ಸಹೋದ್ಯೋಗಿಗಳಿಗೆ ಒಂದು ಟಿಪ್ಪಣಿಯನ್ನು ಬಿಟ್ಟುಕೊಡುವಂತೆ ಯೋಚಿಸಿ. ಪ್ರತಿಕ್ರಿಯೆಗಾಗಿ ಕಾಯಬೇಕಾಗಿಲ್ಲ. ನಮ್ಮ ಯೋಜನೆಯು ದಿನನಿತ್ಯದ ನಿರ್ವಹಣೆಯನ್ನು ನಿರ್ವಹಿಸುವುದಾಗಿತ್ತು: ನಾವು ಸ್ಥಳೀಯವಾಗಿ ಸರತಿ ಸಾಲುಗಳನ್ನು ಪರೀಕ್ಷಿಸಲು ಮತ್ತು ಅವುಗಳ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಲು ಬಳಸುವ ಪರಿಕರಗಳನ್ನು ನವೀಕರಿಸಿ. ಆದರೆ ನಾವು ನಿಜವಾಗಿ ಯಾವ ಸರತಿಗಳನ್ನು ಬಳಸುತ್ತೇವೆ ಎಂಬುದನ್ನು ನಾವು ಮ್ಯಾಪಿಂಗ್ ಮಾಡುವಾಗ, ನಾವು ನಿರೀಕ್ಷಿಸದಿರುವದನ್ನು ನಾವು ಕಂಡುಕೊಂಡಿದ್ದೇವೆ: ಏಳು ವಿಭಿನ್ನ ಹಿನ್ನೆಲೆ ಪ್ರಕ್ರಿಯೆಗಳು (ಅಥವಾ ಕ್ರಾನ್ ಕೆಲಸಗಳು, ಇವುಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಚಾಲನೆಯಲ್ಲಿಲ್ಲದ ಕೆಲಸಗಳು). ಇದು ಏಕೆ ಮುಖ್ಯವಾಗುತ್ತದೆ, ನಾವು ಅವುಗಳನ್ನು ಹೇಗೆ ಕಂಡುಕೊಂಡಿದ್ದೇವೆ ಮತ್ತು ಅದರ ಬಗ್ಗೆ ನಾವು ಏನು ಮಾಡಿದ್ದೇವೆ ಎಂಬುದು ಮುಖ್ಯ. ಹೌದು, ಅನಗತ್ಯ ಮೂಲಸೌಕರ್ಯವನ್ನು ನಡೆಸಲು ನಾನು ತ್ವರಿತ ಲೆಕ್ಕಾಚಾರವನ್ನು ಮಾಡಿದ್ದೇನೆ ಮತ್ತು ಅಂತಹ ಕೆಲಸಗಾರರಲ್ಲಿ ಒಬ್ಬರಿಗೆ ನಾವು 5 ವರ್ಷಗಳ ನಂತರ ~$360-600 ಪಾವತಿಸಿದ್ದೇವೆ. ಈ ಶುಚಿಗೊಳಿಸುವಿಕೆಯ ಮೂಲಕ, ಹಣಕಾಸಿನ ವೆಚ್ಚವು ನಿಜವಾಗಿಯೂ ಸಮಸ್ಯೆಯ ಚಿಕ್ಕ ಭಾಗವಾಗಿದೆ ಎಂದು ನಾನು ವಾದಿಸುತ್ತೇನೆ. ಪ್ರತಿ ಬಾರಿಯೂ ಹೊಸ ಇಂಜಿನಿಯರ್ ನಮ್ಮ ಸಿಸ್ಟಮ್ಗಳನ್ನು ಅನ್ವೇಷಿಸಿದಾಗ, ಅವರು ಈ ನಿಗೂಢ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಎದುರಿಸುತ್ತಾರೆ, ಅದು ಆನ್ಬೋರ್ಡಿಂಗ್ ಸಮಯವನ್ನು ತಿನ್ನುತ್ತದೆ ಮತ್ತು ಅನಿಶ್ಚಿತತೆಯನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ. "ಮರೆತುಹೋಗಿದೆ" ಮೂಲಸೌಕರ್ಯಕ್ಕೆ ಕೆಲವೊಮ್ಮೆ ಗಮನ ಹರಿಸಬೇಕು, ಬೇರೆ ಯಾವುದನ್ನಾದರೂ ಬದಲಾಯಿಸಿದಾಗ, ಇದು ನಮ್ಮ ತಂಡವು ನಿರ್ವಹಣಾ ಚಕ್ರಗಳನ್ನು ಕಳೆಯಲು ಕಾರಣವಾಯಿತು. ಯಾವುದೇ ದೀರ್ಘಾವಧಿಯ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಇದು ಸ್ವಾಭಾವಿಕವಾಗಿ ಸಂಭವಿಸುತ್ತದೆ. ಆದರೆ ಅದನ್ನು ಬೆಂಬಲಿಸಿದ ಹಿನ್ನೆಲೆ ಕೆಲಸವು "ತಾತ್ಕಾಲಿಕವಾಗಿ" ಕೆಲಸಗಾರನನ್ನು ಚಲಿಸುವಂತೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಇದು ಎಂದಿಗೂ ನಿಗದಿತ ಕಾರ್ಯವು ಅನಗತ್ಯವಾಗುವುದಿಲ್ಲ ಪ್ರಸ್ತುತ ದಿನಾಂಕಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುವ ಜನ್ಮದಿನಗಳಿಗಾಗಿ ಸಂಪೂರ್ಣ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿದ ಮತ್ತು ಗ್ರಾಹಕರಿಗೆ ವೈಯಕ್ತೀಕರಿಸಿದ ಇಮೇಲ್ ಅನ್ನು ಕಳುಹಿಸುವ ಕಾರ್ಯವನ್ನು 2020 ರಲ್ಲಿ, ನಾವು ನಮ್ಮ ವಹಿವಾಟಿನ ಇಮೇಲ್ ಪರಿಕರವನ್ನು ಬದಲಾಯಿಸಿದ್ದೇವೆ - ಇದು ಇನ್ನೂ ಐದು ವರ್ಷಗಳವರೆಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಲೇ ಇತ್ತು. ಇದು ಅನೇಕ ಕಂಪನಿಗಳಂತೆ, ಬಫರ್ ವರ್ಷಗಳ ಹಿಂದೆ ಮೈಕ್ರೊ ಸರ್ವೀಸ್ ಆಂದೋಲನವನ್ನು (ಕಂಪನಿಗಳು ತಮ್ಮ ಕೋಡ್ ಅನ್ನು ಅನೇಕ ಸಣ್ಣ, ಸ್ವತಂತ್ರ ಸೇವೆಗಳಾಗಿ ವಿಭಜಿಸುವ ಜನಪ್ರಿಯ ವಿಧಾನ) ಅಳವಡಿಸಿಕೊಂಡಿದ್ದೇವೆ. ನಾವು ನಮ್ಮ ಏಕಶಿಲೆಯನ್ನು ಪ್ರತ್ಯೇಕ ಸೇವೆಗಳಾಗಿ ವಿಭಜಿಸಿದ್ದೇವೆ, ಪ್ರತಿಯೊಂದೂ ತನ್ನದೇ ಆದ ರೆಪೊಸಿಟರಿ, ನಿಯೋಜನೆ ಪೈಪ್ಲೈನ್ ಮತ್ತು ಮೂಲಸೌಕರ್ಯದೊಂದಿಗೆ, ಅದು ಅರ್ಥಪೂರ್ಣವಾಗಿತ್ತು: ಪ್ರತಿ ಸೇವೆಯು ತನ್ನದೇ ಆದ ರೀತಿಯಲ್ಲಿ ನಿಯೋಜಿಸಲ್ಪಟ್ಟಿದೆ. ರೆಪೊಸಿಟರಿಗಳು ನಮ್ಮ ಗಾತ್ರದ ಪ್ರಯೋಜನಗಳನ್ನು ಮೀರಿಸುತ್ತವೆ, ಆದ್ದರಿಂದ ನಾವು ಸೇವೆಗಳು ಒಂದೇ ಸ್ಥಳದಲ್ಲಿ ಒಟ್ಟಿಗೆ ವಾಸಿಸುತ್ತವೆ. ಮೈಕ್ರೋಸರ್ವೀಸ್ ಜಗತ್ತಿನಲ್ಲಿ, ಪ್ರತಿ ರೆಪೊಸಿಟರಿಯು ಅದರ ಸ್ವಂತ ದ್ವೀಪವಾಗಿದ್ದು, ಒಂದು ರೆಪೋದಲ್ಲಿ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ ಹೆಸರುಗಳು, ಎಲ್ಲಿ ನಡೆಯುತ್ತಿವೆ ಎಂಬುದರ ಏಕೀಕೃತ ನೋಟವಿಲ್ಲ. ಒಂದು ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ನಾವು ಅಂತಿಮವಾಗಿ ಪ್ರತಿ ಸರತಿಯನ್ನು ಅದರ ಗ್ರಾಹಕರು ಮತ್ತು ನಿರ್ಮಾಪಕರಿಗೆ ಪತ್ತೆಹಚ್ಚಲು ಸಾಧ್ಯವಾಯಿತು ಆದರೆ ಯಾವುದೇ ಗ್ರಾಹಕರನ್ನು ನಾವು ಸರದಿಯಲ್ಲಿ ಗುರುತಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.ಅನ್ವೇಷಣೆ ಬಹುತೇಕ ಅನಿವಾರ್ಯ. ನಾವು ನಿಜವಾಗಿ ಏನು ಮಾಡಿದೆವು ಅನಾಥ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ನಾವು ಗುರುತಿಸಿದ ನಂತರ, ನಾವು ಅವರೊಂದಿಗೆ ಏನು ಮಾಡಬೇಕೆಂದು ನಿರ್ಧರಿಸಬೇಕು. ನಾವು ಅದನ್ನು ಹೇಗೆ ಸಂಪರ್ಕಿಸಿದ್ದೇವೆ ಎಂಬುದು ಇಲ್ಲಿದೆ. ಮೊದಲನೆಯದಾಗಿ, ನಾವು ಪ್ರತಿಯೊಂದನ್ನು ಅದರ ಮೂಲವನ್ನು ಪತ್ತೆಹಚ್ಚಿದ್ದೇವೆ. ಪ್ರತಿ ಕೆಲಸಗಾರನನ್ನು ಮೊದಲ ಸ್ಥಾನದಲ್ಲಿ ಏಕೆ ರಚಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ನಾವು git ಇತಿಹಾಸ ಮತ್ತು ಹಳೆಯ ದಾಖಲೆಗಳ ಮೂಲಕ ಅಗೆದು ಹಾಕಿದ್ದೇವೆ. ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಮೂಲ ಉದ್ದೇಶವು ಸ್ಪಷ್ಟವಾಗಿದೆ: ಒಂದು-ಬಾರಿ ಡೇಟಾ ವಲಸೆ, ಸೂರ್ಯಾಸ್ತವನ್ನು ಪಡೆದ ವೈಶಿಷ್ಟ್ಯ, ಅದರ ಉಪಯುಕ್ತತೆಯನ್ನು ಮೀರಿದ ತಾತ್ಕಾಲಿಕ ಪರಿಹಾರವಾಗಿದೆ. ನಂತರ ಅವರು ನಿಜವಾಗಿಯೂ ಬಳಕೆಯಾಗಿಲ್ಲ ಎಂದು ನಾವು ದೃಢಪಡಿಸಿದ್ದೇವೆ. ಯಾವುದನ್ನಾದರೂ ತೆಗೆದುಹಾಕುವ ಮೊದಲು, ಈ ಪ್ರಕ್ರಿಯೆಗಳು ಸದ್ದಿಲ್ಲದೆ ನಾವು ತಪ್ಪಿಸಿಕೊಂಡ ಪ್ರಮುಖವಾದುದನ್ನು ಮಾಡುತ್ತಿಲ್ಲ ಎಂದು ಪರಿಶೀಲಿಸಲು ನಾವು ಲಾಗಿಂಗ್ ಅನ್ನು ಸೇರಿಸಿದ್ದೇವೆ. ಅವರನ್ನು ಕರೆದಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ನಾವು ಕೆಲವು ದಿನಗಳವರೆಗೆ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿದ್ದೇವೆ ಮತ್ತು ನಾವು ಅವರನ್ನು ಹಂತಹಂತವಾಗಿ ತೆಗೆದುಹಾಕಿದ್ದೇವೆ. ನಾವು ಎಲ್ಲವನ್ನೂ ಒಂದೇ ಬಾರಿಗೆ ಅಳಿಸಲಿಲ್ಲ. ನಾವು ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಒಂದೊಂದಾಗಿ ತೆಗೆದುಹಾಕಿದ್ದೇವೆ, ಯಾವುದೇ ಅನಿರೀಕ್ಷಿತ ಅಡ್ಡ ಪರಿಣಾಮಗಳನ್ನು ವೀಕ್ಷಿಸುತ್ತೇವೆ. (ಅದೃಷ್ಟವಶಾತ್, ಯಾವುದೂ ಇರಲಿಲ್ಲ.) ಅಂತಿಮವಾಗಿ, ನಾವು ಕಲಿತದ್ದನ್ನು ನಾವು ದಾಖಲಿಸಿದ್ದೇವೆ. ಪ್ರತಿಯೊಂದು ಪ್ರಕ್ರಿಯೆಯು ಮೂಲತಃ ಏನು ಮಾಡಿದೆ ಮತ್ತು ಅದನ್ನು ಏಕೆ ತೆಗೆದುಹಾಕಲಾಗಿದೆ ಎಂಬುದರ ಕುರಿತು ನಾವು ನಮ್ಮ ಆಂತರಿಕ ಡಾಕ್ಸ್ಗೆ ಟಿಪ್ಪಣಿಗಳನ್ನು ಸೇರಿಸಿದ್ದೇವೆ, ಆದ್ದರಿಂದ ಭವಿಷ್ಯದ ಇಂಜಿನಿಯರ್ಗಳು ಯಾವುದಾದರೂ ಪ್ರಮುಖವಾದವು ಕಳೆದುಹೋದರೆ ಆಶ್ಚರ್ಯಪಡುವುದಿಲ್ಲ. ಸ್ವಚ್ಛಗೊಳಿಸಿದ ನಂತರ ಏನು ಬದಲಾಗಿದೆ ಎಂಬುದನ್ನು ನಾವು ಪೂರ್ಣ ಪರಿಣಾಮವನ್ನು ಅಳೆಯಲು ಇನ್ನೂ ಮುಂಚೆಯೇ ಇದ್ದೇವೆ, ಆದರೆ ಇಲ್ಲಿಯವರೆಗೆ ನಾವು ನೋಡಿದ್ದೇವೆ. ನಮ್ಮ ಮೂಲಸೌಕರ್ಯ ದಾಸ್ತಾನು ಈಗ ನಿಖರವಾಗಿದೆ. ಯಾರಾದರೂ ಕೇಳಿದಾಗ, "ನಾವು ಯಾವ ಕೆಲಸಗಾರರನ್ನು ಓಡಿಸುತ್ತೇವೆ?" ನಾವು ನಿಜವಾಗಿಯೂ ಆ ಪ್ರಶ್ನೆಗೆ ಆತ್ಮವಿಶ್ವಾಸದಿಂದ ಉತ್ತರಿಸಬಹುದು. ಆನ್ಬೋರ್ಡಿಂಗ್ ಸಂಭಾಷಣೆಗಳು ಕೂಡ ಸರಳವಾಗಿವೆ. ಹೊಸ ಇಂಜಿನಿಯರ್ಗಳು ನಿಗೂಢ ಪ್ರಕ್ರಿಯೆಗಳಲ್ಲಿ ಎಡವಿ ಬೀಳುತ್ತಿಲ್ಲ ಮತ್ತು ಅವರು ಸಂದರ್ಭವನ್ನು ಕಳೆದುಕೊಂಡರೆ ಆಶ್ಚರ್ಯ ಪಡುತ್ತಿದ್ದಾರೆ. ಕೋಡ್ಬೇಸ್ ನಾವು ನಿಜವಾಗಿ ಏನು ಮಾಡುತ್ತಿದ್ದೇವೆ ಎಂಬುದನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ, ಐದು ವರ್ಷಗಳ ಹಿಂದೆ ನಾವು ಮಾಡಿದ್ದನ್ನು ಅಲ್ಲ. ಪುರಾತತ್ತ್ವ ಶಾಸ್ತ್ರ ಮತ್ತು ತಡೆಗಟ್ಟುವಿಕೆ ಎಂದು ರಿಫ್ಯಾಕ್ಟರ್ಗಳನ್ನು ಪರಿಗಣಿಸಿ ಈ ಯೋಜನೆಯಿಂದ ನನ್ನ ದೊಡ್ಡ ಟೇಕ್ಅವೇ: ಪ್ರತಿ ಮಹತ್ವದ ರಿಫ್ಯಾಕ್ಟರ್ಗಳು ಪುರಾತತ್ತ್ವ ಶಾಸ್ತ್ರಕ್ಕೆ ಒಂದು ಅವಕಾಶವಾಗಿದೆ. ನೀವು ಸಿಸ್ಟಮ್ನಲ್ಲಿ ಆಳವಾಗಿರುವಾಗ, ತುಣುಕುಗಳು ಹೇಗೆ ಸಂಪರ್ಕಗೊಳ್ಳುತ್ತವೆ ಎಂಬುದನ್ನು ನಿಜವಾಗಿಯೂ ಅರ್ಥಮಾಡಿಕೊಂಡಾಗ, ಇನ್ನೂ ಏನು ಬೇಕು ಎಂದು ಪ್ರಶ್ನಿಸಲು ನೀವು ಪರಿಪೂರ್ಣ ಸ್ಥಾನದಲ್ಲಿರುತ್ತೀರಿ. ಯಾವುದೋ ಹಳೆಯ ಪ್ರಾಜೆಕ್ಟ್ನಿಂದ ಆ ಕ್ಯೂ? ಒಂದು-ಬಾರಿಯ ಡೇಟಾ ವಲಸೆಗಾಗಿ ಯಾರಾದರೂ ರಚಿಸಿದ ಕೆಲಸಗಾರ? ನೀವು ಎಂದಿಗೂ ಕೇಳಿರದ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಉಲ್ಲೇಖಿಸುವ ನಿಗದಿತ ಕಾರ್ಯ? ಅವರು ಇನ್ನೂ ಚಾಲನೆಯಲ್ಲಿರಬಹುದು. ನಮ್ಮ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ನಾವು ಏನನ್ನು ನಿರ್ಮಿಸುತ್ತಿದ್ದೇವೆ ಎಂಬುದು ಇಲ್ಲಿದೆ: ಯಾವುದೇ ರಿಫ್ಯಾಕ್ಟರ್ ಸಮಯದಲ್ಲಿ, ಕೇಳಿ: ನಾವು ಸ್ವಲ್ಪ ಸಮಯದವರೆಗೆ ನೋಡದಿರುವ ಈ ಸಿಸ್ಟಮ್ ಅನ್ನು ಇನ್ನೇನು ಸ್ಪರ್ಶಿಸುತ್ತದೆ? ವೈಶಿಷ್ಟ್ಯವನ್ನು ಅಸಮ್ಮತಿಗೊಳಿಸುವಾಗ, ಅದರ ಹಿನ್ನೆಲೆ ಪ್ರಕ್ರಿಯೆಗಳಿಗೆ ಅದನ್ನು ಎಲ್ಲಾ ರೀತಿಯಲ್ಲಿ ಪತ್ತೆಹಚ್ಚಿ, ಕೇವಲ ಬಳಕೆದಾರ-ಫೇಸಿಂಗ್ ಕೋಡ್ ಅಲ್ಲ. ಯಾರಾದರೂ ತಂಡವನ್ನು ತೊರೆದಾಗ, ನಾವು ಇನ್ನೂ ಹಳೆಯ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ. ಇನ್ನೂ ಒಂದೇ ರೆಪೊಸಿಟರಿಗೆ ಸ್ಥಳಾಂತರಿಸಲಾಗಿಲ್ಲ. ನಾವು ಕ್ರೋಢೀಕರಿಸುವುದನ್ನು ಮುಂದುವರಿಸಿದಂತೆ, ಈ ಗುಪ್ತ ಅವಶೇಷಗಳನ್ನು ನಾವು ಕಂಡುಕೊಳ್ಳುತ್ತೇವೆ ಎಂಬ ವಿಶ್ವಾಸ ನಮಗಿದೆ. ಆದರೆ ಈಗ ನಾವು ಅವುಗಳನ್ನು ಹಿಡಿಯಲು ಮತ್ತು ಹೊಸದನ್ನು ರೂಪಿಸುವುದನ್ನು ತಡೆಯಲು ಹೊಂದಿಸಿದ್ದೇವೆ. ನಿಮ್ಮ ಎಲ್ಲಾ ಕೋಡ್ ಒಂದೇ ಸ್ಥಳದಲ್ಲಿ ವಾಸಿಸಿದಾಗ, ಅನಾಥ ಮೂಲಸೌಕರ್ಯವು ಎಲ್ಲಿಯೂ ಮರೆಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.
5 ವರ್ಷಗಳ ಕಾಲ ನಡೆಯುತ್ತಿರುವ 7 ಮರೆತುಹೋದ ಉದ್ಯೋಗಗಳನ್ನು ಕಂಡುಕೊಂಡ ನಂತರ ನಾವು ಕಲಿತದ್ದು
By Social Media
·
·
6 min read
·
581 views
Read in:
aa
ace
af
ak
alz
am
ar
as
awa
ay
az
ba
ban
be
bew
+191 more
bg
bho
bik
bm
bn
brx
bs
bug
ca
ceb
cgg
ckb
co
crh
cs
cv
cy
da
de
din
doi
dv
dyu
dz
ee
el
en
eo
es
et
eu
fa
ff
fi
fj
fo
fr
fur
fy
ga
gd
gl
gom
gn
gu
ha
haw
he
hi
hil
hne
hmn
hr
hrx
ht
hu
hy
id
ig
ilo
is
it
ja
jam
jv
ka
kab
kbp
kg
kha
kk
kl
km
kn
ko
kri
ku
ktu
ky
la
lb
lg
li
lij
ln
lo
lmo
lt
ltg
lua
luo
lus
lv
mai
mak
mg
mi
min
mk
ml
mn
mni-mtei
mos
mr
ms
mt
my
nd
ne
nl
nn
no
nr
nso
nus
ny
oc
om
or
pa
pag
pam
pap
pl
ps
pt
pt-br
qu
rn
ro
ru
rw
sa
sah
sat
sc
scn
sg
si
sk
sl
sm
sn
so
sq
sr
ss
st
su
sus
sv
sw
szl
ta
tcy
te
tg
th
ti
tiv
tk
tl
tn
to
tpi
tr
trp
ts
tt
tum
ty
udm
ug
uk
ur
uz
ve
vec
vi
war
wo
xh
yi
yo
yua
yue
zap
zh
zh-hk
zh-tw
zu