Προγραμματισμός

Τι είναι το cloud-εγγενές; Ο σύγχρονος τρόπος ανάπτυξης λογισμικού

Ο όρος "cloud-native" απορρίπτεται πολύ, ειδικά από παρόχους cloud. Όχι μόνο αυτό, αλλά έχει και το δικό του ίδρυμα: το Cloud Native Computing Foundation (CNCF), που κυκλοφόρησε το 2015 από το Linux Foundation.

Ορίζεται ως "εγγενές σύννεφο"

Σε γενικές γραμμές, το "cloud-native" είναι μια προσέγγιση για τη δημιουργία και εκτέλεση εφαρμογών που εκμεταλλεύεται τα πλεονεκτήματα του μοντέλου παράδοσης cloud computing. Το "Cloud-native" είναι έτοιμο πωςοι εφαρμογές δημιουργούνται και αναπτύσσονται, όχι πού. Αυτό σημαίνει ότι οι εφαρμογές ζουν στο δημόσιο σύννεφο, σε αντίθεση με ένα κέντρο δεδομένων εσωτερικής εγκατάστασης.

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

«Μια εφαρμογή εγγενών cloud έχει σχεδιαστεί ειδικά για να λειτουργεί στην ελαστική και κατανεμημένη φύση που απαιτείται από τις σύγχρονες πλατφόρμες cloud computing», λέει ο Mike Kavis, διευθύνων σύμβουλος της συμβουλευτικής εταιρείας Deloitte. «Αυτές οι εφαρμογές συνδέονται χαλαρά, πράγμα που σημαίνει ότι ο κώδικας δεν είναι ενσύρματος σε κανένα από τα στοιχεία υποδομής, έτσι ώστε η εφαρμογή να μπορεί να αυξάνεται και να αυξάνεται κατά παραγγελία και να αγκαλιάζει τις έννοιες της αμετάβλητης υποδομής. Συνήθως, αυτές οι αρχιτεκτονικές κατασκευάζονται χρησιμοποιώντας μικροϋπηρεσίες, αλλά αυτό δεν είναι υποχρεωτική απαίτηση. "

Για εφαρμογές που είναι εγγενείς στο cloud, η μεγάλη διαφορά είναι πραγματικά πώς δημιουργείται, παραδίδεται και λειτουργεί η εφαρμογή, λέει ο Andi Mann, επικεφαλής υπεύθυνος τεχνολογίας στο Splunk, έναν πάροχο υπηρεσιών cloud. «Η αξιοποίηση των υπηρεσιών cloud σημαίνει τη χρήση ευέλικτων και επεκτάσιμων στοιχείων όπως κοντέινερ για την παροχή διακριτών και επαναχρησιμοποιήσιμων δυνατοτήτων που ενσωματώνονται με καλά περιγραφόμενους τρόπους, ακόμη και πέρα ​​από τα όρια της τεχνολογίας όπως το multicloud, το οποίο επιτρέπει στις ομάδες παράδοσης να επαναλαμβάνουν γρήγορα χρησιμοποιώντας επαναλαμβανόμενους αυτοματισμούς και ενορχήστρωση».

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

Εξαιτίας αυτού, θέλετε πραγματικά να έχετε ένα μοντέλο πλατφόρμας ως υπηρεσία (PaaS). Δεν απαιτείται PaaS, αλλά κάνει τα πράγματα πολύ πιο εύκολα. Η συντριπτική πλειονότητα των πελατών cloud ξεκινούν με υποδομή ως υπηρεσία (IaaS), η οποία βοηθά στην απόσπαση των εφαρμογών τους από το υποκείμενο υλικό. Ωστόσο, το PaaS προσθέτει ένα επιπλέον επίπεδο για να αφαιρέσει το υποκείμενο λειτουργικό σύστημα, ώστε να μπορείτε να εστιάσετε πλήρως στην επιχειρηματική λογική της εφαρμογής σας και να μην ανησυχείτε για την πραγματοποίηση κλήσεων OS.

Σχετικό βίντεο: Ποια είναι η προσέγγιση εγγενών σύννεφων;

Σε αυτό το βίντεο 60 δευτερολέπτων, μάθετε πώς η προσέγγιση που βασίζεται στο cloud αλλάζει τον τρόπο με τον οποίο οι επιχειρήσεις δομούν τις τεχνολογίες τους, από τον Craig McLuckie, ιδρυτή και διευθύνοντα σύμβουλο της Heptio, και έναν από τους εφευρέτες του ανοιχτού κώδικα Kubernetes.

Διαφορές μεταξύ εγγενών εφαρμογών cloud και εσωτερικών εφαρμογών

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

Γλώσσες

Οι εσωτερικές εφαρμογές που έχουν γραφτεί για εκτέλεση σε διακομιστές της εταιρείας τείνουν να γράφονται σε παραδοσιακές γλώσσες, όπως C / C ++, C # ή άλλη γλώσσα του Visual Studio, εάν αναπτύσσονται σε πλατφόρμα Windows Server και εταιρική Java. Και αν βρίσκεται σε κεντρικό πλαίσιο, είναι πιθανό στο Cobol.

Οι εφαρμογές εγγενείς στο Cloud είναι πιο πιθανό να γραφτούν σε γλώσσα που επικεντρώνεται στον ιστό, που σημαίνει HTML, CSS, Java, JavaScript, .Net, Go, Node.js, PHP, Python και Ruby.

Ενημερωσιμότητα

Οι εφαρμογές εγγενών cloud είναι πάντα ενημερωμένες και ενημερωμένες. Οι εφαρμογές εγγενών cloud είναι πάντα διαθέσιμες.

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

Ελαστικότητα

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

Μια εφαρμογή εσωτερικής εγκατάστασης δεν μπορεί να κλιμακωθεί δυναμικά.

Πολυεργασία

Μια εφαρμογή εγγενής cloud δεν έχει κανένα πρόβλημα να λειτουργεί σε εικονικό χώρο και να μοιράζεται πόρους με άλλες εφαρμογές.

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

Συνδεδεμένοι πόροι

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

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

Κάτω χρόνος

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

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

Αυτοματοποίηση

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

Οι εσωτερικές εφαρμογές πρέπει να διαχειρίζονται χειροκίνητα.

Αρθρωτή σχεδίαση

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

Ανιθαγένεια

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

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

Οι προκλήσεις του cloud-native computing

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

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

Πρέπει επίσης να απαλλαγείτε από τις παλιές μεθόδους προγραμματιστή σας. Το μοντέλο του καταρράκτη σίγουρα δεν θα το κάνει, και ακόμη και η ευέλικτη ανάπτυξη μπορεί να μην είναι αρκετή. Επομένως, πρέπει να υιοθετήσετε νέες προσεγγίσεις που βασίζονται στο cloud, όπως ανάπτυξη ελάχιστου βιώσιμου προϊόντος (MVP), δοκιμές πολλαπλών παραλλαγών, γρήγορη επανάληψη και συνεργασία στενά μεταξύ των οργανωτικών ορίων σε ένα μοντέλο devops.

Υπάρχουν πολλές πτυχές για να είστε εγγενείς στο cloud, όπως υπηρεσίες υποδομής, αυτοματισμός / ενορχήστρωση, εικονικοποίηση και εμπορευματοκιβώτιο, αρχιτεκτονική μικροϋπηρεσιών και παρατηρησιμότητα. Όλα αυτά σημαίνουν έναν νέο τρόπο να κάνουμε πράγματα, που σημαίνει να σπάσεις παλιές συνήθειες καθώς μαθαίνεις τους νέους τρόπους. Κάντε το λοιπόν με μετρημένο ρυθμό.

Μάθετε περισσότερα σχετικά με τις σχετικές τεχνολογίες εγγενών cloud

  • Εξήγησε η πλατφόρμα ως υπηρεσία (PaaS)
  • Το Multicloud εξήγησε
  • Η ευέλικτη μεθοδολογία εξήγησε
  • Βέλτιστες πρακτικές ευέλικτης ανάπτυξης
  • Ο Devops εξήγησε
  • Διαθέτει βέλτιστες πρακτικές
  • Οι μικροϋπηρεσίες εξήγησαν
  • Εκπαιδευτικό πρόγραμμα μικροσυσκευών
  • Εξήγησαν τα κοντέινερ Docker και Linux
  • Εκμάθηση Kubernetes
  • Εξήγησε το CI / CD (συνεχής ολοκλήρωση και συνεχής παράδοση)
  • Βέλτιστες πρακτικές CI / CD