Παρασκευή 31 Αυγούστου 2018

MICROSERVICES: Τι είναι και τι τα κάνει απαραίτητα σε μια Επιχείρησης


Microservices: Τι είναι και τι τα κάνει απαραίτητα σε μια Επιχείρησης; Στο ερώτημα αυτό απαντά το άρθρο που ακολουθεί. Δημοσιεύτηκε στο LINUX.COM, ενώ τη μετάφραση στα Ελληνικά αναδημοσιεύω από το ELLAK.GR




Τα MICROSERVICES δεν είναι ένας νέος όρος. Όπως τα containers, υπάρχουν εδώ και καιρό, αλλά πρόσφατα υπάρχει μεγάλο ενδιαφέρον για αυτά, καθώς πολλές εταιρείες ξεκινούν το ταξίδι τους στις τεχνολογίες cloud.


Εξέλιξη των Microservices


Ο Patrick Chanezon, Chief Advocate Developer για το Docker, παρέδωσε ένα σύντομο μάθημα ιστορίας: Στα τέλη της δεκαετίας του 1990, οι προγραμματιστές άρχισαν να δομούν τις εφαρμογές μονoλιθικά, όπου οι μαζικές εφαρμογές είχαν όλα τα χαρακτηριστικά και λειτουργίες ενσωματωμένα σε αυτές. Οι μονόλιθοι αυτοί ήταν εύκολο να γραφτούν και να διαχειριστούν. Οι εταιρείες, είχαν μια ομάδα προγραμματιστών που έχτισαν τις εφαρμογές αυτές,  με βάση τα σχόλια των πελατών και των ομάδων πωλήσεων και μάρκετινγκ. Ολόκληρη η ομάδα προγραμματιστών συνεργαζόταν για την κατασκευή σφιχτά κολλημένων κομματιών ως μια εφαρμογή που μπορεί να τρέξει στους δικούς της διακομιστές εφαρμογών. Ήταν ένας δημοφιλής τρόπος γραφής και παράδοσης εφαρμογών web.

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

Περίπου το 2011, η SERVICE ORIENTED ARCHITECTURE (SOA) έγινε δημοφιλής όπου οι προγραμματιστές θα μπορούσαν να έχουν πολλαπλές εφαρμογές web ως υπηρεσίες λογισμικού μέσα σε μια VM (εικονική μηχανή). Τους επέτρεψε να προσθέτουν ή να ενημερώνουν τις υπηρεσίες ανεξάρτητα το ένα από το άλλο. Ωστόσο, η κλιμάκωση αυτών εξακολουθούσε να αποτελεί πρόβλημα.

«Η στρατηγική κλίμακας  ήταν τότε να αναπτυχθούν πολλαπλά αντίγραφα της εικονικής μηχανής πίσω από ένα balancer φορτίου. Τα προβλήματα με αυτό το μοντέλο ήταν πολλά. Οι υπηρεσίες  δεν μπορούν να κλιμακωθούν ή να αναβαθμιστούν ανεξάρτητα, καθώς το VM είναι η μικρότερη λεπτομέρεια για κλίμακα. Τα VM είναι ογκώδη, καθώς φέρουν επιπλέον βάρος ενός λειτουργικού συστήματος, οπότε θα πρέπει να ήταν εξαιρετικά προσεκτικοί σχετικά με την απλή ανάπτυξη πολλαπλών αντιγράφων VM για κλιμάκωση», δήλωσε ο Madhura Maskasky, συνιδρυτής και αντιπρόεδρος of Product στην Platform9.

Πριν από πέντε χρόνια, όταν το Docker ήρθε στο προσκήνιο, και τα Containers έγιναν δημοφιλή, η SOA ξεπεράστηκε από την αρχιτεκτονική των «Microservices». «Τα Containers  και τα Microservices διορθώνουν πολλά από αυτά τα προβλήματα. Τα Containers επιτρέπουν την ανάπτυξη των Microservices ως ανεξάρτητες υπηρεσίες. Το πρότυπο Microservices, σε συνδυασμό με ένα ισχυρό πλαίσιο με εγγενή υποστήριξη για το πρότυπο, επιτρέπει την εύκολη ανάπτυξη ανεξάρτητων υπηρεσιών ως ένα ή περισσότερα κοντέινερ, καθώς και την εύκολη κλιμάκωση και αναβάθμιση αυτών», δήλωσε ο Maskasky.


Τι είναι τα Microservices;

Βασικά, μια αρχιτεκτονική Microservices είναι ένας τρόπος δομής των εφαρμογών. Με την άνοδο των Containers, οι άνθρωποι έχουν αρχίσει να σπάζουν τους μονολιθικούς σταθμούς σε Microservices. «Η ιδέα είναι ότι χτίζετε την εφαρμογή σας ως ένα σύνολο χαλαρά συνδεδεμένων υπηρεσιών που μπορούν να ενημερωθούν και να κλιμακωθούν ξεχωριστά κάτω από την υποδομή των Containers«, δήλωσε ο Chanezon.

Οι Microservices φαίνεται να έχουν εξελιχθεί σε σύγκριση με την πιο αυστηρά καθορισμένη αρχιτεκτονική προσανατολισμένη στις υπηρεσίες (SOA),. Κάποιοι θα το αποκαλούσαν απλώς μια νέα επωνυμία SOA, αλλά ο όρος «Microservices» συχνά συνεπάγεται τη χρήση ακόμη μικρότερων λειτουργικών συνιστωσών από SOA, RESTful API που ανταλλάσσουν JSON, ελαφρύτερους διακομιστές (συχνά με Containers και σύγχρονες τεχνολογίες και πρωτόκολλα).

Τα Microservices παρέχουν έναν τρόπο για την κλιμάκωση της ανάπτυξης και της παράδοσης μεγάλων, σύνθετων εφαρμογών, με τη διάσπασή τους που επιτρέπει στα μεμονωμένα εξαρτήματα να εξελιχθούν ανεξάρτητα το ένα από το άλλο. «Η αρχιτεκτονική Microservices προσφέρει μεγαλύτερη ευελιξία μέσω της ανεξαρτησίας των υπηρεσιών, επιτρέποντας στους οργανισμούς να γίνουν πιο ευέλικτοι όσον αφορά τον τρόπο με τον οποίο προσφέρουν νέες επιχειρηματικές δυνατότητες ή ανταποκρίνονται στις μεταβαλλόμενες συνθήκες της αγοράς. Οι υπηρεσίες MicroServices επιτρέπουν τη χρήση του σωστού εργαλείου για τη σωστή εργασία, πράγμα που σημαίνει ότι οι εφαρμογές μπορούν να αναπτυχθούν και να παραδοθούν από την τεχνολογία που θα είναι καλύτερη για το έργο, αντί να κλειδώνονται σε μια ενιαία τεχνολογία, χρόνο εκτέλεσης ή πλαίσιο», δήλωσε ο Christian Posta ,  ειδικός πλατφόρμας εφαρμογών, της Red Hat.


Ποιος χρησιμοποιεί Microservices;

«Οι κύριοι καταναλωτές των μοντέλων αρχιτεκτονικής Microservices είναι προγραμματιστές και αρχιτέκτονες εφαρμογών», δήλωσε ο Topnik. Όσον αφορά τους διαχειριστές και τους μηχανικούς του DevOps, ο ρόλος τους είναι να δημιουργήσουν και να διατηρήσουν την υποδομή και τις διαδικασίες που υποστηρίζουν τις μικροεπιχειρήσεις.

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


Ποιος χρειάζεται Microservices ;

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

«Οι προγραμματιστές εφαρμογών ανέκαθεν γνωρίζουν ότι θα πρέπει να χτίζουν τις εφαρμογές τους με τρόπο αρθρωτό και ευέλικτο, αλλά τώρα που αρκετά από αυτά το κάνουν πραγματικά, εκείνα που δεν κινδυνεύουν να παραμείνουν πίσω από τους ανταγωνιστές τους», δήλωσε ο Topnik.

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

«Βλέπουμε τους πελάτες που χρησιμοποιούν αυτό ως ευκαιρία να διορθώσουν και άλλα προβλήματα γύρω από την ανάπτυξη εφαρμογών τους – όπως η end to end ασφάλεια , η καλύτερη παρακολούθηση, η ανάπτυξη και η αναβάθμιση», δήλωσε ο Maskasky.

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


Πηγή: LINUX.COM. Μεταφρασμένο το άρθρο στο ELLAK.GR

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

Σημείωση: Μόνο ένα μέλος αυτού του ιστολογίου μπορεί να αναρτήσει σχόλιο.