Yandex ने C++ मध्ये अॅप्स तयार करण्यासाठी वापरकर्त्याचा सोर्स कोड जारी केला

Yandex ने स्त्रोत कोड प्रकाशित केला आहे फ्रेम च्या वापरकर्ता दृश्य, जे तुम्हाला उच्च लोड केलेले C++ अॅप्लिकेशन तयार करण्यास अनुमती देते जे एसिंक्रोनस मोडमध्ये कार्य करतात. फ्रेम यांडेक्स स्तर अपलोडवर चाचणी केली गेली आहे आणि Yandex Go, Lavka, Delivery, Market आणि fintech प्रकल्प यासारख्या सेवांमध्ये वापरले जाते.

वापरकर्ता दृश्य मायक्रोसर्व्हिस आर्किटेक्चरसह ऍप्लिकेशन्स विकसित करण्यासाठी हे सर्वात योग्य आहे. सुरुवातीला, चिन्हकिंवा Yandex Taxi साठी विकसित केले होते, त्याच्या मदतीने, टीम एका मोनोलिथिक ऍप्लिकेशनमधून एका आर्किटेक्चरमध्ये बदलली जी तुम्हाला स्वतंत्र स्वतंत्र घटक (मायक्रोसर्व्हिसेस) विकसित करण्यास आणि वेगवेगळ्या ऍप्लिकेशन्समध्ये वापरण्याची परवानगी देते.

आज आम्ही उच्च लोड ऍप्लिकेशन्स तयार करण्यासाठी ओपन सोर्स यूजर फ्रेमवर्क जारी करण्याची घोषणा करत आहोत. आमच्यासाठी, आम्ही जमा केलेल्या मायक्रो सर्व्हिसेस विकसित करण्याचा अनुभव शेअर करण्याचा हा एक महत्त्वाचा मार्ग आहे. येथे स्त्रोत कोड, दस्तऐवजीकरण, नमुने, आपल्या स्वतःच्या सेवा तयार करण्यासाठी टेम्पलेट (CI कॉन्फिगर केलेले, बिल्ड आणि चाचणी वातावरणासह) आणि डायनॅमिक कॉन्फिगरेशन सेवा असलेल्या GitHub भांडाराची लिंक आहे. हे सर्व Apache 2.0 लायसन्स अंतर्गत रिलीझ केले आहे.

सूक्ष्म सेवा स्वायत्त आहेत, त्यामुळे अशा आर्किटेक्चरवर आधारित अॅप्लिकेशन अपडेट करणे आणि त्यात नवीन वैशिष्ट्ये जोडणे सोपे आहे. म्हणून, टॅक्सी ऑर्डरसाठी ड्रायव्हर शोधण्यासाठी मायक्रोसर्व्हिसचा वापर समान कार्यासाठी केला जाऊ शकतो, उदाहरणार्थ, यांडेक्स डिलिव्हरी ऑर्डर पूर्ण करण्यासाठी कुरिअर शोधणे. ड्रायव्हर किंवा कुरिअरच्या आगमनाच्या वेळेची गणना आणि इतर अनेक कार्यांसह हेच केले जाऊ शकते.

फ्रेमवर्क मूलतः विश्वासार्हता आणि सोयीवर भर देऊन तयार केले गेले होते, आणि त्यात तुम्हाला विकास, निदान, निरीक्षण, डीबगिंग आणि प्रयोगासाठी आवश्यक असलेली प्रत्येक गोष्ट प्रदान करते. उदाहरणार्थ, वापरकर्ता बिल्ड स्टेजवर चुका कशा दुरुस्त करायच्या हे सुचवतो, वेगवेगळ्या डेटाबेससह कसे कार्य करावे हे माहित आहे, फ्लायवर पॅरामीटर्स बदलणे इ.

रचनेबाबत असे नमूद केले आहे की DBMS सह असिंक्रोनस कार्यासाठी ड्रायव्हर्स समाविष्ट आहेत (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), क्लायंट आणि सर्व्हर जे विविध प्रोटोकॉल्स (HTTP, HTTPS, GRPC, TCP, UDP, TLS), सिंक्रोनाइझेशन व्यवस्थापित करण्यासाठी आणि सिस्टम क्षमतांमध्ये प्रवेश करण्यासाठी कमी-स्तरीय प्रिमिटिव्हसाठी असिंक्रोनसपणे कार्य करतात. JSON/YAML/BSON फॉरमॅटमध्ये कॅशिंग, टास्क, डिस्ट्रिब्युटेड लॉक, ट्रेसिंग, मेट्रिक्स, स्टॅटिस्टिक्स आणि डेटासह काम करण्यासाठी उच्च-स्तरीय घटक, तसेच ते न थांबता फ्लायवर सर्व्हिस कॉन्फिगरेशन बदलण्यास समर्थन देते.

तोटे साठी म्हणून मोनोलिथिक आर्किटेक्चरचे खालील उल्लेख आहेत:

  • एका मोनोलिथमध्ये सर्व कोडचे एकत्रीकरण. मोठ्या कोड बेससह, बिल्डिंग आणि चाचणीला काही तास लागू शकतात आणि तैनाती पूर्ण दिवस लागू शकते.
  • कोडच्या वेगवेगळ्या भागांचा परस्परसंवाद बंद करा. तुम्हाला कोड रिव्ह्यूजवर खूप मेहनत करावी लागेल जेणेकरून मोनोलिथच्या वेगवेगळ्या भागांचे इंटरफेस गोंधळून जाऊ नयेत.
  • नाजूकपणा. एका मॉड्युलमध्‍ये बदल केल्‍याने दुसरे मॉड्यूल खंडित होऊ शकते.
  • जबाबदारीची अस्पष्ट क्षेत्रे. विकास प्रक्रियेदरम्यान, कोडचे बरेच भाग सामान्यीकरण करतात, वेगवेगळ्या संघांद्वारे वापरणे सुरू होते आणि हे चांगले आहे. परंतु परिणामी, परिणामी मॉड्यूलसाठी कोण जबाबदार आहे हे स्पष्ट नाही: प्रथम लेखक; ज्यांनी सर्वाधिक संपादने केली; किंवा जे कोडमधील मॉड्यूल सर्वात सक्रियपणे वापरतात.

पूर्वी, Yandex ने खुल्या प्रकल्पांच्या रूपात तिची इतर प्रमुख तंत्रज्ञाने हस्तांतरित केली, उदाहरणार्थ, YDB वितरित डेटाबेस व्यवस्थापन प्रणाली, प्रति सेकंद लाखो विनंत्यांवर प्रक्रिया करण्यास सक्षम, तसेच CatBoost मशीन लर्निंग लायब्ररी, ज्याचा Yandex शोध आणि इतर गोष्टींमध्ये वापर करते. सेवा

शेवटी याबद्दल अधिक जाणून घेण्यास इच्छुक असलेल्यांसाठीकृपया लक्षात घ्या की वापरकर्ता सध्या Ubuntu, Debian, Fedora, Arch, Gentoo, macOS सिस्टम, x86, x86_64, AArch64, आर्म आर्किटेक्चर्स, GCC 8+ आणि Clang 9+ कंपाइलर्स, C++17 मानक, C++20, C साठी समर्थित आहे. ++२३.

वापरकर्ता कोड C++ आणि मध्ये लिहिलेला आहे ते उघडे आहे Apache 2.0 परवान्या अंतर्गत आणि कडून सल्ला घेतला जाऊ शकतो खालील दुवा.


आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटा जबाबदार: मिगुएल Áन्गल गॅटन
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.