Facebook pergala avakirina Buck2 weşand

Facebook pergalek avakirina nû, Buck2, destnîşan kir, ku li ser avakirina projeyên ji depoyên pir mezin ên ku koda bi zimanên bernamenûsê yên cihêreng vedihewîne, sekinî. Cûdahiyên sereke yên di navbera pêkanîna nû û pergala Buck de ku berê ji hêla Facebook ve hatî bikar anîn, karanîna zimanê Rust li şûna Java-yê û zêdebûnek berbiçav a kargêrî û performansa pêvajoya kombûnê ye (di ceribandinên hundurîn ên di heman binesaziyê de, Buck2 kombûnê dike karan du caran zûtir ji Buck). Kod di bin lîsansa Apache 2.0 de tê belav kirin.

Pergal bi avakirina koda bi zimanên taybetî ve ne girêdayî ye û ji hundurê projeyên avakirina ku bi C++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell û OCaml hatine nivîsandin piştgirî dike ku ji hêla Facebookê ve têne bikar anîn. Zimanê Starlark ku li ser Python-ê ye (mîna li Bazel) ji bo sêwirana pêvekan, avakirina nivîsar û qaîdeyan tê bikar anîn. Starlark destûrê dide te ku hûn kapasîteyên pergala çêkirinê dirêj bikin û ji zimanên taybetî yên ku di projeyên têne çêkirin de têne bikar anîn veqetînin.

Performansa bilind bi cachkirina encaman, paralelkirina kar û piştgiriya ji bo pêkanîna peywiran ji dûr ve (Remote Build Execution) tê bidestxistin. Di hawîrdora çêkirinê de, têgeha "tengbûnê" tê bikar anîn - koda berhevkirî ji cîhana derve tê qut kirin, di pêvajoya çêkirinê de tiştek ji derve nayê barkirin, û pêkanîna dubare ya xebatê li ser pergalên cûda dibe sedema heman encamê ( avakirinên dubare, mînakî, encama avakirina projeyek li ser makîneya pêşdebiran dê tam eynî wekî avakirina li ser servera entegrasyonê ya domdar be). Rewşa nebûna girêdayîbûnê di Buck2 de wekî xeletiyek tê dîtin.

Taybetmendiyên sereke yên Buck2:

  • Rêzikên ji bo piştgirîkirina zimanên bernamekirinê û bingeha pergala avakirinê bi tevahî ji hev veqetandî ne. Rêgez bi zimanê Starlark têne nivîsandin, û amûr û pêkanîna Starlark bi Rust têne nivîsandin.
  • Pergala avakirinê grafiyek pêwendiya yekbûyî ya zêde (bê dabeşkirina qonaxan) bikar tîne, ku dihêle hûn li gorî Buck û Bazel kûrahiya paralelkirina xebatê zêde bikin û ji gelek celeb xeletiyan dûr bixin.
  • Koda Buck2 ku li ser GitHub hatî weşandin û qaîdeyên piştgirîya zimanê bernamekirinê hema hema bi guhertoya navxweyî ya ku di binesaziya Facebook-ê de tê bikar anîn yek in (cudahiyên tenê di girêdana bi çapên berhevkar û avakirina serverên ku ji hêla Facebook ve têne bikar anîn de ne).
  • Pergala avakirinê bi çavê entegrasyonê bi pergalên darvekirina karê dûr ve hatî sêwirandin ku dihêle hûn karan li ser serverên dûr bimeşînin. API-ya darvekirina dûr bi Bazel re hevaheng e û ji bo lihevhatina bi Buildbarn û EngFlow re hatî ceribandin.
  • Yekbûnek bi pergalên pelan ên virtual re tê peyda kirin, ku tê de naveroka tevahiya depoyê tê pêşkêş kirin, lê bi rastî, kar bi perçeya herêmî ya rastîn a beşek depoyê ve tê meşandin (pêşvebir tevahiya depoyê dibîne, lê tenê ya pêwîst dibîne pelên ku têne gihîştin ji depoyê têne derxistin). Piştgiriya VFS li ser bingeha EdenFS û Git LFS, ku ji hêla Sapling ve têne bikar anîn têne piştgirî kirin.

Source: opennet.ru

Add a comment