ፌስቡክ Buck2 የግንባታ ስርዓትን አሳተመ

ፌስቡክ በተለያዩ የፕሮግራም አወጣጥ ቋንቋዎች ኮድን ያካተቱ በጣም ትልቅ ከሆኑ የመረጃ ማከማቻዎች ፕሮጀክቶችን በመገንባት ላይ ያተኮረ Buck2 አዲስ የግንባታ ስርዓት አስተዋውቋል። በአዲሱ አተገባበር እና ቀደም ሲል ፌስቡክ ይጠቀምበት በነበረው የባክ ሲስተም መካከል ያለው ቁልፍ ልዩነት ከጃቫ ይልቅ የዝገት ቋንቋ መጠቀም እና የስብሰባ ሂደቱን ውጤታማነት እና አፈፃፀም ላይ ከፍተኛ ጭማሪ (በተመሳሳይ መሠረተ ልማት ውስጥ በሚደረጉ የውስጥ ሙከራዎች Buck2 ስብሰባዎችን ያከናውናል) ተግባራት ከ Buck ሁለት እጥፍ ፈጣን)። ኮዱ በApache 2.0 ፍቃድ ስር ተሰራጭቷል።

ስርዓቱ በተወሰኑ ቋንቋዎች ከግንባታ ኮድ ጋር የተሳሰረ አይደለም እና ከሳጥኑ ውስጥ በፌስቡክ ጥቅም ላይ በሚውሉ በ C++ ፣ Python ፣ Rust ፣ Kotlin ፣ Erlang ፣ Swift ፣ Objective-C ፣ Haskell እና OCaml የተፃፉ የግንባታ ፕሮጀክቶችን ይደግፋል። በ Python ላይ የተመሰረተው የስታርላርክ ቋንቋ (እንደ ባዝል) ተጨማሪዎችን ለመንደፍ፣ ስክሪፕቶችን እና ደንቦችን ለመገንባት ያገለግላል። ስታርላርክ የግንባታ ስርዓቱን አቅም ለማራዘም እና በሚገነቡት ፕሮጀክቶች ውስጥ ጥቅም ላይ ከሚውሉት ልዩ ቋንቋዎች ለማራዘም ይፈቅድልዎታል.

ከፍተኛ አፈጻጸም የሚገኘው በውጤቶች መሸጎጫ፣ የስራ ትይዩ እና የርቀት አፈጻጸም ስራዎችን በመደገፍ (የርቀት ግንባታ ማስፈጸሚያ) ነው። በግንባታ አካባቢ, የ "ጥብቅነት" ጽንሰ-ሐሳብ ጥቅም ላይ ይውላል - የተቀናበረው ኮድ ከውጭው ዓለም ተቆርጧል, በግንባታው ሂደት ውስጥ ምንም ነገር ከውጭ አይጫንም, እና በተለያዩ ስርዓቶች ላይ ስራን በተደጋጋሚ መፈፀም ወደ ተመሳሳይ ውጤት ይመራል ( ተደጋጋሚ ግንባታዎች ለምሳሌ በገንቢው ማሽን ላይ የፕሮጀክት ግንባታ ውጤት በተከታታይ ውህደት አገልጋይ ላይ ካለው ግንባታ ጋር ተመሳሳይ ይሆናል). የጥገኛ እጦት ሁኔታ በ Buck2 ውስጥ እንደ ስህተት ይገነዘባል.

የ Buck2 ቁልፍ ባህሪዎች

  • የፕሮግራም ቋንቋዎችን የሚደግፉ ህጎች እና የግንባታ ስርዓቱ ዋና አካል ሙሉ በሙሉ ተለያይተዋል። ደንቦቹ የተፃፉት በስታርላርክ ቋንቋ ሲሆን የስታርላርክ መሣሪያ ስብስብ እና አተገባበር በሩስት ውስጥ ተጽፈዋል።
  • የግንባታ ስርዓቱ አንድ ነጠላ የመጨመር ጥገኝነት ግራፍ (በደረጃዎች ሳይከፋፈል) ይጠቀማል, ይህም ከ Buck እና Bazel ጋር ሲነጻጸር የስራውን ትይዩ ጥልቀት ለመጨመር እና ብዙ አይነት ስህተቶችን ለማስወገድ ያስችላል.
  • በ GitHub ላይ የታተመው የ Buck2 ኮድ እና የፕሮግራም አወጣጥ ቋንቋ ድጋፍ ደንቦቹ በፌስቡክ መሠረተ ልማት ውስጥ ጥቅም ላይ ከዋለው ውስጣዊ ስሪት ጋር ተመሳሳይ ናቸው (ልዩነቱ ከአቀናባሪ እትሞች ጋር በማያያዝ እና በፌስቡክ የሚጠቀሙባቸውን አገልጋዮች መገንባት ብቻ ነው)።
  • የግንባታ ስርዓቱ በሩቅ አገልጋዮች ላይ ስራዎችን እንዲሰሩ የሚያስችልዎትን ከርቀት የስራ ማስፈጸሚያ ስርዓቶች ጋር በማዋሃድ የተቀየሰ ነው። የርቀት ማስፈጸሚያ ኤፒአይ ከ Bazel ጋር ተኳሃኝ ነው እና ከBuildbarn እና EngFlow ጋር ተኳሃኝነትን ለማረጋገጥ ተፈትኗል።
  • ከቨርቹዋል የፋይል ስርዓቶች ጋር መቀላቀል የቀረበው የጠቅላላው ማከማቻ ይዘቶች የሚቀርቡበት ነው ፣ ግን በእውነቱ ፣ ከማከማቻው የተወሰነ ክፍል (ገንቢው መላውን ማከማቻ ያያል ፣ ግን የሚፈለገውን ብቻ) ከትክክለኛው አካባቢያዊ ቁራጭ ጋር ይከናወናል ። የደረሱ ፋይሎች ከማከማቻው ተሰርስረዋል። የሚደገፉት በ EdenFS እና Git LFS ላይ የተመሠረቱ VFS ናቸው፣ እነዚህም በሳፕሊንግ ጥቅም ላይ ይውላሉ።

ምንጭ: opennet.ru

አስተያየት ያክሉ