Yandex yakaburitsa kodhi kodhi yeUserver, chimiro chekugadzira mapurogiramu muC ++

Yandex yakaburitsa iyo source code chefuremu user, iyo inokutendera iwe kuti ugadzire yakanyanya kurodha C ++ maapplication anoshanda mune asynchronous mode. Furemu yakaedzwa paYandex level uploads uye inoshandiswa mumasevhisi akadai seYandex Go, Lavka, Delivery, Market uye fintech mapurojekiti.

user yakanyatsokodzera kugadzira maapplication ane microservice architecture. Pakutanga, chiratidzokana kuti yakagadzirirwa Yandex Taxi, nerubatsiro rwake, boka rakachinja kubva kune monolithic application kuenda kune architecture inokubvumira kuti ugadzire akaparadzana akazvimirira zvikamu (microservices) uye uzvishandise mune akasiyana maapplication.

Nhasi tiri kuzivisa kuburitswa kweiyo yakavhurika sosi mushandisi sisitimu yekuvaka yakakwirira mitoro maapplication. Kwatiri, iyi inzira yakakosha yekugovera ruzivo mukugadzira mamicroservices atakaunganidza. Heino chinongedzo kune GitHub repository ine sosi kodhi, zvinyorwa, samples, template yekugadzira yako masevhisi (ine CI yakagadziridzwa, kuvaka uye kuyedza nharaunda), uye ine simba yekumisikidza sevhisi. Zvese izvi zvinoburitswa pasi peiyo Apache 2.0 rezinesi.

Microservices inozvimiririra, saka application yakavakirwa pakuvaka kwakadai iri nyore kugadzirisa uye kuwedzera maficha matsva kwairi. Naizvozvo, iyo microservice yekutsvaga mutyairi weTaxi mirairo inogona kushandiswa kune rakafanana basa, semuenzaniso, kutsvaga mutakuri wekuzadzisa Yandex Delivery mirairo. Zvimwe chetezvo zvinogona kuitwa nekuverenga kwekusvika kwemutyairi kana mutakuri uye mamwe mabasa mazhinji.

Iyo dhizaini yakatanga kugadzirwa nekusimbisa kuvimbika uye nyore, uye mukati mayo inopa zvese zvaunoda pakuvandudza, kuongororwa, kutarisa, kugadzirisa, uye kuyedza. Semuenzaniso, mushandisi anoratidza maitiro ekugadzirisa zvikanganiso padanho rekuvaka, anoziva maitiro ekushanda neakasiyana dhatabhesi, shandura maparamita panhunzi, nezvimwe.

Nezvekuumbwa, kunotaurwa izvozvo vatyairi veasynchronous basa neDBMS vanosanganisirwa (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), vatengi uye maseva anoshanda asynchronously kune akasiyana maprotocol (HTTP, HTTPS, GRPC, TCP, UDP, TLS), yakaderera-level primitives yekugadzirisa kuwiriranisa uye kuwana kune system kugona pamwe ne yepamusoro-level zvikamu zvekushanda necaching, mabasa, akagoverwa makiyi, kutsvaga, metrics, manhamba, uye data muJSON/YAML/BSON mafomati, pamwe chete inotsigira kushandura kurongeka kwesevhisi panhunzi, pasina kuimisa.

Kana zviri zvipingamupinyi ye monolithic architecture zvinotevera zvakataurwa:

  • Kubatanidzwa kwese code mukati me monolith. Iine hombe kodhi base, kuvaka uye kuyedzwa kunogona kutora maawa, uye kutumira kunogona kutora zuva rese.
  • Kuvhara kusangana kwezvikamu zvakasiyana zvekodhi. Iwe unofanirwa kushandisa simba rakawanda pakuongorora kodhi kuitira kuti maficha kune akasiyana mativi e monolith arege kuita bongozozo.
  • Fragility. Shanduko mune imwe module inogona kutyora imwe module.
  • Blurred nzvimbo dzemutoro. Munguva yekuvandudza, zvikamu zvakawanda zvekodhi zvinowanzoitika, zvinotanga kushandiswa nezvikwata zvakasiyana, uye izvi zvakanaka. Asi nekuda kweizvozvo, hazvisi pachena kuti ndiani ane mhosva yeiyo module inoguma: vanyori vekutanga; avo vakagadzirisa zvakanyanya; kana avo vanonyanya kushingaira kushandisa module mukodhi.

Kare, Yandex yakatamisa mamwe matekinoroji ayo akakosha mumhando yemapurojekiti akavhurika, semuenzaniso, YDB yakagovera dhatabhesi manejimendi system, inokwanisa kugadzirisa mamirioni ezvikumbiro pasekondi, pamwe neCatBoost muchina library library, iyo Yandex inoshandisa muKutsvaga nezvimwe. masevhisi.

Finalmente kune avo vanofarira kuziva zvakawanda nezvazvoNdokumbira utarise kuti Userver parizvino inotsigirwa Ubuntu, Debian, Fedora, Arch, Gentoo, macOS masisitimu, x86, x86_64, AArch64, Arm architectures, GCC 8+ uye Clang 9+ compilers, C++17 zviyero, C+ +20, C. ++23.

User kodhi yakanyorwa muC ++ uye Yakazaruka pasi peApache 2.0 rezinesi uye inogona kubvunzwa kubva ku inotevera chinongedzo.


Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira iyo data: Miguel Ángel Gatón
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako