Τεχνικές για ανάπτυξη εφαρμογής με χρήση microservices
Application development techniques using microservices
Προβολή/ Άνοιγμα
Λέξεις κλειδιά
Microservices ; Αρχιτεκτονική ηλεκτρονικών υπολογιστών ; Προγραμματισμός ηλεκτρονικών υπολογιστών ; ΕφαρμογέςΠερίληψη
Στον προγραμματισμό μπορεί κανείς να παρατηρήσει με την πάροδο του χρόνου διάφορες τάσεις αφενός στις γλώσσες αλλά και σε διάφορες μορφές αρχιτεκτονικής που χρησιμοποιούνται. Οι γλώσσες που ανά χρονικές περιόδους κυριαρχούν υποδηλώνουν το "πώς", το μέσο δηλαδή με το οποίο γίνεται η ανάπτυξη του λογισμικού. Από την άλλη, η αρχιτεκτονική υποδηλώνει το "τι", ποιος είναι ο σκοπός της ανάπτυξης του λογισμικού. Μέσα από αυτή εμφανίζονται οι στόχοι αλλά και οι περιορισμοί που έχει η ανάπτυξη λογισμικού την αντίστοιχη περίοδο.
Τα τελευταία χρόνια μία από τις επικρατέστερες αρχιτεκτονικές ανάπτυξης πολύπλοκων λογισμικών και εφαρμογών είναι τα microservices. Για να κατανοήσει κάποιος ακριβώς αυτή την αρχιτεκτονική και να μπορέσει να σχεδιάσει το δικό του λογισμικό με αυτή τη μεθοδολογία πρέπει να εμβαθύνει στα εξής:
• τι ακριβώς είναι τα microservices
• πώς αναδύθηκαν και γιατί σαν κυριαρχούσα αρχιτεκτονική
• σε ποιες εφαρμογές ταιριάζουν
Όταν κατανοήσει αυτά τα σημεία μπορεί να προχωρήσει στο πρακτικό κομμάτι
• πώς να σχεδιάσει μία εφαρμογή με microservices
• ποια είναι τα βασικά σημεία τους και πώς να υλοποιήσει
• πώς να εντάξει αυτό τον τρόπο προγραμματισμού σε ένα ευρύτερο πλαίσιο μέσα σε μία εταιρία/πολύπλοκο σύστημα
Microservices με λίγα λόγια θα μπορούσαμε να πούμε ότι είναι ο τρόπος που ένα σύνθετο μονολιθικό σύστημα μπορεί να αναπτυχθεί σαν ένα σύνολο περισσότερων αλλά απλούστερων εφαρμογών που επικοινωνούν μεταξύ τους.
Άρχισε να εμφανίζεται σαν μεθοδολογία από το 2000 αλλά τα τελευταία χρόνια έχει εδραιωθεί σαν τρόπος ανάπτυξης πολύπλοκων διαδικτυακών εφαρμογών καθώς όλες οι διαδικτυακές εφαρμογές ευρείας (και όχι μόνο) χρήσης την υιοθέτησαν.
Δίνει λύση σε συστήματα όπου η πολυπλοκότητα ξεπερνά τη συνηθισμένη. Όσο μία εφαρμογή μεγαλώνει σε μέγεθος αλλά και σε πολυπλοκότητα η ανάπτυξη νέων feature αλλά και το debugging των ήδη υπαρχόντων γίνεται όλο και πιο δύσκολη και σε κάποιες περιπτώσεις αδύνατη. Σε τέτοιες συνθήκες έρχονται συχνά τα microservices να δώσουν λύσεις.
Για να αρχίσει κάποιος να σχεδιάζει μία εφαρμογή με microservices πρέπει στο μυαλό του να αντικαταστήσει την μονολιθική εφαρμογή που ήξερε με ένα σύνολο απλούστερων εφαρμογών που επικοινωνούν μεταξύ τους. Έτσι τα διαφορετικά ξεχωριστά υποσυστήματα μετατρέπονται σε ξεχωριστές απλούστερες εφαρμογές. Αυτές με τι σειρά τους είναι ευκολότερο να αναπτυχθούν αφού δεν έχουν dependencies σε άλλα τμήματα της παλαιότερης μονολιθικής εφαρμογής.
Καθώς όμως το πλήθος των εφαρμογών μεγαλώνει, πρέπει ο προγραμματιστής να αντιμετωπίσει νέα προγραμματιστικά προβλήματα. Πώς αυτές οι εφαρμογές θα υλοποιηθούν; Πώς θα αναγνωρίζει η μία την άλλη; Πώς θα επικοινωνούν μεταξύ τους; Και το κυριότερο, πώς θα αποφύγει εισαγάγει εξαρτήσεις μεταξύ τους ώστε να μην καταλήξει καινούργια μονολιθική εφαρμογή.
Ένας προγραμματιστής σπάνια δουλεύει μόνος του. Και ακόμα πιο σπάνια μία εφαρμογή που χρειάζεται να δομηθεί με microservices αναπτύσσεται μόνο από ένα προγραμματιστή. Αυτό σημαίνει ότι αυτός ο νέος τρόπος αρχιτεκτονικής αλλά και προγραμματισμού πρέπει να καταφέρει να ενταχθεί παραγωγικά σε μία ευρύτερη "γραμμή παραγωγής" που ξεκινά από το coding και φτάνει μέχρι το deployment.