Facebook tau tshaj tawm Buck2 tsim qhov system

Facebook tau tshaj tawm qhov kev tsim kho tshiab, Buck2, tsom mus rau kev tsim cov haujlwm los ntawm cov chaw khaws khoom loj heev uas suav nrog cov lej hauv ntau hom lus. Qhov sib txawv tseem ceeb ntawm qhov kev siv tshiab thiab Buck system yav dhau los siv los ntawm Facebook yog kev siv cov lus Rust es tsis txhob siv Java thiab ib qho kev nce ntxiv hauv kev ua tau zoo thiab kev ua tau zoo ntawm cov txheej txheem sib dhos (hauv kev ntsuam xyuas sab hauv hauv tib lub tsev, Buck2 ua kev sib dhos. ua haujlwm ob zaug sai li Buck). Cov cai tau muab faib raws li Apache 2.0 daim ntawv tso cai.

Lub kaw lus tsis raug khi rau lub tsev cai hauv cov lus tshwj xeeb thiab tawm ntawm lub thawv txhawb kev tsim cov haujlwm sau hauv C ++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell thiab OCaml siv los ntawm Facebook. Cov lus Starlark raws li Python (zoo li hauv Bazel) yog siv los tsim cov add-ons, tsim cov ntawv sau thiab cov cai. Starlark tso cai rau koj los txuas ntxiv lub peev xwm ntawm kev tsim thiab kev paub daws teeb meem los ntawm cov lus tshwj xeeb uas siv hauv cov haujlwm tsim.

Kev ua haujlwm siab yog ua tiav los ntawm caching ntawm cov txiaj ntsig, kev ua haujlwm sib luag ntawm kev ua haujlwm thiab kev txhawb nqa rau kev ua haujlwm ntawm kev ua haujlwm hauv thaj chaw deb (Remote Build Execution). Hauv kev tsim ib puag ncig, lub tswv yim ntawm "tightness" yog siv - cov txheej txheem muab tso ua ke raug txiav tawm ntawm lub ntiaj teb sab nraud, tsis muaj dab tsi raug thauj khoom los ntawm sab nraud thaum tsim cov txheej txheem, thiab rov ua haujlwm ntawm cov tshuab sib txawv ua rau tib qhov tshwm sim ( rov ua dua, piv txwv li, qhov tshwm sim ntawm kev tsim ib qhov project ntawm tus tsim tawm lub tshuab yuav zoo ib yam li kev tsim ntawm lub server txuas txuas ntxiv). Qhov xwm txheej ntawm qhov tsis muaj kev vam khom yog pom hauv Buck2 yog qhov yuam kev.

Buck2 tseem ceeb nta:

  • Cov kev cai rau kev txhawb nqa cov lus programming thiab lub hauv paus ntawm cov txheej txheem tsim yog sib cais tag nrho. Cov kev cai tau sau ua lus Starlark, thiab Starlark cov cuab yeej thiab kev siv tau raug sau hauv Rust.
  • Lub kaw lus tsim siv ib qho kev nce ntxiv nyob ntawm daim duab (tsis muaj kev faib ua theem), uas tso cai rau koj kom nce qhov tob ntawm kev sib luag ntawm kev ua haujlwm piv rau Buck thiab Bazel thiab zam ntau hom kev ua yuam kev.
  • Buck2 code luam tawm ntawm GitHub thiab cov cai tswj hwm cov lus txhawb nqa yuav luag zoo ib yam rau cov qauv sab hauv siv hauv Facebook infrastructure (tsuas yog qhov sib txawv hauv kev khi rau cov ntawv sau sau thiab tsim cov servers siv los ntawm Facebook).
  • Lub kaw lus tsim yog tsim nrog lub qhov muag rau kev koom ua ke nrog cov chaw taws teeb ua haujlwm ua haujlwm uas tso cai rau koj los khiav haujlwm ntawm cov chaw taws teeb chaw taws teeb. Cov chaw taws teeb ua haujlwm API yog sib xws nrog Bazel thiab tau raug sim rau kev sib raug zoo nrog Buildbarn thiab EngFlow.
  • Kev koom ua ke nrog cov ntaub ntawv virtual tau muab, uas cov ntsiab lus ntawm tag nrho cov chaw khaws cia tau nthuav tawm, tab sis qhov tseeb, kev ua haujlwm yog nqa tawm nrog cov ntawv hauv zos tiag tiag ntawm ib feem ntawm qhov chaw cia khoom (tus tsim tawm pom tag nrho cov chaw cia khoom, tab sis tsuas yog qhov yuav tsum tau ua. cov ntaub ntawv uas nkag tau yog muab rov qab los ntawm qhov chaw cia). Kev txhawb nqa yog VFS raws li EdenFS thiab Git LFS, uas yog siv los ntawm Sapling.

Tau qhov twg los: opennet.ru

Ntxiv ib saib