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

Κατανόηση του μητρώου Azure Container

Όταν φτάσετε στο τέλος ενός αγωγού κατασκευής devops, σας αφήνει ένα σύνολο αντικειμένων: δυαδικά αρχεία, αρχεία διαμόρφωσης, ιστοσελίδες, ακόμη και εικονικές μηχανές και κοντέινερ. Είναι τα στοιχεία που συνδυάζονται για την κατασκευή μιας σύγχρονης εφαρμογής. Το να τυλίξεις όσο το δυνατόν περισσότερα στοιχεία σε ένα κοντέινερ έχει πολύ νόημα, δίνοντάς σου ένα απλούστερο μοντέλο ανάπτυξης. Αλλά αυτό αφήνει ένα νέο σύνολο ερωτήσεων: Πώς διαχειρίζεστε αυτά τα κοντέινερ και πώς τα αναπτύσσετε σε μια εφαρμογή cloud παγκόσμιας κλίμακας;

Υπηρεσίες όπως το GitHub προσφέρουν ιδιωτικά και δημόσια μητρώα για τα τεχνουργήματά σας, χρησιμοποιώντας ανοιχτά πρότυπα και κώδικα ανοιχτού κώδικα. Το Azure έκανε το ίδιο, χρησιμοποιώντας το open source Docker Registry 2.0 ως βάση για το δικό του μητρώο κοντέινερ, σύμφωνα με το Open Container Initiative. Δεν προορίζεται μόνο για κοντέινερ. Με την αυξανόμενη σημασία των εφαρμογών που βασίζονται στο cloud στο Kubernetes, προορίζεται να είναι ένα αποθετήριο μίας στάσης για όλα τα χειροποίητα αντικείμενα που είναι συμβατά με το OCI. Αυτό περιλαμβάνει τώρα γραφήματα Helm, οπότε μπορείτε να χρησιμοποιήσετε το Azure’s Container Registry (ACR) ως κόμβο ανάπτυξης για τις εφαρμογές σας, χρησιμοποιώντας το Helm 3.0 για παράδοση σε παρουσίες Kubernetes.

Ξεκινώντας με το ACR

Εργαλεία όπως το Azure Container Registry θεωρούνται καλύτερα ως ιδιωτικά μητρώα. Μόνο εσείς και η ομάδα και οι υπηρεσίες σας έχετε πρόσβαση στο μητρώο σας, αυτοματοποιώντας την παράδοση σε υπηρεσίες Azure που χρησιμοποιούν κοντέινερ. Γνωστά εργαλεία όπως το Azure DevOps και το Jenkins μπορούν να ρυθμιστούν ώστε να χρησιμοποιούν το μητρώο ως τελικό σημείο κατασκευής, οπότε μπορείτε να προχωρήσετε απευθείας από τη συγχώνευση ενός αιτήματος έλξης σε ένα κοντέινερ στο Azure, έτοιμο για ανάπτυξη.

Η Microsoft προσφέρει επί του παρόντος τρεις εκδόσεις ACR: Basic, Standard και Premium, σε τρία διαφορετικά σημεία τιμών. Όλοι λειτουργούν με γάντζους Ιστού, χρησιμοποιούν το Azure Active Directory για έλεγχο ταυτότητας και έχουν τη δυνατότητα να διαγράφουν εικόνες. Το Basic έχει τη χαμηλότερη χωρητικότητα. Το Premium περιλαμβάνει υποστήριξη για αναπαραγωγή σε διάφορες περιοχές και προσθέτει υποστήριξη υπογραφής εικόνας. Πιθανότατα να χρησιμοποιήσετε το Standard, το οποίο σας παρέχει 100 GB αποθηκευτικού χώρου, εύρος ζώνης λήψης 60MBps και υποστηρίζει έως και 10 αγκίστρια Ιστού. Η τιμολόγηση είναι ανά μητρώο ανά ημέρα, με επιπλέον κόστος δικτύου και ξεχωριστή χρέωση για χρήση της CPU κατά τη δημιουργία νέων εικόνων κοντέινερ.

Η δημιουργία ενός νέου μητρώου κοντέινερ είναι σχετικά εύκολη, χρησιμοποιώντας είτε το Azure CLI είτε το Portal. Οι παρουσίες ACR συνδέονται με ομάδες πόρων, επομένως μπορείτε να έχετε ξεχωριστό μητρώο για κάθε εφαρμογή που εκτελείτε στο Azure. Μόλις δημιουργηθεί ένα μητρώο, θα σας δοθεί η διεύθυνση URL ενός διακομιστή σύνδεσης. Αυτό είναι το τελικό σημείο για την ενσωμάτωση με εργαλεία devops ή τις παρουσίες Docker στην επιφάνεια εργασίας των προγραμματιστών σας.

Αλληλεπίδραση με ένα μητρώο ACR

Το Azure CLI's ακρ Η εντολή είναι ίσως ο πιο χρήσιμος τρόπος αλληλεπίδρασης με ένα μητρώο. Συνδεθείτε και μπορείτε να αρχίσετε να σπρώχνετε εικόνες κοντέινερ σε αυτό. Είναι καλή ιδέα να ξεκινήσετε από την επιφάνεια εργασίας για να αποκτήσετε μια αίσθηση για το πώς λειτουργεί, προσθέτοντας ετικέτα σε μια τοπική εικόνα Docker με το όνομα διακομιστή σύνδεσης ACR και, στη συνέχεια, χρησιμοποιώντας το ώθηση του λιμενεργάτη εντολή για αποστολή της εικόνας στο μητρώο ACR, δημιουργώντας αυτόματα το κατάλληλο αποθετήριο στο Azure. Μόλις μια εικόνα βρίσκεται σε ένα αποθετήριο ACR, χρησιμοποιήστε τα εργαλεία της γραμμής εντολών για να καταχωρίσετε αρχεία, να τα αφαιρέσετε και ακόμη και να χρησιμοποιήσετε τις εντολές Docker για να τα εκτελέσετε.

Η αυτοματοποίηση ACR μπορεί να μειώσει σημαντικά το φόρτο εργασίας σας, χρησιμοποιώντας ACR Tasks. Οι εργασίες ομαδοποιούν αυτό που θα ήταν ένα σύνολο σεναρίων Azure CLI σε απλές ροές εργασίας που διαχειρίζονται κοινές λειτουργίες. Για παράδειγμα, προσφέρουν μια σειρά ενεργοποιήσεων που αυτοματοποιούν τη δημιουργία νέων εικόνων όταν συμβαίνουν αλλαγές στον αγωγό κατασκευής ή στο σύστημα συνεχούς ολοκλήρωσης / συνεχούς παράδοσης (CI / CD).

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

Συγκεντρώστε τα και έχετε ένα βασικό σύνολο εργαλείων για τη δοκιμή εικόνων κοντέινερ. Οι πιο σύνθετες αναπτύξεις θα απαιτούν πιο πολύπλοκα σενάρια - για παράδειγμα ανάπτυξη ενός κοντέινερ σε μια διαχειριζόμενη παρουσία Kubernetes χρησιμοποιώντας AKS. Εναλλακτικά, μπορείτε να αυτοματοποιήσετε ολόκληρη τη διαδικασία, δημιουργώντας μια εργασία που παρακολουθεί ένα repo GitHub για αλλαγές σε έναν κλάδο ανάπτυξης, δημιουργώντας μια νέα εικόνα όταν συγχωνεύετε ένα αίτημα έλξης στον κλάδο ή κάνετε μια δέσμευση.

Ασφάλιση δοχείων σε ACR

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

Πρώτον, παρέχει υπογεγραμμένες εικόνες κοντέινερ, έτσι ώστε το σύμπλεγμα Kubernetes να μπορεί να επαληθεύσει ότι ο κώδικας που εκτελεί είναι ο κώδικας που προωθήσατε στο μητρώο σας από το σύστημα κατασκευής σας. Οι υπογεγραμμένες εικόνες διασφαλίζουν ότι κανείς δεν έχει παραβιάσει τα περιεχόμενα ενός κοντέινερ κατά την ανάπτυξη. Δεύτερον, το ACR μπορεί να ενσωματωθεί στο Azure’s Security Center. Αυτό σας επιτρέπει να σαρώσετε εικόνες καθώς είναι αποθηκευμένες στο μητρώο, ελέγχοντας όχι μόνο τις ευπάθειες στον κώδικα και στη βασική εικόνα, αλλά και σε τυχόν εξαρτήσεις που περιλαμβάνονται ή αναφέρονται από το αρχείο εικόνας. Χρησιμοποιώντας το σαρωτή της Qualys, οι αναφορές του Κέντρου ασφαλείας θα σας βοηθήσουν να εντοπίσετε τρωτά σημεία με προτάσεις για διορθώσεις.

Τα πράγματα γίνονται ενδιαφέροντα όταν αρχίζετε να χρησιμοποιείτε τις παρουσίες ACR για περισσότερα από κοντέινερ. Το OCI έχει αρχίσει να ανοίγει το πρότυπο μητρώου σε αντικείμενα, με το Helm, το de facto εργαλείο για την ανάπτυξη εφαρμογών Kubernetes, χρησιμοποιώντας το στην τελευταία έκδοση. Ο κλάδος έχει δει τον πολλαπλασιασμό των μητρώων και των αποθετηρίων και είναι λογικό να τυποποιείτε σε ένα για όλα τα στοιχεία της εφαρμογής σας, ειδικά όταν αποτελούν μέρος της ίδιας εφαρμογής που βασίζεται στο cloud.

Το ACR υποστηρίζει τώρα το OCI Registry As Storage (ORAS). Χρησιμοποιώντας ένα εργαλείο ORAS μπορείτε να πιέσετε και να τραβήξετε όλα τα αντικείμενα σας από το ίδιο αποθετήριο ACR. Εγκαταστήστε το ORAS στα μηχανήματα προγραμματιστή σας ή προσθέστε υποστήριξη στον αγωγό κατασκευής. Μόλις συνδεθείτε στο μητρώο σας με έναν κύριο διακομιστή υπηρεσίας Azure Active Directory που έχει δικαιώματα push, χρησιμοποιήστε το εργαλείο γραμμής εντολών ORAS για να προωθήσετε νέα αντικείμενα στο μητρώο.

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

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