Η Yandex κυκλοφόρησε τον πηγαίο κώδικα του Userver, ένα πλαίσιο για τη δημιουργία εφαρμογών σε C++

Η Yandex δημοσίευσε τον πηγαίο κώδικα του πλαισίου προβολή χρήστη, το οποίο σας επιτρέπει να δημιουργείτε εφαρμογές C++ με μεγάλη φόρτωση που λειτουργούν σε ασύγχρονη λειτουργία. Το πλαίσιο έχει δοκιμαστεί σε μεταφορτώσεις επιπέδου Yandex και χρησιμοποιείται σε υπηρεσίες όπως τα έργα Yandex Go, Lavka, Delivery, Market και fintech.

προβολή χρήστη είναι καταλληλότερο για την ανάπτυξη εφαρμογών με αρχιτεκτονική microservice. Αρχικά, το σήμαή αναπτύχθηκε για Yandex Taxi, με τη βοήθειά του, η ομάδα άλλαξε από μια μονολιθική εφαρμογή σε μια αρχιτεκτονική που σας επιτρέπει να αναπτύξετε ξεχωριστά ανεξάρτητα στοιχεία (microservices) και να τα χρησιμοποιήσετε σε διαφορετικές εφαρμογές.

Σήμερα ανακοινώνουμε την κυκλοφορία του πλαισίου χρήστη ανοιχτού κώδικα για τη δημιουργία εφαρμογών υψηλού φορτίου. Για εμάς, αυτός είναι ένας σημαντικός τρόπος για να μοιραστούμε την εμπειρία στην ανάπτυξη μικροϋπηρεσιών που έχουμε συσσωρεύσει. Εδώ είναι ένας σύνδεσμος προς ένα αποθετήριο GitHub με πηγαίο κώδικα, τεκμηρίωση, δείγματα, ένα πρότυπο για τη δημιουργία των δικών σας υπηρεσιών (με ρυθμισμένο CI, δημιουργία και δοκιμή περιβάλλοντος) και μια υπηρεσία δυναμικής διαμόρφωσης. Όλα αυτά κυκλοφορούν με την άδεια Apache 2.0.

Οι μικροϋπηρεσίες είναι αυτόνομες, έτσι μια εφαρμογή που βασίζεται σε μια τέτοια αρχιτεκτονική είναι εύκολο να ενημερωθεί και να προσθέσει νέες δυνατότητες σε αυτήν. Επομένως, η μικρουπηρεσία για την εύρεση οδηγού για παραγγελίες ταξί μπορεί να χρησιμοποιηθεί για μια παρόμοια εργασία, για παράδειγμα, την εύρεση ενός ταχυμεταφορέα για την εκτέλεση παραγγελιών Yandex Delivery. Το ίδιο μπορεί να γίνει με τον υπολογισμό της ώρας άφιξης του οδηγού ή του κούριερ και πολλές άλλες εργασίες.

Το πλαίσιο δημιουργήθηκε αρχικά με έμφαση στην αξιοπιστία και την ευκολία, και στο εσωτερικό του παρέχει όλα όσα χρειάζεστε για ανάπτυξη, διάγνωση, παρακολούθηση, εντοπισμό σφαλμάτων και πειραματισμό. Για παράδειγμα, ο χρήστης προτείνει πώς να διορθώνει σφάλματα στο στάδιο της κατασκευής, ξέρει πώς να λειτουργεί με διαφορετικές βάσεις δεδομένων, να αλλάζει παραμέτρους εν κινήσει κ.λπ.

Σχετικά με τη σύνθεση αναφέρεται ότι περιλαμβάνονται προγράμματα οδήγησης για ασύγχρονη εργασία με 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, αρχιτεκτονικές Arm, μεταγλωττιστές GCC 8+ και Clang 9+, πρότυπα C++17, C+ +20, C ++23.

Ο κώδικας χρήστη είναι γραμμένος σε C++ και Είναι ανοιχτό υπό την άδεια Apache 2.0 και μπορείτε να συμβουλευτείτε από το παρακάτω σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.