Buck2, jaunā Facebook veidošanas sistēma

Buck2-Varonis

Buck2, Facebook jaunā atvērtā koda veidošanas sistēma

Facebook iepazīstināja nesen izlaida jaunu būvēšanas sistēmu ar nosaukumu "Buck2", kas norāda, ka tā ir koncentrējās uz ēku projektiem no krātuvēm ļoti lielie, kas ietver kodu dažādās valodās programmēšana.

Atšķirības starp jauno ieviešanu un sistēmu iepriekš lietots buks Ar facebook Java vietā izmanto Rust valodu un ievērojams montāžas procesa efektivitātes un veiktspējas pieaugums (iekšējos testos tajā pašā infrastruktūrā Buck2 veic montāžas uzdevumus divreiz ātrāk nekā Buck).

Būvsistēmas atrodas starp izstrādātāju un tā koda palaišanu, tāpēc viss, ko varam darīt, lai padarītu pieredzi ātrāku vai produktīvāku, tieši ietekmē izstrādātāja efektivitāti. Buck2 mērķis bija saglabāt to, kas mums patika par Buck1 (pamatinformācija un darbplūsmas), smelties iedvesmu no jauninājumiem pēc Buck1 (tostarp Bazel, Adapton un Shake) un koncentrēties uz ātrumu un jaunas pieredzes nodrošināšanu.

Par Buck2

Tas ir izcelts sistēma nav saistīta ar koda izveidi noteiktās valodās un jau no kastes tas atbalsta veidotāju projektus, kas rakstīti C++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell un OCaml, ko izmanto Facebook.

Starlark valoda, kuras pamatā ir Python (kā Bazel), tiek izmantota, lai izstrādātu spraudņus, izveidotu skriptus un noteikumus. Starlark ļauj paplašināt veidošanas sistēmas iespējas un abstrahēties no konkrētajām valodām, kas tiek izmantotas būvējamajos projektos.

Tas ir minēts augsta veiktspēja tiek panākta, saglabājot rezultātus kešatmiņā, darba paralēlizācija un atbalsts attālinātai uzdevumu izpildei (Remote Build Execution).

Būvniecības vide izmanto jēdzienu "hermētiskums": kompilētais kods ir atrauts no ārpasaules, nekas netiek ielādēts no ārpuses būves procesa laikā, un atkārtota darba izpilde dažādās sistēmās noved pie tā paša rezultāta (atkārtota būvēšana, piemēram, projekta kompilēšanas rezultāts izstrādātāja izstrādātā ierīce būs tieši tāda pati kā nepārtrauktās integrācijas servera versija). Atkarības situācijas trūkums programmā Buck2 tiek uztverts kā kļūda.

No Buck2 galvenās funkcijas, izceļas:

  • Programmēšanas valodu un galvenās veidošanas sistēmas atbalsta noteikumi ir pilnīgi atsevišķi. Noteikumi ir rakstīti Starlark valodā, un Starlark rīkkopa un ieviešana ir rakstīta Rust valodā.
  • Būvsistēma izmanto vienu pakāpenisku atkarības grafiku (bez pakāpju), kas ļauj palielināt darba paralēluma dziļumu salīdzinājumā ar Buck un Bazel un izvairīties no daudzām kļūdām.
  • Buck2 kods, kas ievietots vietnē GitHub, un programmēšanas valodas atbalsta noteikumi ir gandrīz identiski iekšējai versijai, kas tiek izmantota Facebook infrastruktūrā (vienīgās atšķirības ir saitē uz kompilatoru izdevumiem un Facebook izmantotajiem serveriem).
  • Būvsistēma ir paredzēta integrācijai ar attālās darba izpildes sistēmām, kas ļauj palaist darbus attālos serveros. Attālās izpildes API ir saderīga ar Bazel, un ir pārbaudīta saderība ar Buildbarn un EngFlow.
  • Tiek nodrošināta integrācija ar virtuālajām failu sistēmām, kurās tiek parādīts visa repozitorija saturs, bet faktiski darbs tiek veikts ar repozitorija daļas reālo lokālo daļu (izstrādātājs redz visu repozitoriju, bet tikai to ir nepieciešams) faili, kuriem piekļūts, tiek izgūti no repozitorija). Tiek atbalstīti uz EdenFS balstīti VFS un Git LFS, kurus izmanto uzņēmums Sapling.

Visbeidzot, tiem, kas vēlas uzzināt vairāk par to, viņiem jāzina, ka kods tiek izplatīts saskaņā ar Apache 2.0 licenci, un viņi var iepazīties ar detalizētu informāciju. Šajā saitē.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.