ಫೇಸ್ಬುಕ್ Buck2 ನಿರ್ಮಾಣ ವ್ಯವಸ್ಥೆಯನ್ನು ಪ್ರಕಟಿಸಿತು

Facebook ಹೊಸ ನಿರ್ಮಾಣ ವ್ಯವಸ್ಥೆಯನ್ನು ಪರಿಚಯಿಸಿದೆ, Buck2, ವಿಭಿನ್ನ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಒಳಗೊಂಡಿರುವ ದೊಡ್ಡ ರೆಪೊಸಿಟರಿಗಳಿಂದ ಯೋಜನೆಗಳನ್ನು ನಿರ್ಮಿಸುವುದರ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿದೆ. ಹೊಸ ಅಳವಡಿಕೆ ಮತ್ತು ಬಕ್ ವ್ಯವಸ್ಥೆಯ ನಡುವಿನ ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸವೆಂದರೆ ಈ ಹಿಂದೆ ಫೇಸ್‌ಬುಕ್ ಬಳಸಿದ ಜಾವಾ ಬದಲಿಗೆ ರಸ್ಟ್ ಭಾಷೆಯ ಬಳಕೆ ಮತ್ತು ಅಸೆಂಬ್ಲಿ ಪ್ರಕ್ರಿಯೆಯ ದಕ್ಷತೆ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯಲ್ಲಿ ಗಮನಾರ್ಹ ಹೆಚ್ಚಳ (ಅದೇ ಮೂಲಸೌಕರ್ಯದಲ್ಲಿನ ಆಂತರಿಕ ಪರೀಕ್ಷೆಗಳಲ್ಲಿ, ಬಕ್2 ಅಸೆಂಬ್ಲಿಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಬಕ್‌ಗಿಂತ ಎರಡು ಪಟ್ಟು ವೇಗವಾಗಿ ಕಾರ್ಯಗಳು). ಕೋಡ್ ಅನ್ನು ಅಪಾಚೆ 2.0 ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ.

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

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

Buck2 ಪ್ರಮುಖ ಲಕ್ಷಣಗಳು:

  • ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳನ್ನು ಬೆಂಬಲಿಸುವ ನಿಯಮಗಳು ಮತ್ತು ಬಿಲ್ಡ್ ಸಿಸ್ಟಮ್‌ನ ಕೋರ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಪ್ರತ್ಯೇಕಿಸಲಾಗಿದೆ. ನಿಯಮಗಳನ್ನು ಸ್ಟಾರ್ಲಾರ್ಕ್ ಭಾಷೆಯಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು ಸ್ಟಾರ್ಲಾರ್ಕ್ ಟೂಲ್ಕಿಟ್ ಮತ್ತು ಅನುಷ್ಠಾನವನ್ನು ರಸ್ಟ್ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ.
  • ನಿರ್ಮಾಣ ವ್ಯವಸ್ಥೆಯು ಒಂದೇ ಹೆಚ್ಚುತ್ತಿರುವ ಅವಲಂಬನೆ ಗ್ರಾಫ್ ಅನ್ನು ಬಳಸುತ್ತದೆ (ಹಂತಗಳಾಗಿ ವಿಭಾಗಿಸದೆ), ಇದು ಬಕ್ ಮತ್ತು ಬಾಜೆಲ್‌ಗೆ ಹೋಲಿಸಿದರೆ ಕೆಲಸದ ಸಮಾನಾಂತರತೆಯ ಆಳವನ್ನು ಹೆಚ್ಚಿಸಲು ಮತ್ತು ಅನೇಕ ರೀತಿಯ ದೋಷಗಳನ್ನು ತಪ್ಪಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
  • GitHub ನಲ್ಲಿ ಪ್ರಕಟಿಸಲಾದ Buck2 ಕೋಡ್ ಮತ್ತು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷಾ ಬೆಂಬಲ ನಿಯಮಗಳು Facebook ಮೂಲಸೌಕರ್ಯದಲ್ಲಿ ಬಳಸಲಾದ ಆಂತರಿಕ ಆವೃತ್ತಿಗೆ ಬಹುತೇಕ ಒಂದೇ ಆಗಿರುತ್ತವೆ (ಕಂಪೈಲರ್ ಆವೃತ್ತಿಗಳಿಗೆ ಮತ್ತು Facebook ಬಳಸುವ ಬಿಲ್ಡ್ ಸರ್ವರ್‌ಗಳಿಗೆ ಬೈಂಡಿಂಗ್‌ನಲ್ಲಿ ಮಾತ್ರ ವ್ಯತ್ಯಾಸಗಳಿವೆ).
  • ರಿಮೋಟ್ ಸರ್ವರ್‌ಗಳಲ್ಲಿ ಉದ್ಯೋಗಗಳನ್ನು ಚಲಾಯಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ರಿಮೋಟ್ ಜಾಬ್ ಎಕ್ಸಿಕ್ಯೂಷನ್ ಸಿಸ್ಟಮ್‌ಗಳೊಂದಿಗೆ ಏಕೀಕರಣದ ದೃಷ್ಟಿಯಿಂದ ಬಿಲ್ಡ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ರಿಮೋಟ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ API Bazel ನೊಂದಿಗೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು Buildbarn ಮತ್ತು EngFlow ನೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆಗಾಗಿ ಪರೀಕ್ಷಿಸಲಾಗಿದೆ.
  • ವರ್ಚುವಲ್ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗಳೊಂದಿಗೆ ಏಕೀಕರಣವನ್ನು ಒದಗಿಸಲಾಗಿದೆ, ಇದರಲ್ಲಿ ಸಂಪೂರ್ಣ ರೆಪೊಸಿಟರಿಯ ವಿಷಯಗಳನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ವಾಸ್ತವವಾಗಿ, ರೆಪೊಸಿಟರಿಯ ಒಂದು ಭಾಗದ ನಿಜವಾದ ಸ್ಥಳೀಯ ಸ್ಲೈಸ್‌ನೊಂದಿಗೆ ಕೆಲಸವನ್ನು ಕೈಗೊಳ್ಳಲಾಗುತ್ತದೆ (ಡೆವಲಪರ್ ಸಂಪೂರ್ಣ ರೆಪೊಸಿಟರಿಯನ್ನು ನೋಡುತ್ತಾನೆ, ಆದರೆ ಅಗತ್ಯವಿರುವದು ಮಾತ್ರ ಪ್ರವೇಶಿಸಿದ ಫೈಲ್‌ಗಳನ್ನು ರೆಪೊಸಿಟರಿಯಿಂದ ಹಿಂಪಡೆಯಲಾಗುತ್ತದೆ). ಸಪ್ಲಿಂಗ್‌ನಿಂದ ಬಳಸಲಾಗುವ EdenFS ಮತ್ತು Git LFS ಆಧಾರಿತ VFS ಅನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ.

ಮೂಲ: opennet.ru

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