Yandex izlaida Userver avota kodu, ietvaru lietotņu izveidei C++

Yandex ir publicējis avota kodu no rāmja lietotāja skatījums, kas ļauj izveidot ļoti ielādētas C++ lietojumprogrammas, kas darbojas asinhronā režīmā. Rāmis ir pārbaudīts Yandex līmeņa augšupielādēs un tiek izmantots tādos pakalpojumos kā Yandex Go, Lavka, Delivery, Market un fintech projekti.

lietotāja skatījums tas ir vislabāk piemērots lietojumprogrammu izstrādei ar mikropakalpojumu arhitektūru. Sākotnēji zīmevai tika izstrādāts Yandex Taxi, ar viņa palīdzību komanda no monolītas lietojumprogrammas pārgāja uz arhitektūru, kas ļauj izstrādāt atsevišķus neatkarīgus komponentus (mikropakalpojumus) un izmantot tos dažādās lietojumprogrammās.

Šodien mēs paziņojam par atvērtā pirmkoda lietotāju ietvara izlaišanu lielas slodzes lietojumprogrammu izveidei. Mums tas ir nozīmīgs veids, kā dalīties ar uzkrāto pieredzi mikropakalpojumu izstrādē. Šeit ir saite uz GitHub repozitoriju ar pirmkodu, dokumentāciju, paraugiem, veidni savu pakalpojumu izveidei (ar konfigurētu CI, veidošanas un testēšanas vidi) un dinamisku konfigurācijas pakalpojumu. Tas viss ir izlaists saskaņā ar Apache 2.0 licenci.

Mikropakalpojumi ir autonomi, tāpēc lietojumprogrammu, kuras pamatā ir šāda arhitektūra, ir viegli atjaunināt un pievienot tai jaunas funkcijas. Tāpēc mikropakalpojumu Taxi pasūtījumu šofera atrašanai var izmantot līdzīgam uzdevumam, piemēram, kurjera atrašanai Yandex Delivery pasūtījumu izpildei. To pašu var izdarīt ar vadītāja vai kurjera ierašanās laika aprēķinu un daudziem citiem uzdevumiem.

Ietvars sākotnēji tika izveidots, uzsverot uzticamību un ērtības, un tajā ir viss nepieciešamais izstrādei, diagnostikai, uzraudzībai, atkļūdošanai un eksperimentēšanai. Piemēram, lietotājs iesaka, kā labot kļūdas izveides stadijā, zina, kā strādāt ar dažādām datu bāzēm, mainīt parametrus lidojuma laikā utt.

Attiecībā uz sastāvu tiek minēts, ka ir iekļauti draiveri asinhronam darbam ar DBVS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), klienti un serveri, kas asinhroni strādā dažādiem protokoliem (HTTP, HTTPS, GRPC, TCP, UDP, TLS), zema līmeņa primitīvi, lai pārvaldītu sinhronizāciju un piekļuvi sistēmas iespējām, kā arī augsta līmeņa komponenti darbam ar kešatmiņu, uzdevumiem, izplatītiem bloķējumiem, izsekošanu, metriku, statistiku un datiem JSON/YAML/BSON formātos, kā arī atbalsta pakalpojuma konfigurācijas maiņu lidojumā, to neapturot.

Runājot par trūkumiem No monolītās arhitektūras tiek minēti:

  • Visa koda konsolidācija monolītā. Izmantojot lielu kodu bāzi, izveide un testēšana var ilgt stundas, un izvietošana var aizņemt visu dienu.
  • Cieša dažādu koda daļu mijiedarbība. Lai saskarnes ar dažādām monolīta daļām nekļūtu par putru, jums ir jāpieliek daudz pūļu koda pārskatīšanai.
  • Trauslums. Izmaiņas vienā modulī var sabojāt citu moduli.
  • Izplūdušas atbildības jomas. Izstrādes procesā daudzas koda daļas vispārinās, sāk izmantot dažādas komandas, un tas ir labi. Bet rezultātā nav skaidrs, kurš ir atbildīgs par iegūto moduli: pirmie autori; tie, kas veica visvairāk labojumus; vai tie, kas visaktīvāk izmanto moduli kodā.

Iepriekš Yandex pārsūtīja citas savas galvenās tehnoloģijas atvērtu projektu veidā, piemēram, YDB izplatīto datu bāzes pārvaldības sistēmu, kas spēj apstrādāt miljoniem pieprasījumu sekundē, kā arī CatBoost mašīnmācīšanās bibliotēku, ko Yandex izmanto meklēšanā un citos. pakalpojumus.

Beidzot tiem, kurus interesē uzzināt vairāk par toLūdzu, ņemiet vērā, ka Userver pašlaik tiek atbalstīts Ubuntu, Debian, Fedora, Arch, Gentoo, macOS sistēmām, x86, x86_64, AArch64, Arm arhitektūrām, GCC 8+ un Clang 9+ kompilatoriem, C++17 standartiem, C+ +20, C ++23.

Lietotāja kods ir rakstīts C++ un Tas ir atvērts saskaņā ar Apache 2.0 licenci, un to var apskatīt vietnē šī saite.


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.