Αρχιτεκτονική χρέωσης νέας γενιάς: μεταμόρφωση με τη μετάβαση στο Tarantool

Γιατί μια εταιρεία όπως η MegaFon χρειάζεται το Tarantool στη χρέωση; Από έξω φαίνεται ότι ο πωλητής συνήθως έρχεται, φέρνει κάποιο είδος μεγάλου κουτιού, βάζει το φις στην πρίζα - και αυτό είναι η χρέωση! Αυτό συνέβαινε κάποτε, αλλά τώρα είναι αρχαϊκό, και τέτοιοι δεινόσαυροι έχουν ήδη εξαφανιστεί ή εξαφανίζονται. Αρχικά, η τιμολόγηση είναι ένα σύστημα για την έκδοση τιμολογίων - μια μηχανή μέτρησης ή μια αριθμομηχανή. Στις σύγχρονες τηλεπικοινωνίες αυτό είναι σύστημα αυτοματισμού για ολόκληρο τον κύκλο ζωής της αλληλεπίδρασης με έναν συνδρομητή από τη σύναψη σύμβασης έως την καταγγελία, συμπεριλαμβανομένης της χρέωσης σε πραγματικό χρόνο, της αποδοχής πληρωμών και πολλά άλλα. Η χρέωση στις εταιρείες τηλεπικοινωνιών είναι σαν ένα ρομπότ μάχης - μεγάλο, ισχυρό και γεμάτο όπλα.

Αρχιτεκτονική χρέωσης νέας γενιάς: μεταμόρφωση με τη μετάβαση στο Tarantool

Τι σχέση έχει το Tarantool; Θα το συζητήσουν Oleg Ivlev и Αντρέι Κνιάζεφ. Ο Oleg είναι ο επικεφαλής αρχιτέκτονας της εταιρείας Μεγάφωνο με μεγάλη εμπειρία εργασίας σε ξένες εταιρείες, ο Andrey είναι διευθυντής επιχειρηματικών συστημάτων. Από την απομαγνητοφώνηση της αναφοράς τους για Συνέδριο Tarantool 2018 θα μάθετε γιατί απαιτείται Ε&Α στις εταιρείες, τι είναι το Tarantool, πώς το αδιέξοδο της κάθετης κλιμάκωσης και της παγκοσμιοποίησης έγιναν οι προϋποθέσεις για την εμφάνιση αυτής της βάσης δεδομένων στην εταιρεία, σχετικά με τις τεχνολογικές προκλήσεις, τον αρχιτεκτονικό μετασχηματισμό και πώς το technostack της MegaFon μοιάζει με το Netflix , Google και Amazon.

Έργο "Ενοποιημένη χρέωση"

Το εν λόγω έργο ονομάζεται «Ενοποιημένη χρέωση». Ήταν εδώ που ο Tarantool έδειξε τις καλύτερες του ιδιότητες.

Αρχιτεκτονική χρέωσης νέας γενιάς: μεταμόρφωση με τη μετάβαση στο Tarantool

Η αύξηση της παραγωγικότητας του εξοπλισμού Hi-End δεν συμβάδισε με την ανάπτυξη της βάσης συνδρομητών και την αύξηση του αριθμού των υπηρεσιών· αναμενόταν περαιτέρω αύξηση του αριθμού των συνδρομητών και των υπηρεσιών λόγω των χαρακτηριστικών M2M, IoT και υποκαταστημάτων σε επιδείνωση του χρόνου διάθεσης στην αγορά. Η εταιρεία αποφάσισε να δημιουργήσει ένα ενοποιημένο επιχειρηματικό σύστημα με μοναδική σπονδυλωτή αρχιτεκτονική παγκόσμιας κλάσης, αντί για 8 τρέχοντα διαφορετικά συστήματα χρέωσης.

Η MegaFon είναι οκτώ εταιρείες σε μία. Το 2009, η αναδιοργάνωση ολοκληρώθηκε: υποκαταστήματα σε ολόκληρη τη Ρωσία συγχωνεύτηκαν σε μια ενιαία εταιρεία, την MegaFon OJSC (τώρα PJSC). Έτσι, η εταιρεία διαθέτει 8 συστήματα τιμολόγησης με τις δικές τους «προσαρμοσμένες» λύσεις, χαρακτηριστικά υποκαταστημάτων και διαφορετικές οργανωτικές δομές, πληροφορική και μάρκετινγκ.

Όλα ήταν καλά μέχρι που έπρεπε να κυκλοφορήσουμε ένα κοινό ομοσπονδιακό προϊόν. Εδώ προέκυψαν πολλές δυσκολίες: για κάποιους, τα τιμολόγια στρογγυλοποιούνται προς τα πάνω, για άλλους στρογγυλοποιούνται προς τα κάτω και για άλλους - με βάση τον αριθμητικό μέσο όρο. Υπάρχουν χιλιάδες τέτοιες στιγμές.

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

Κάθετη κλιμάκωση. Ακόμη και το πιο cool hardware εκείνη την εποχή δεν ανταποκρίνεται στις ανάγκες. Χρησιμοποιήσαμε εξοπλισμό Hewlett-Packard από τη σειρά Superdome Hi-End, αλλά δεν κάλυπτε τις ανάγκες ούτε καν δύο υποκαταστημάτων. Ήθελα οριζόντια κλιμάκωση χωρίς μεγάλα λειτουργικά έξοδα και επενδύσεις κεφαλαίου.

Προσδοκίες αύξησης του αριθμού των συνδρομητών και των υπηρεσιών. Οι σύμβουλοι έχουν φέρει εδώ και καιρό ιστορίες για το IoT και το M2M στον κόσμο των τηλεπικοινωνιών: θα έρθει η στιγμή που κάθε τηλέφωνο και σίδερο θα έχουν μια κάρτα SIM και δύο στο ψυγείο. Σήμερα έχουμε έναν αριθμό συνδρομητών, αλλά στο εγγύς μέλλον θα είναι πολλοί περισσότεροι.

Τεχνολογικές προκλήσεις

Αυτοί οι τέσσερις λόγοι μας παρακίνησαν να κάνουμε σοβαρές αλλαγές. Υπήρχε μια επιλογή μεταξύ της αναβάθμισης του συστήματος και του σχεδιασμού από την αρχή. Σκεφτήκαμε πολύ καιρό, πήραμε σοβαρές αποφάσεις, παίξαμε προσφορές. Ως αποτέλεσμα, αποφασίσαμε να σχεδιάσουμε από την αρχή, και αναλάβαμε ενδιαφέρουσες προκλήσεις - τεχνολογικές προκλήσεις.

Επεκτασιμότητα

Αν ήταν πριν, ας πούμε, ας πούμε 8 χρεώσεις για 15 εκατομμύρια συνδρομητές, και τώρα θα έπρεπε να έχει λειτουργήσει 100 εκατομμύρια συνδρομητές και περισσότεροι - το φορτίο είναι μια τάξη μεγέθους υψηλότερο.

Έχουμε γίνει συγκρίσιμοι σε κλίμακα με μεγάλα προγράμματα αναπαραγωγής Διαδικτύου όπως το Mail.ru ή το Netflix.

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

Γεωγραφία της τεράστιας χώρας μας

Μεταξύ Καλίνινγκραντ και Βλαδιβοστόκ 7500 km και 10 ζώνες ώρας. Η ταχύτητα του φωτός είναι πεπερασμένη και σε τέτοιες αποστάσεις οι καθυστερήσεις είναι ήδη σημαντικές. Τα 150 ms στα πιο όμορφα σύγχρονα οπτικά κανάλια είναι πάρα πολλά για τη χρέωση σε πραγματικό χρόνο, ειδικά καθώς είναι τώρα στις τηλεπικοινωνίες στη Ρωσία. Επιπλέον, πρέπει να κάνετε ενημέρωση σε μία εργάσιμη ημέρα και με διαφορετικές ζώνες ώρας αυτό είναι ένα πρόβλημα.

Δεν παρέχουμε μόνο υπηρεσίες με χρέωση συνδρομής, έχουμε πολύπλοκα τιμολόγια, πακέτα και διάφορους τροποποιητές. Χρειάζεται όχι μόνο να επιτρέψουμε ή να αρνηθούμε στον συνδρομητή να μιλήσει, αλλά να του δώσουμε ένα συγκεκριμένο όριο - να υπολογίσουμε τις κλήσεις και τις ενέργειες σε πραγματικό χρόνο, ώστε να μην το παρατηρήσει.

ανοχή σε σφάλματα

Αυτή είναι η άλλη πλευρά του συγκεντρωτισμού.

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

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

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

Παγκόσμια εμπειρία

Παραδόξως, δεν βρήκαμε ούτε μία αναφορά στις παγκόσμιες τηλεπικοινωνίες.

Η Ευρώπη έχει πέσει μακριά από την άποψη του αριθμού των συνδρομητών και της κλίμακας, οι ΗΠΑ - όσον αφορά την ομαλότητα των τιμολογίων τους. Εξετάσαμε μερικά στην Κίνα και βρήκαμε μερικά στην Ινδία και προσλάβαμε ειδικούς από τη Vodafone Ινδίας.

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

Κλίμακα

Μερικοί αριθμοί για παράδειγμα.

Σχεδιάζουμε το σύστημα για 80 εκατομμύρια συνδρομητές με αποθεματικό ένα δισεκατομμύριο. Έτσι καταργούμε τα μελλοντικά όρια. Αυτό δεν οφείλεται στο ότι πρόκειται να κατακτήσουμε την Κίνα, αλλά λόγω της επίθεσης του IoT και του M2M.

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

2 δις συναλλαγές Το υπόλοιπο αλλάζει καθημερινά - πρόκειται για πληρωμές, χρεώσεις, κλήσεις και άλλα γεγονότα. 200 TB δεδομένων αλλάζουν ενεργά, αλλάξτε λίγο πιο αργά 8 PB δεδομένων, και αυτό δεν είναι αρχείο, αλλά ζωντανά δεδομένα σε μία μόνο χρέωση. Κλίμακα ανά κέντρο δεδομένων - 5 χιλιάδες διακομιστές σε 14 ιστότοπους.

Στοίβα τεχνολογίας

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

Αρχιτεκτονική χρέωσης νέας γενιάς: μεταμόρφωση με τη μετάβαση στο Tarantool

Η στοίβα είναι παρόμοια με τις στοίβες άλλων μεγάλων παικτών: Netflix, Twitter, Viber. Αποτελείται από 6 στοιχεία, αλλά θέλουμε να το συντομεύσουμε και να το ενοποιήσουμε.

Η ευελιξία είναι καλή, αλλά σε μια μεγάλη εταιρεία δεν υπάρχει τρόπος χωρίς ενοποίηση.

Δεν πρόκειται να αλλάξουμε το ίδιο Oracle σε Tarantool. Στην πραγματικότητα των μεγάλων εταιρειών, αυτό είναι μια ουτοπία ή μια σταυροφορία για 5-10 χρόνια με ασαφές αποτέλεσμα. Αλλά το Cassandra και το Couchbase μπορούν εύκολα να αντικατασταθούν με το Tarantool, και αυτό είναι που προσπαθούμε.

Γιατί Tarantool;

Υπάρχουν 4 απλά κριτήρια για τα οποία επιλέξαμε αυτή τη βάση δεδομένων.

ταχύτητα. Πραγματοποιήσαμε δοκιμές φορτίου σε βιομηχανικά συστήματα MegaFon. Ο Tarantool κέρδισε - έδειξε την καλύτερη απόδοση.

Αυτό δεν σημαίνει ότι άλλα συστήματα δεν ανταποκρίνονται στις ανάγκες της MegaFon. Οι τρέχουσες λύσεις μνήμης είναι τόσο παραγωγικές που τα αποθέματα της εταιρείας είναι υπεραρκετά. Μας ενδιαφέρει όμως να έχουμε να κάνουμε με έναν ηγέτη, και όχι με κάποιον που υστερεί, συμπεριλαμβανομένης της δοκιμής φορτίου.

Η Tarantool καλύπτει τις ανάγκες της εταιρείας ακόμη και μακροπρόθεσμα.

Κόστος TCO. Η υποστήριξη του Couchbase σε τόμους MegaFon κοστίζει αστρονομικά χρηματικά ποσά, αλλά με το Tarantool η κατάσταση είναι πολύ πιο ευχάριστη και έχουν παρόμοια λειτουργικότητα.

Ένα άλλο ωραίο χαρακτηριστικό που επηρέασε ελαφρώς την επιλογή μας είναι ότι το Tarantool λειτουργεί καλύτερα με τη μνήμη από άλλες βάσεις δεδομένων. Δείχνει μέγιστη αποτελεσματικότητα.

Αξιοπιστία. Η MegaFon επενδύει στην αξιοπιστία, πιθανώς περισσότερο από οποιονδήποτε άλλον. Όταν λοιπόν κοιτάξαμε το Tarantool, συνειδητοποιήσαμε ότι έπρεπε να το κάνουμε να ανταποκρίνεται στις απαιτήσεις μας.

Επενδύσαμε τον χρόνο και τα οικονομικά μας και μαζί με το Mail.ru δημιουργήσαμε μια έκδοση για επιχειρήσεις, η οποία χρησιμοποιείται πλέον σε πολλές άλλες εταιρείες.

Η Tarantool-enterprise μας ικανοποίησε απόλυτα όσον αφορά την ασφάλεια, την αξιοπιστία και την καταγραφή.

Εταιρικής σχέσης

Το πιο σημαντικό για μένα είναι άμεση επαφή με τον προγραμματιστή. Με αυτό ακριβώς δωροδοκήθηκαν τα παιδιά από το Tarantool.

Εάν έρθετε σε έναν παίκτη, ειδικά σε κάποιον που εργάζεται με έναν πελάτη αγκύρωσης, και πείτε ότι χρειάζεστε τη βάση δεδομένων για να μπορέσετε να το κάνετε αυτό, αυτό και αυτό, συνήθως απαντά:

- Εντάξει, βάλτε τις απαιτήσεις στο κάτω μέρος αυτού του σωρού - κάποια μέρα, μάλλον θα τις φτάσουμε.

Πολλοί έχουν έναν οδικό χάρτη για τα επόμενα 2-3 χρόνια και είναι σχεδόν αδύνατο να ενσωματωθούν εκεί, αλλά οι προγραμματιστές του Tarantool αιχμαλωτίζουν με την ανοιχτότητά τους, και όχι μόνο από το MegaFon, και προσαρμόζουν το σύστημά τους στον πελάτη. Είναι ωραίο και μας αρέσει πολύ.

Εκεί που χρησιμοποιήσαμε το Tarantool

Χρησιμοποιούμε το Tarantool σε πολλά στοιχεία. Ο πρώτος είναι στον πιλότο, που φτιάξαμε στο σύστημα καταλόγου διευθύνσεων. Κάποτε ήθελα να είναι ένα σύστημα παρόμοιο με το Yandex.Maps και το Google Maps, αλλά αποδείχθηκε λίγο διαφορετικά.

Για παράδειγμα, ο κατάλογος διευθύνσεων στη διεπαφή πωλήσεων. Στην Oracle, η αναζήτηση της επιθυμητής διεύθυνσης διαρκεί 12-13 δευτερόλεπτα. - άβολα νούμερα. Όταν μεταβούμε στο Tarantool, αντικαταστήσουμε την Oracle με μια άλλη βάση δεδομένων στην κονσόλα και πραγματοποιήσουμε την ίδια αναζήτηση, έχουμε επιτάχυνση 200x! Η πόλη αναδύεται μετά το τρίτο γράμμα. Τώρα προσαρμόζουμε τη διεπαφή έτσι ώστε αυτό να συμβεί μετά την πρώτη. Ωστόσο, η ταχύτητα απόκρισης είναι εντελώς διαφορετική - χιλιοστά του δευτερολέπτου αντί για δευτερόλεπτα.

Η δεύτερη εφαρμογή είναι ένα μοντέρνο θέμα που ονομάζεται IT δύο ταχυτήτων. Αυτό συμβαίνει επειδή οι σύμβουλοι από κάθε γωνιά λένε ότι οι εταιρείες πρέπει να πάνε εκεί.

Αρχιτεκτονική χρέωσης νέας γενιάς: μεταμόρφωση με τη μετάβαση στο Tarantool

Υπάρχει ένα επίπεδο υποδομής, πάνω από αυτό υπάρχουν τομείς, για παράδειγμα, ένα σύστημα χρέωσης όπως τηλεπικοινωνίες, εταιρικά συστήματα, εταιρική αναφορά. Αυτός είναι ο πυρήνας που δεν χρειάζεται να αγγίξετε. Αυτό είναι, φυσικά, δυνατό, αλλά παρανοϊκά διασφαλίζοντας την ποιότητα, γιατί φέρνει χρήματα στην εταιρεία.

Ακολουθεί το επίπεδο των microservices - αυτό που διαφοροποιεί τον χειριστή ή άλλο παίκτη. Οι μικροϋπηρεσίες μπορούν να δημιουργηθούν γρήγορα με βάση ορισμένες κρυφές μνήμες, φέρνοντας εκεί δεδομένα από διαφορετικούς τομείς. Εδώ πεδίο για πειράματα — αν κάτι δεν πήγαινε καλά, έκλεινα μια microservice και άνοιγα μια άλλη. Αυτό παρέχει πραγματικά αυξημένο χρόνο διάθεσης στην αγορά και αυξάνει την αξιοπιστία και την ταχύτητα της εταιρείας.

Οι μικροϋπηρεσίες είναι ίσως ο κύριος ρόλος του Tarantool στο MegaFon.

Όπου σκοπεύουμε να χρησιμοποιήσουμε το Tarantool

Αν συγκρίνουμε το επιτυχημένο έργο τιμολόγησής μας με τα προγράμματα μετασχηματισμού των Deutsche Telekom, Svyazcom, Vodafone Ινδίας, είναι εκπληκτικά δυναμικό και δημιουργικό. Κατά τη διαδικασία υλοποίησης αυτού του έργου, όχι μόνο το MegaFon και η δομή του μετασχηματίστηκαν, αλλά και το Tarantool-enterprise εμφανίστηκε στο Mail.ru και ο προμηθευτής μας Nexign (πρώην Peter-Service) - BSS Box (μια λύση τιμολόγησης σε κουτιά).

Αυτό είναι, κατά μία έννοια, ένα ιστορικό έργο για τη ρωσική αγορά. Μπορεί να συγκριθεί με αυτό που περιγράφεται στο βιβλίο «The Mythical Man-Month» του Frederick Brooks. Στη συνέχεια, στη δεκαετία του '60, η IBM προσέλαβε 360 άτομα για να αναπτύξουν το νέο λειτουργικό σύστημα OS/5 για mainframes. Έχουμε λιγότερα - 000, αλλά τα δικά μας είναι με γιλέκα και λαμβάνοντας υπόψη τη χρήση ανοιχτού κώδικα και νέες προσεγγίσεις, εργαζόμαστε πιο παραγωγικά.

Ακολουθούν οι τομείς των τιμολόγησης ή, γενικότερα, των επιχειρηματικών συστημάτων. Οι άνθρωποι από τις επιχειρήσεις γνωρίζουν πολύ καλά το CRM. Όλοι θα πρέπει να έχουν ήδη άλλα συστήματα: Open API, API Gateway.

Αρχιτεκτονική χρέωσης νέας γενιάς: μεταμόρφωση με τη μετάβαση στο Tarantool

Ανοίξτε το API

Ας δούμε ξανά τους αριθμούς και πώς λειτουργεί επί του παρόντος το Open API. Το φορτίο του είναι 10 συναλλαγές ανά δευτερόλεπτο. Δεδομένου ότι σχεδιάζουμε να αναπτύξουμε ενεργά το επίπεδο microservices και να δημιουργήσουμε το δημόσιο API του MegaFon, αναμένουμε μεγαλύτερη ανάπτυξη στο μέλλον σε αυτό το μέρος. Σίγουρα θα γίνουν 100 συναλλαγές.

Δεν ξέρω αν μπορούμε να συγκριθούμε με το Mail.ru στο SSO - τα παιδιά φαίνεται να έχουν 1 συναλλαγές ανά δευτερόλεπτο. Η λύση τους είναι εξαιρετικά ενδιαφέρουσα για εμάς και σκοπεύουμε να υιοθετήσουμε την εμπειρία τους - για παράδειγμα, να δημιουργήσουμε ένα λειτουργικό αντίγραφο ασφαλείας SSO χρησιμοποιώντας το Tarantool. Τώρα οι προγραμματιστές από το Mail.ru το κάνουν αυτό για εμάς.

CRM

Το CRM είναι οι ίδιοι 80 εκατομμύρια συνδρομητές που θέλουμε να αυξήσουμε σε ένα δισεκατομμύριο, επειδή υπάρχουν ήδη 300 εκατομμύρια έγγραφα που περιλαμβάνουν τριετή ιστορία. Ανυπομονούμε πραγματικά για νέες υπηρεσίες και εδώ σημείο ανάπτυξης είναι οι συνδεδεμένες υπηρεσίες. Αυτή είναι μια μπάλα που θα μεγαλώσει, γιατί θα υπάρχουν όλο και περισσότερες υπηρεσίες. Συνεπώς, θα χρειαστούμε μια ιστορία· δεν θέλουμε να σκοντάψουμε σε αυτό.

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

Το σύστημα χωρίζεται σε τομείς, το φορτίο κατανέμεται και διασφαλίζεται η ανοχή σφαλμάτων. Επιπλέον, δουλέψαμε με κατανεμημένη αρχιτεκτονική.

Όλα τα άλλα είναι λύσεις σε επίπεδο επιχείρησης. Στο χώρο αποθήκευσης κλήσεων - 2 δις την ημέρα, 60 δισεκατομμύρια το μήνα. Μερικές φορές πρέπει να τα μετρήσετε σε ένα μήνα και είναι καλύτερα γρήγορα. Οικονομική παρακολούθηση - είναι ακριβώς τα ίδια 300 εκατομμύρια που συνεχώς αυξάνονται και αυξάνονται: οι συνδρομητές συχνά τρέχουν μεταξύ φορέων, αυξάνοντας αυτό το τμήμα.

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

Η προηγούμενη εικόνα είναι οι τομείς όπου θα χρησιμοποιήσουμε το Tarantool. Το ίδιο το CRM, φυσικά, είναι ευρύτερο και θα το χρησιμοποιήσουμε στον ίδιο τον πυρήνα.

Ο εκτιμώμενος αριθμός TTX των 100 εκατομμυρίων συνδρομητών με μπερδεύει ως αρχιτέκτονα - τι θα συμβεί αν 101 εκατομμύρια; Πρέπει να τα ξανακάνεις όλα; Για να μην συμβεί αυτό, χρησιμοποιούμε κρυφές μνήμες, αυξάνοντας ταυτόχρονα την προσβασιμότητα.

Αρχιτεκτονική χρέωσης νέας γενιάς: μεταμόρφωση με τη μετάβαση στο Tarantool

Γενικά, υπάρχουν δύο προσεγγίσεις για τη χρήση του Tarantool. Πρώτα - να δημιουργήσετε όλες τις κρυφές μνήμες σε επίπεδο microservice. Από όσο καταλαβαίνω, η VimpelCom ακολουθεί αυτό το μονοπάτι, δημιουργώντας μια κρυφή μνήμη πελατών.

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

Με αυτόν τον τρόπο υπάρχει λιγότερος συγχρονισμός - ένα σύστημα είναι υπεύθυνο τόσο για την κρυφή μνήμη όσο και για την κύρια κύρια πηγή.

Η μέθοδος ταιριάζει καλά με την προσέγγιση Tarantool με έναν σκελετό συναλλαγών, όταν ενημερώνονται μόνο τμήματα που σχετίζονται με ενημερώσεις, δηλαδή αλλαγές δεδομένων. Όλα τα άλλα μπορούν να αποθηκευτούν κάπου αλλού. Δεν υπάρχει τεράστια λίμνη δεδομένων, μη διαχειριζόμενη παγκόσμια κρυφή μνήμη. Οι κρυφές μνήμες έχουν σχεδιαστεί για το σύστημα, ή για προϊόντα, ή για πελάτες ή για να κάνουν τη ζωή ευκολότερη στη συντήρηση. Όταν ένας συνδρομητής καλεί και είναι αναστατωμένος για την ποιότητα της υπηρεσίας σας, θέλετε να παρέχετε ποιοτική υπηρεσία.

RTO και RPO

Υπάρχουν δύο όροι στην πληροφορική - RTO и RPO.

Στόχος του χρόνου αποκατάστασης είναι ο χρόνος που χρειάζεται για την επαναφορά της υπηρεσίας μετά από μια αποτυχία. RTO = 0 σημαίνει ότι ακόμα κι αν κάτι αποτύχει, η υπηρεσία συνεχίζει να λειτουργεί.

Στόχος σημείου ανάκτησης - αυτός είναι ο χρόνος ανάκτησης δεδομένων, πόσα δεδομένα μπορούμε να χάσουμε σε μια συγκεκριμένη χρονική περίοδο. RPO = 0 σημαίνει ότι δεν χάνουμε δεδομένα.

Εργασία Tarantool

Ας προσπαθήσουμε να λύσουμε ένα πρόβλημα για τον Tarantool.

Δεδομένος: ένα καλάθι εφαρμογών που όλοι καταλαβαίνουν, για παράδειγμα, στο Amazon ή κάπου αλλού. απαιτείται έτσι ώστε το καλάθι αγορών να λειτουργεί 24 ώρες 7 ημέρες την εβδομάδα, ή στο 99,99% του χρόνου. Οι παραγγελίες που έρχονται σε εμάς πρέπει να παραμείνουν σε τάξη, επειδή δεν μπορούμε να ενεργοποιήσουμε ή να απενεργοποιήσουμε τυχαία τη σύνδεση του συνδρομητή - όλα πρέπει να είναι αυστηρά συνεπή. Η προηγούμενη συνδρομή επηρεάζει την επόμενη, επομένως τα δεδομένα είναι σημαντικά - τίποτα δεν πρέπει να λείπει.

Λύση. Μπορείτε να προσπαθήσετε να το λύσετε κατά μέτωπο και να ρωτήσετε τους προγραμματιστές της βάσης δεδομένων, αλλά το πρόβλημα δεν μπορεί να λυθεί μαθηματικά. Μπορείτε να θυμάστε θεωρήματα, νόμους διατήρησης, κβαντική φυσική, αλλά γιατί - δεν μπορεί να λυθεί σε επίπεδο DB.

Η παλιά καλή αρχιτεκτονική προσέγγιση λειτουργεί εδώ - πρέπει να γνωρίζετε καλά τη θεματική περιοχή και να τη χρησιμοποιήσετε για να λύσετε αυτό το παζλ.

Αρχιτεκτονική χρέωσης νέας γενιάς: μεταμόρφωση με τη μετάβαση στο Tarantool

Η λύση μας: δημιουργία ενός κατανεμημένου μητρώου εφαρμογών στο Tarantool - ένα γεωγραφικά κατανεμημένο σύμπλεγμα. Στο διάγραμμα, αυτά είναι τρία διαφορετικά κέντρα επεξεργασίας δεδομένων - δύο πριν από τα Ουράλια, ένα πέρα ​​από τα Ουράλια, και διανέμουμε όλα τα αιτήματα μεταξύ αυτών των κέντρων.

Το Netflix, το οποίο θεωρείται πλέον ένας από τους ηγέτες στον τομέα της πληροφορικής, είχε μόνο ένα κέντρο δεδομένων μέχρι το 2012. Την παραμονή των Καθολικών Χριστουγέννων, 24 Δεκεμβρίου, αυτό το κέντρο δεδομένων κατέρρευσε. Οι χρήστες στον Καναδά και τις ΗΠΑ έμειναν χωρίς τις αγαπημένες τους ταινίες, στεναχωρήθηκαν πολύ και έγραψαν για αυτό στα κοινωνικά δίκτυα. Το Netflix διαθέτει πλέον τρία κέντρα δεδομένων στη δυτική-ανατολική ακτή και ένα στη δυτική Ευρώπη.

Κατασκευάζουμε αρχικά μια γεωδιανεμημένη λύση - η ανοχή σφαλμάτων είναι σημαντική για εμάς.

Έχουμε λοιπόν ένα σύμπλεγμα, αλλά τι γίνεται με το RPO = 0 και το RTO = 0; Η λύση είναι απλή, ανάλογα με το θέμα.

Τι είναι σημαντικό στις εφαρμογές; Δύο μέρη: Ρίψη καλαθιού TO λήψη απόφασης αγοράς και ΜΕΤΑ. Το τμήμα DO στις τηλεπικοινωνίες συνήθως ονομάζεται σύλληψη παραγγελίας ή διαπραγμάτευση παραγγελίας. Στις τηλεπικοινωνίες, αυτό μπορεί να είναι πολύ πιο δύσκολο από ό,τι σε ένα ηλεκτρονικό κατάστημα, επειδή εκεί ο πελάτης πρέπει να εξυπηρετηθεί, να του προσφερθούν 5 επιλογές και όλα αυτά συμβαίνουν για κάποιο χρονικό διάστημα, αλλά το καλάθι είναι γεμάτο. Αυτή τη στιγμή, μια αποτυχία είναι πιθανή, αλλά δεν είναι τρομακτική, γιατί συμβαίνει διαδραστικά υπό την επίβλεψη του ανθρώπου.

Εάν το κέντρο δεδομένων της Μόσχας αποτύχει ξαφνικά, τότε με αυτόματη μετάβαση σε άλλο κέντρο δεδομένων, θα συνεχίσουμε να εργαζόμαστε. Θεωρητικά, ένα προϊόν μπορεί να χαθεί στο καλάθι, αλλά το βλέπετε, προσθέτετε ξανά στο καλάθι και συνεχίζετε να εργάζεστε. Σε αυτή την περίπτωση RTO = 0.

Την ίδια στιγμή, υπάρχει μια δεύτερη επιλογή: όταν πατήσαμε «υποβολή», θέλουμε να μην χαθούν τα δεδομένα. Από αυτή τη στιγμή, ο αυτοματισμός αρχίζει να λειτουργεί - αυτό είναι RPO = 0. Χρησιμοποιώντας αυτά τα δύο διαφορετικά μοτίβα, σε μια περίπτωση θα μπορούσε απλώς να είναι ένα γεω-κατανεμημένο σύμπλεγμα με ένα εναλλασσόμενο κύριο, σε μια άλλη περίπτωση κάποιο είδος εγγραφής απαρτίας. Τα μοτίβα μπορεί να διαφέρουν, αλλά λύνουμε το πρόβλημα.

Επιπλέον, έχοντας ένα κατανεμημένο μητρώο εφαρμογών, μπορούμε επίσης να τα κλιμακώσουμε όλα - έχουμε πολλούς διεκπεραιωτές και εκτελεστές που έχουν πρόσβαση σε αυτό το μητρώο.

Αρχιτεκτονική χρέωσης νέας γενιάς: μεταμόρφωση με τη μετάβαση στο Tarantool

Κασσάνδρα και Ταραντούλ μαζί

Υπάρχει μια άλλη περίπτωση - "βιτρίνα των υπολοίπων". Εδώ είναι μια ενδιαφέρουσα περίπτωση της κοινής χρήσης της Κασσάνδρας και του Ταραντούλου.

Χρησιμοποιούμε την Κασσάνδρα γιατί 2 δισεκατομμύρια κλήσεις την ημέρα δεν είναι το όριο και θα υπάρξουν περισσότερες. Οι επαγγελματίες του μάρκετινγκ λατρεύουν να χρωματίζουν την επισκεψιμότητα ανά πηγή· για παράδειγμα, όλο και περισσότερες λεπτομέρειες εμφανίζονται στα κοινωνικά δίκτυα. Όλα προσθέτουν στην ιστορία.

Η Cassandra σάς επιτρέπει να κλιμακώνετε οριζόντια σε οποιοδήποτε μέγεθος.

Νιώθουμε άνετα με την Κασσάνδρα, αλλά έχει ένα πρόβλημα - δεν είναι καλή στο διάβασμα. Όλα είναι εντάξει στην εγγραφή, 30 ανά δευτερόλεπτο δεν είναι πρόβλημα - πρόβλημα ανάγνωσης.

Επομένως, εμφανίστηκε ένα θέμα με προσωρινή μνήμη και ταυτόχρονα λύσαμε το ακόλουθο πρόβλημα: υπάρχει μια παλιά παραδοσιακή περίπτωση όταν ο εξοπλισμός από μια εναλλαγή από την ηλεκτρονική χρέωση μπαίνει στα αρχεία που φορτώνουμε στην Cassandra. Αγωνιστήκαμε με το πρόβλημα της αξιόπιστης λήψης αυτών των αρχείων, ακόμη και χρησιμοποιώντας τις συμβουλές του διαχειριστή της IBM μεταφοράς αρχείων - υπάρχουν λύσεις που διαχειρίζονται αποτελεσματικά τη μεταφορά αρχείων, χρησιμοποιώντας το πρωτόκολλο UDP, για παράδειγμα, αντί για το TCP. Αυτό είναι καλό, αλλά είναι ακόμα λίγα λεπτά και δεν τα έχουμε φορτώσει όλα ακόμα, ο χειριστής στο τηλεφωνικό κέντρο δεν μπορεί να απαντήσει στον πελάτη τι συνέβη με το υπόλοιπό του - πρέπει να περιμένουμε.

Για να μην συμβεί αυτό, εμείς χρησιμοποιούμε παράλληλη λειτουργική εφεδρεία. Όταν στέλνουμε ένα συμβάν μέσω του Κάφκα στο Tarantool, υπολογίζοντας εκ νέου τα συγκεντρωτικά στοιχεία σε πραγματικό χρόνο, για παράδειγμα, για σήμερα, παίρνουμε ταμειακά υπόλοιπα, που μπορεί να μεταφέρει υπόλοιπα με οποιαδήποτε ταχύτητα, για παράδειγμα, 100 χιλιάδες συναλλαγές ανά δευτερόλεπτο και τα ίδια 2 δευτερόλεπτα.

Ο στόχος είναι ότι μετά την πραγματοποίηση μιας κλήσης, μέσα σε 2 δευτερόλεπτα στον προσωπικό σας λογαριασμό θα υπάρχει όχι μόνο το αλλαγμένο υπόλοιπο, αλλά πληροφορίες για το γιατί άλλαξε.

Συμπέρασμα

Αυτά ήταν παραδείγματα χρήσης του Tarantool. Μας άρεσε πολύ η διαφάνεια του Mail.ru και η προθυμία τους να εξετάσουν διαφορετικές περιπτώσεις.

Είναι ήδη δύσκολο για συμβούλους από την BCG ή τη McKinsey, την Accenture ή την IBM να μας εκπλήξουν με κάτι νέο - πολλά από αυτά που προσφέρουν, είτε τα κάνουμε ήδη, είτε τα έχουμε κάνει, είτε σχεδιάζουμε να κάνουμε. Νομίζω ότι το Tarantool θα πάρει τη θέση που δικαιούται στην τεχνολογική μας στοίβα και θα αντικαταστήσει πολλές υπάρχουσες τεχνολογίες. Είμαστε στην ενεργό φάση ανάπτυξης αυτού του έργου.

Η έκθεση του Oleg και του Andrey είναι μία από τις καλύτερες στο Συνέδριο Tarantool πέρυσι και στις 17 Ιουνίου ο Oleg Ivlev θα μιλήσει στο Συνέδριο T+ 2019 με αναφορά “Γιατί Tarantool in Enterprise”. Παρουσίαση από το MegaFon θα κάνει και ο Alexander Deulin "Tarantool Caches and Replication from Oracle". Ας μάθουμε τι έχει αλλάξει, ποια σχέδια έχουν εφαρμοστεί. Εγγραφείτε - το συνέδριο είναι δωρεάν, το μόνο που έχετε να κάνετε είναι μητρώο. Ολα αποδεκτές εκθέσεις και το πρόγραμμα του συνεδρίου έχει διαμορφωθεί: νέες περιπτώσεις, νέα εμπειρία στη χρήση Tarantool, αρχιτεκτονική, επιχείρηση, σεμινάρια και μικροϋπηρεσίες.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο