Οι πιο έγκυροι ορισμοί προέρχονται επί του παρόντος κυρίως από το Pivotal και το Cloud Native Computing Foundation (CNCF).
1.1 Κεντρικό
4 βασικά σημεία: DevOps、持续交付、微服务、容器化。
Έξι χαρακτηριστικά: 模块化(Modularity) 、可观测性(Observability)、可部署性(Deployability)、 可测试性(Testability)、可处理性(Disposability)、可替换性(Replaceability)。
Το Cloud native είναι μια συλλογή ιδεών, που περιλαμβάνει τεχνολογία (μικροϋπηρεσίες, ευέλικτη υποδομή) και διαχείριση (DevOps, συνεχής παράδοση, νόμος του Conway, αναδιοργάνωση κ.λπ.).
1.2 CNCF
Η εγγενής τεχνολογία του Cloud βοηθά τους οργανισμούς να δημιουργούν και να εκτελούν ελαστικά κλιμακούμενες εφαρμογές σε νέα δυναμικά περιβάλλοντα όπως το δημόσιο cloud, το ιδιωτικό cloud και το υβριδικό cloud.
Οι αντιπροσωπευτικές τεχνολογίες του cloud native περιλαμβάνουν κοντέινερ, πλέγμα υπηρεσιών, μικροϋπηρεσίες, αμετάβλητη υποδομή και δηλωτικό API. Αυτές οι τεχνικές επιτρέπουν την κατασκευή χαλαρά συζευγμένων συστημάτων που είναι ανεκτικά σε σφάλματα, εύκολο στη διαχείριση και εύκολο στην παρατήρηση.
Σε συνδυασμό με αξιόπιστο αυτοματισμό, οι εγγενείς τεχνολογίες στο cloud διευκολύνουν τους μηχανικούς να κάνουν συχνές και προβλέψιμες σημαντικές αλλαγές στα συστήματα.
2. Τεχνικά χαρακτηριστικά
2.1 Αρχιτεκτονική μικροϋπηρεσιών:
Το Cloud native υποστηρίζει τη χρήση της αρχιτεκτονικής microservices για τη δημιουργία εφαρμογών, χωρίζοντας τις εφαρμογές σε πολλές μικρές, ανεξάρτητες και ανεξάρτητα αναπτυσσόμενες υπηρεσίες, καθεμία από τις οποίες επικεντρώνεται στην επίλυση συγκεκριμένων επιχειρηματικών λειτουργιών. Αυτό βελτιώνει την επεκτασιμότητα, την ευελιξία και τη συντηρησιμότητα της εφαρμογής.
2.2 Ανάπτυξη εμπορευματοκιβωτίων:
Οι εγγενείς εφαρμογές στο cloud συνήθως αναπτύσσονται χρησιμοποιώντας τεχνολογία κοντέινερ όπως το Docker, η οποία επιτρέπει την ανάπτυξη πολλαπλών πλατφορμών, φορητή και συνεπή, συσκευάζοντας την εφαρμογή και τις εξαρτήσεις της σε εικόνες κοντέινερ. Το Containerization παρέχει επίσης τα πλεονεκτήματα της απομόνωσης και της χρήσης πόρων, επιτρέποντας στις εφαρμογές να εκτελούνται πιο αποτελεσματικά.
2.3 Δυναμική ενορχήστρωση και αυτοματοποιημένη διαχείριση:
Η δημιουργία cloud δίνει έμφαση στη χρήση αυτοματοποιημένων εργαλείων και πλατφορμών (όπως το Kubernetes) για τη δυναμική ενορχήστρωση και διαχείριση εφαρμογών, την αυτόματη διαχείριση λειτουργιών όπως η ανάπτυξη κοντέινερ, η κλιμάκωση, οι αναβαθμίσεις και η παρακολούθηση, η βελτίωση της ευελιξίας και αξιοπιστίας των εφαρμογών και η μείωση της λειτουργικής πολυπλοκότητας .
2.4 Ελαστική απολέπιση:
Το Cloud native επιτρέπει στις εφαρμογές να κλιμακώνονται ελαστικά σύμφωνα με τις συνθήκες φόρτωσης Μέσω της αυτοματοποιημένης ενορχήστρωσης κοντέινερ και της ανακάλυψης υπηρεσιών, τα στιγμιότυπα κοντέινερ μπορούν να προστεθούν ή να αφαιρεθούν δυναμικά για να προσαρμοστούν σε διαφορετικές αλλαγές φορτίου και να βελτιώσουν την απόδοση της εφαρμογής και τη χρήση των πόρων.
2.5 Συνεχής παράδοση και ανάπτυξη:
Το cloud υποστηρίζει τη χρήση μεθόδων συνεχούς ενοποίησης και συνεχούς παράδοσης (CI/CD) για την επίτευξη ταχείας παράδοσης και ανάπτυξης εφαρμογών Μέσω αυτοματοποιημένων διαδικασιών κατασκευής, δοκιμής και ανάπτυξης, οι ενημερώσεις εφαρμογών μπορούν να προωθηθούν γρήγορα και αξιόπιστα στο περιβάλλον παραγωγής κίνδυνος και κόστος δημοσίευσης.
Τρεις στοίβες τεχνολογίας
3.1 Εμπορευματοκιβώτια
Μηχανή κοντέινερ: Το Docker, για παράδειγμα, είναι μια μηχανή κοντέινερ εφαρμογών ανοιχτού κώδικα που συσκευάζει εφαρμογές και τις εξαρτήσεις τους σε τυποποιημένες εικόνες κοντέινερ. Οι εικόνες κοντέινερ μπορούν να εκτελεστούν σε οποιοδήποτε περιβάλλον που υποστηρίζει το Docker, διασφαλίζοντας τη συνέπεια της εφαρμογής σε περιβάλλοντα ανάπτυξης, δοκιμών και παραγωγής.
Χρόνος εκτέλεσης κοντέινερ: όπως το containerd ή το runc, είναι υπεύθυνο για τη διαχείριση του κύκλου ζωής του κοντέινερ, συμπεριλαμβανομένης της δημιουργίας, έναρξης, διακοπής, διαγραφής και άλλων λειτουργιών κοντέινερ, καθώς και για την αλληλεπίδραση με τους πόρους του κεντρικού υπολογιστή.
Ενορχήστρωση κοντέινερ: Το Kubernetes (K8s), για παράδειγμα, είναι αυτή τη στιγμή η πιο δημοφιλής πλατφόρμα ενορχήστρωσης κοντέινερ Παρέχει ένα ισχυρό σύνολο API και εργαλείων για αυτοματοποιημένη ανάπτυξη κοντέινερ, προγραμματισμό, επέκταση και συστολή, εξισορρόπηση φορτίου, αναβαθμίσεις κύλισης και αυτο-ίαση. , ανακάλυψη υπηρεσίας, διαχείριση διαμόρφωσης και άλλες λειτουργίες.
3.2 Αρχιτεκτονική μικροϋπηρεσιών
Μικροϋπηρεσίες: Αποσύνθεση μιας μεγάλης μονολιθικής εφαρμογής σε ένα σύνολο μικρών, ανεξάρτητων υπηρεσιών Κάθε υπηρεσία εστιάζει σε μια μεμονωμένη επιχειρηματική λειτουργία και αλληλεπιδρά μέσω των API. Οι μικροϋπηρεσίες συνεργάζονται μεταξύ τους μέσω ελαφρών μηχανισμών επικοινωνίας (όπως RESTful API, gRPC, κ.λπ.), οι οποίοι συμβάλλουν στην αύξηση της ταχύτητας ανάπτυξης, στη μείωση της σύζευξης και στη βελτίωση της επεκτασιμότητας και της ανοχής σε σφάλματα του συστήματος.
3.3 Επικοινωνία μεταξύ υπηρεσιών
RESTful API: Με βάση το πρωτόκολλο HTTP και τις διάφορες μεθόδους του (GET, POST, PUT, DELETE, κ.λπ.), η διεπαφή έχει σχεδιαστεί σε αρχιτεκτονικό στυλ προσανατολισμένο στους πόρους και χρησιμοποιείται ευρέως στις αλληλεπιδράσεις μεταξύ μικροϋπηρεσιών.
gRPC: Ένα πλαίσιο γενικής χρήσης RPC (Remote Procedure Call) υψηλής απόδοσης που αναπτύχθηκε από την Google, με βάση το πρωτόκολλο HTTP/2 και το πρωτόκολλο σειριοποίησης Protocol Buffers, και είναι κατάλληλο για σενάρια με απαιτήσεις υψηλής απόδοσης και αποδοτικότητας.
ουρά μηνυμάτων: Όπως το RabbitMQ, το Apache Kafka, το Amazon SQS κ.λπ., ως ενδιάμεσο λογισμικό ασύγχρονης επικοινωνίας, που χρησιμοποιείται για την αποσύνδεση υπηρεσιών, τη διαχείριση φορτίων αιχμής και την εφαρμογή αρχιτεκτονικής που βασίζεται σε συμβάντα.
3.4 Πλέγμα σέρβις
Τεχνολογία πλέγματος σέρβις: Όπως το Istio, το Linkerd, το Envoy κ.λπ., βρίσκονται μεταξύ των υπηρεσιών Ως διαφανές επίπεδο υποδομής, είναι υπεύθυνοι για την επικοινωνία δικτύου, τη δρομολόγηση, την ασφάλεια, την παρατηρησιμότητα και άλλες λειτουργίες μεταξύ των υπηρεσιών. Ένα πλέγμα υπηρεσιών αφαιρεί την πολυπλοκότητα της επικοινωνίας μεταξύ των υπηρεσιών, εξαλείφοντας την ανάγκη για τους προγραμματιστές να εφαρμόσουν αυτές τις λειτουργίες στον κώδικα εφαρμογής.
3.5 Συνεχής ενοποίηση και συνεχής ανάπτυξη (CI/CD)
Εργαλεία CI/CD: Όπως το Jenkins, το GitLab CI/CD, το GitHub Actions, το Azure DevOps κ.λπ., που χρησιμοποιούνται για την αυτοματοποίηση της διαδικασίας κατασκευής, δοκιμής, συσκευασίας, έκδοσης και ανάπτυξης της ανάπτυξης λογισμικού. Οι πρακτικές CI/CD συμβάλλουν στη συντόμευση των κύκλων επανάληψης, στη βελτίωση της ποιότητας του λογισμικού και στη μείωση των σφαλμάτων που προκαλούνται από χειροκίνητη παρέμβαση.
3.6 Δηλωτική Υποδομή
Δηλωτική διαμόρφωση: Χρησιμοποιήστε αρχεία διαμόρφωσης μορφής YAML ή JSON για να περιγράψετε την στοχευόμενη κατάσταση ανάπτυξης της εφαρμογής, όπως τα μανιφέστα YAML του Kubernetes. Οι προγραμματιστές χρειάζεται μόνο να ορίσουν την επιθυμητή κατάσταση και το σύστημα θα χειριστεί αυτόματα τον τρόπο επίτευξης αυτής της κατάστασης.
Εργαλεία διαχείρισης υποδομής ως κώδικα (IaC): Όπως το Terraform, το CloudFormation κ.λπ., που χρησιμοποιούνται για τη διαχείριση υποδομής σε πλατφόρμες cloud για την επίτευξη ελέγχου εκδόσεων, αυτοματοποιημένης ανάπτυξης και διαχείρισης συνέπειας της υποδομής.
3.7 Αλυσίδα εργαλείων DevOps
Συνάθροιση αρχείων καταγραφής: Όπως το ELK Stack (Elasticsearch, Logstash, Kibana), το Splunk, το Datadog κ.λπ., που χρησιμοποιείται για τη συλλογή, ανάλυση, αποθήκευση, αναζήτηση, ανάλυση και οπτικοποίηση δεδομένων καταγραφής.
οθόνη: Όπως Prometheus, Grafana, New Relic, Dynatrace κ.λπ., παρέχουν παρακολούθηση της απόδοσης του συστήματος και της εφαρμογής.
Ανίχνευση σφάλματος: Όπως το Sentry, το Bugsnag, το Rollbar κ.λπ., που χρησιμοποιούνται για την καταγραφή, ανάλυση και διαχείριση εξαιρέσεων και σφαλμάτων κατά τη διάρκεια του χρόνου εκτέλεσης της εφαρμογής.
Μηχανική Χάους: Όπως το Chaos Monkey, το Chaos Toolkit, κ.λπ., εισάγοντας προληπτικά σφάλματα στο περιβάλλον παραγωγής για να δοκιμάσουν τις επιδόσεις του συστήματος και τις δυνατότητες ανάκτησης υπό μη κανονικές συνθήκες.
3.8 Υπολογισμός χωρίς διακομιστή (Serverless)
Υπηρεσία χωρίς διακομιστή: Όπως το AWS Lambda, το Google Cloud Functions, το Azure Functions, κ.λπ., που επιτρέπουν στους προγραμματιστές να γράφουν και να εκτελούν αποσπάσματα κώδικα (συναρτήσεις) χωρίς να ενδιαφέρονται για τη λειτουργία και τη συντήρηση του υποκείμενου διακομιστή Εκτελούνται και χρεώνονται μόνο κατά παραγγελία πυροδοτείται.
Τέσσερα σενάρια εφαρμογής
Η εγγενής τεχνολογία του cloud έχει ευρείες προοπτικές εφαρμογής σε πολλούς τομείς, συμπεριλαμβανομένων ενδεικτικά:
Χρηματοοικονομικές επιχειρήσεις: Παρέχετε ασφαλείς, αξιόπιστες και αποτελεσματικές μεθόδους ανάπτυξης και εγκατάστασης εφαρμογών για τη βελτίωση της αξιοπιστίας και της ασφάλειας των οικονομικών επιχειρηματικών εφαρμογών.
Τεχνητή νοημοσύνη και μεγάλα δεδομένα: Παρέχετε αποτελεσματικές, επεκτάσιμες και ελαστικές μεθόδους ανάπτυξης και ανάπτυξης εφαρμογών για εφαρμογές τεχνητής νοημοσύνης και μεγάλων δεδομένων.
Internet of Things: Επεξεργαστείτε τεράστια δεδομένα αισθητήρων, επιτύχετε γρήγορη ανάπτυξη και ελαστική κλιμάκωση και βελτιώστε την αξιοπιστία και τη συντηρησιμότητα των εφαρμογών Internet of Things.
Blockchain: Παρέχετε αποτελεσματικές, επεκτάσιμες και ελαστικές μεθόδους ανάπτυξης και ανάπτυξης εφαρμογών για εφαρμογές blockchain.
Αυτά είναι όλα για το cloud native, σας ευχαριστώ που διαβάσατε!