Yandex-ը բացել է օգտատերերի շրջանակի կոդը՝ բարձր բեռնված հավելվածներ ստեղծելու համար

Yandex-ը հրապարակել է Userver Framework-ի սկզբնական կոդը, որը թույլ է տալիս C++-ում ստեղծել բարձր բեռնված հավելվածներ, որոնք աշխատում են ասինխրոն ռեժիմում։ Շրջանակը փորձարկվել է Yandex-ի մակարդակի բեռների ներքո և օգտագործվում է այնպիսի ծառայություններում, ինչպիսիք են Yandex Go, Lavka, Delivery, Market և fintech նախագծերը: Օգտատիրոջ կոդը գրված է C++-ով և բաց կոդով Apache 2.0 լիցենզիայի ներքո:

Օգտատերը լավագույնս հարմար է միկրոսերվիսային ճարտարապետությամբ հավելվածներ մշակելու համար: Սկզբում շրջանակը մշակվել էր Yandex Taxi-ի համար, որի օգնությամբ թիմը մոնոլիտ հավելվածից անցավ ճարտարապետության, որը թույլ է տալիս մշակել առանձին անկախ բաղադրիչներ (միկրոծառայություններ) և օգտագործել դրանք տարբեր հավելվածներում։ Միկրոծառայություններն ինքնավար են, ուստի նմանատիպ ճարտարապետության վրա հիմնված հավելվածը հեշտ է թարմացնել և նոր հնարավորություններ ավելացնել դրան: Այսպիսով, Տաքսիի պատվերների համար վարորդ գտնելու միկրոծառայությունը կարող է օգտագործվել նմանատիպ առաջադրանքի համար՝ օրինակ՝ սուրհանդակ գտնել՝ Yandex Delivery-ի պատվերները կատարելու համար: Նույնը կարելի է անել վարորդի կամ սուրհանդակի ժամանման ժամանակը և շատ այլ առաջադրանքների հաշվարկով:

Շրջանակն ի սկզբանե ստեղծվել է՝ շեշտը դնելով հուսալիության և հարմարավետության վրա, և դրա ներսում ապահովված է այն ամենը, ինչ անհրաժեշտ է մշակման, ախտորոշման, մոնիտորինգի, վրիպազերծման և փորձերի համար։ Օրինակ, օգտվողը առաջարկում է, թե ինչպես շտկել սխալները կոմպիլյացիայի փուլում, կարող է աշխատել տարբեր տվյալների բազաների հետ, փոխել պարամետրերը անմիջապես և այլն: Հայտարարված աջակցություն Ubuntu, Debian, Fedora, Arch, Gentoo, macOS համակարգերին, x86, x86_64, AArch64, Arm ճարտարապետություններին, GCC 8+ և Clang 9+ կոմպիլյատորներին, C++17, C++20, C++23 ստանդարտներին:

Կազմը ներառում է DBMS-ի հետ ասինխրոն աշխատանքի դրայվերներ (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), ասինխրոն աշխատող հաճախորդներ և սերվերներ տարբեր արձանագրությունների համար (HTTP, HTTPS, GRPC, TCP, UDP, TLS), ցածր մակարդակի պրիմիտիվներ՝ համաժամացման կառավարման համար։ և մուտք գործել օպերացիոն համակարգի հնարավորություններին, ինչպես նաև քեշի, առաջադրանքների, բաշխված կողպեքների, հետագծման, չափումների, վիճակագրության և տվյալների JSON/YAML/BSON ձևաչափերով աշխատելու բարձր մակարդակի բաղադրիչներին: Այն աջակցում է փոխել ծառայության կոնֆիգուրացիան անմիջապես, առանց դադարեցնելու այն:

Նախկինում Yandex-ը փոխանցել է իր մյուս հիմնական տեխնոլոգիաները բաց նախագծերի տեսքով, օրինակ՝ YDB-ի բաշխված տվյալների բազայի կառավարման համակարգը, որը կարող է վայրկյանում մշակել միլիոնավոր հարցումներ, ինչպես նաև CatBoost մեքենայական ուսուցման գրադարանը, որը Yandex-ն օգտագործում է Search-ում և այլն: ծառայություններ։

Source: opennet.ru

Добавить комментарий