Buck2, uusi Facebook-rakennusjärjestelmä

Buck2-sankari

Buck2, Facebookin uusi avoimen lähdekoodin rakennusjärjestelmä

Facebook esiteltiin julkaisi äskettäin uuden rakennusjärjestelmän nimeltä "Buck2", joka toteaa, että se on keskittynyt rakentamaan projekteja arkistoista muy suuria, jotka sisältävät koodia eri kielillä ohjelmointi.

Erot uuden toteutuksen ja järjestelmän välillä aiemmin käytetty takki Facebookin kautta käyttävät Rust-kieltä Javan sijaan ja kokoonpanoprosessin tehokkuuden ja suorituskyvyn merkittävä kasvu (saman infrastruktuurin sisäisissä testeissä Buck2 suorittaa kokoonpanotehtävät kaksi kertaa nopeammin kuin Buck).

Rakennusjärjestelmät ovat kehittäjän ja sen käynnissä olevan koodin välissä, joten kaikki, mitä voimme tehdä kokemuksen nopeammaksi tai tuottavammaksi, vaikuttaa suoraan kehittäjän tehokkuuteen. Buck2:n tavoitteena oli säilyttää se, mistä pidimme Buck1:ssä (perusasiat ja työnkulku), saada inspiraatiota Buck1:n jälkeisistä innovaatioista (mukaan lukien Bazel, Adapton ja Shake) ja keskittyä nopeuteen ja uusien kokemusten mahdollistamiseen.

Tietoja Buck2:sta

Se on korostettu järjestelmä ei ole sidottu koodin luomiseen tietyillä kielillä ja valmiina se tukee Facebookin käyttämiä C++-, Python-, Rust-, Kotlin-, Erlang-, Swift-, Objective-C-, Haskell- ja OCaml-kielillä kirjoitettuja rakennusprojekteja.

Pythoniin perustuvaa Starlark-kieltä (kuten Bazelissa) käytetään laajennuksien suunnitteluun, skriptien ja sääntöjen luomiseen. Starlarkin avulla voit laajentaa rakennusjärjestelmän ominaisuuksia ja irrottaa rakennettavissa olevissa projekteissa käytetyistä kielistä.

Mainitaan se korkea suorituskyky saavutetaan tallentamalla tulokset välimuistiin, työn rinnastaminen ja tuki tehtävien etäsuoritukseen (Remote Build Execution).

Rakennusympäristö käyttää "hermeettisyyden" käsitettä: käännetty koodi on irrotettu ulkomaailmasta, ulkopuolelta ei ladata mitään rakennusprosessin aikana ja työn toistuva suorittaminen eri järjestelmissä johtaa samaan tulokseen (toistuvat koontiversiot, esim. projektin kääntämisen tulos kehittäjän kone on täsmälleen sama kuin jatkuvan integroinnin palvelimen versio). Riippuvuustilanteen puute koetaan Buck2:ssa bugiksi.

Osalta Buck2:n tärkeimmät ominaisuudet, seuraavat erottuvat:

  • Ohjelmointikielten ja ydinrakennusjärjestelmän tukisäännöt ovat täysin erillisiä. Säännöt on kirjoitettu Starlark-kielellä, ja Starlarkin työkalupakki ja toteutus on kirjoitettu rustilla.
  • Rakennusjärjestelmä käyttää yhtä inkrementaalista riippuvuuskaaviota (ei vaiheistusta), jonka avulla voit lisätä työn rinnakkaissyvyyttä Buckiin ja Bazeliin verrattuna ja välttää monenlaisia ​​virheitä.
  • GitHubissa julkaistu Buck2:n koodi ja ohjelmointikielen tukisäännöt ovat lähes identtiset Facebookin infrastruktuurissa käytetyn sisäisen version kanssa (ainoat erot ovat linkissä Facebookin käyttämiin kääntäjäversioihin ja rakennuspalvelimiin).
  • Rakennusjärjestelmä on suunniteltu integroitumaan työn etäsuoritusjärjestelmiin, joiden avulla voit suorittaa töitä etäpalvelimilla. Etäsuorituksen API on yhteensopiva Bazelin kanssa, ja sen yhteensopivuus Buildbarnin ja EngFlown kanssa on testattu.
  • Mukana on integraatio virtuaalisiin tiedostojärjestelmiin, jossa esitetään koko arkiston sisältö, mutta itse asiassa työ tehdään arkiston osan todellisella paikallisella osalla (kehittäjä näkee koko arkiston, mutta vain sen, mitä vaaditaan) käytettävät tiedostot haetaan arkistosta). EdenFS-pohjainen VFS ja Git LFS ovat tuettuja, joita Sapling käyttää.

Lopuksi, niiden, jotka ovat kiinnostuneita saamaan lisätietoja siitä, heidän tulisi tietää, että koodia jaetaan Apache 2.0 -lisenssin alla ja he voivat tutustua yksityiskohtiin Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.