el

Πως δουλεύει?

Χρειάζεστε βοήθεια για επιχειρήσεις;

Επικοινωνήστε μαζί μας για μια εξατομικευμένη προσφορά FinMV προσαρμοσμένη στις ανάγκες σας.

Μονολιθικό ή microservice;

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

Επιλογή 1. Μονολιθική αρχιτεκτονική (μονόλιθος)

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

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

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

Δεύτερον, οι τεχνικοί μηχανικοί σκέφτονται: "Λοιπόν, ας είναι μια μονολιθική αρχιτεκτονική προς το παρόν, αλλά όταν μεγαλώσει η επιχείρηση, τότε θα τα ξανακάνουμε όλα". Δυστυχώς, στην πραγματικότητα, η μεταφορά ενός υπάρχοντος μονολιθικού έργου σε μια αρχιτεκτονική microservice θα είναι δεκάδες φορές πιο δύσκολη από το να γράψετε τα πάντα από την αρχή.

Επιλογή 2. Αρχιτεκτονική Microservice

Θα φτιάξουμε την οικονομική πλατφόρμα σας αμέσως με βάση την αρχιτεκτονική microservice.

Η αρχιτεκτονική μικροϋπηρεσιών μπορεί να συγκριθεί με πλάκες πεζοδρομίου σε μονοπάτια. Καθώς το έργο σας μεγαλώνει, περισσότερα πλακίδια προστίθενται στο διάδρομό σας. Εάν ένα στοιχείο είναι παλιό, αρκεί να αντικαταστήσετε αυτό το πλακίδιο με ένα νέο.

Αυτή η αρχιτεκτονική έχει πολλά πλεονεκτήματα, αλλά θα αναφέρω τα πιο σημαντικά:

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

Παραδείγματα πραγματικής ζωής

Πρώτο παράδειγμα. Η διαχείριση μιας πλατφόρμας δανεισμού P2P με μεγάλο αριθμό χρηστών αποφάσισε να εισέλθει στις αγορές χωρών με διαφορετικό νόμισμα. Η πλατφόρμα είχε μονολιθική αρχιτεκτονική και περιλάμβανε μόνο ένα νόμισμα - το ευρώ, και για να εισέλθει στις αγορές της Σουηδίας (σουηδική κορώνα), της Πολωνίας (ζλότι Πολωνίας), της Τσεχικής Δημοκρατίας (τσεχική κορώνα) ήταν απαραίτητο να εισαχθεί το πολυνόμισμα.

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

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

Στην πράξη, ολόκληρο το έργο έπρεπε να επαναληφθεί. Για παράδειγμα, τα ονόματα των εταιρειών και των προϊόντων στη βάση δεδομένων θα πρέπει πλέον να αποθηκεύονται όχι μόνο σε μία γλώσσα, αλλά σε κάθε γλώσσα. Ήταν αδύνατο να αντιγραφούν πληροφορίες λόγω της επιχειρηματικής λογικής, ήταν απαραίτητο να αποθηκευτούν τα ονόματα για όλες τις γλώσσες ταυτόχρονα. Κατά συνέπεια, αυτό οδήγησε σε αλλαγές στις διεπαφές του υπουργικού συμβουλίου και του back office. Οι αλλαγές διεπαφής απαιτούσαν αλλαγή των κανόνων για την επικύρωση εισερχόμενων δεδομένων, προτύπων γραμμάτων λόγω διαφορετικών αρχών καταλήξεων σε διαφορετικές γλώσσες, αλλαγή δοκιμών κ.λπ.

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

Τρίτο παράδειγμα. Η πλατφόρμα fintech δημιουργήθηκε σε μια παλιά έκδοση της PHP και της Laravel. Η αναβάθμιση σε νεότερες εκδόσεις, καθώς και η αλλαγή της βάσης δεδομένων από MariaDB σε PostgreSQL, ήταν σχεδόν αδύνατη, καθώς ολόκληρη η ομάδα χρειάστηκε να ασχοληθεί μόνο με τη διαδικασία μετεγκατάστασης για αρκετούς μήνες.

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

.