Πώς να χρησιμοποιήσετε το HashiCorp Waypoint για να συνεργαστείτε με το GitLab CI/CD

Πώς να χρησιμοποιήσετε το HashiCorp Waypoint για να συνεργαστείτε με το GitLab CI/CD

Η HashiCorp παρουσίασε ένα νέο έργο Waypoint επί HashiCorp Digital. Χρησιμοποιεί ένα αρχείο που βασίζεται σε HCL για να περιγράψει τη δημιουργία, την αποστολή και την κυκλοφορία εφαρμογών για διάφορες πλατφόρμες cloud, από Kubernetes έως AWS και Google Cloud Run. Σκεφτείτε το Waypoint όπως το Terraform και το Vagrant μαζί για να περιγράψουν τη διαδικασία κατασκευής, αποστολής και έκδοσης των εφαρμογών σας.

Πραγματικά, η HashiCorp κυκλοφόρησε το Waypoint ως ανοιχτού κώδικα και συνοδεύεται από πολλά παραδείγματα. Το επίπεδο του ενορχηστρωτή εξαρτάται από εσάς, το Waypoint έρχεται ως εκτελέσιμο που μπορείτε να εκτελέσετε απευθείας στον φορητό υπολογιστή σας ή από το εργαλείο ενορχήστρωσης CI/CD της επιλογής σας. Ο στόχος ανάπτυξης της εφαρμογής εξαρτάται επίσης από εσάς, καθώς το Waypoint υποστηρίζει τα Kubernetes, Docker, Google Cloud Run, AWS ECS και άλλα.

Αφού διάβασα το φοβερό τεκμηρίωση και το πιο σικάτο παραδείγματα Εφαρμογές που παρέχονται από τη HashiCorp, αποφασίσαμε να ρίξουμε μια πιο προσεκτική ματιά στην ενορχήστρωση Waypoint με το GitLab CI/CD. Για να το κάνουμε αυτό, θα πάρουμε μια απλή εφαρμογή Node.js που εκτελείται σε AWS ECS από το αποθετήριο δειγμάτων.

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

Πώς να χρησιμοποιήσετε το HashiCorp Waypoint για να συνεργαστείτε με το GitLab CI/CD

Όπως ίσως έχετε παρατηρήσει, δεν υπάρχει Dockerfile σε αυτό το έργο. Δεν προστίθενται στο παράδειγμα επειδή δεν τα χρειαζόμαστε πραγματικά, επειδή η Waypoint θα τα φροντίσει για εμάς. Ας ρίξουμε μια πιο προσεκτική ματιά στο αρχείο waypoint.hclγια να καταλάβεις τι θα κάνει:

project = "example-nodejs"

app "example-nodejs" {
  labels = {
    "service" = "example-nodejs",
    "env" = "dev"
  }

  build {
    use "pack" {}
    registry {
    use "aws-ecr" {
        region = "us-east-1"
        repository = "waypoint-gitlab"
        tag = "latest"
    }
    }
  }

  deploy {
    use "aws-ecs" {
    region = "us-east-1"
    memory = "512"
    }
  }
}

Κατά τη φάση κατασκευής, το Waypoint χρησιμοποιεί Cloud Native Buildpacks (CNB) για να προσδιορίσετε τη γλώσσα προγραμματισμού του έργου και να δημιουργήσετε μια εικόνα Docker χωρίς τη χρήση αρχείου Docker. Κατ 'αρχήν, αυτή είναι η ίδια τεχνολογία που χρησιμοποιείται από το GitLab εν μέρει Auto DevOps στο βήμα Auto Build. Είναι υπέροχο να βλέπουμε ότι το CNB του CNCF κερδίζει ολοένα και μεγαλύτερη υιοθέτηση μεταξύ των χρηστών του κλάδου.

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

Από το laptop μου είναι εύκολο. Έβαλα το Waypoint το οποίο είναι ήδη πιστοποιημένο στον λογαριασμό μου στο AWS και "απλώς λειτουργεί". Τι θα συμβεί όμως αν θέλω να προχωρήσω πέρα ​​από τον φορητό υπολογιστή μου; Ή μήπως θέλω να αυτοματοποιήσω αυτήν την ανάπτυξη ως μέρος της συνολικής διοχέτευσης CI/CD όπου εκτελούνται οι τρέχουσες δοκιμές ενοποίησης, οι δοκιμές ασφαλείας και άλλα; Αυτό είναι το μέρος της ιστορίας όπου έρχεται το GitLab CI/CD!

Σημείωση Εάν απλώς σχεδιάζετε να εφαρμόσετε CI / CD ή θέλετε να αρχίσετε να εφαρμόζετε τις βέλτιστες πρακτικές για την κατασκευή αγωγών, δώστε προσοχή στο νέο μάθημα Slurm. "CI/CD στο παράδειγμα του Gitlab CI". Είναι πλέον διαθέσιμο για τιμή προπαραγγελίας.

Σημείο διαδρομής στο GitLab CI/CD

Για να ενορχηστρώσουμε όλα αυτά στο GitLab CI/CD, ας δούμε τι χρειαζόμαστε στο αρχείο μας .gitlab-ci.yml:

  • Πρώτα απ 'όλα, χρειάζεστε μια εικόνα βάσης για να εκτελεστεί μέσα σε αυτήν. Το Waypoint εκτελείται σε οποιαδήποτε διανομή Linux, χρειάζεται μόνο Docker, ώστε να μπορούμε να τρέξουμε με μια γενική εικόνα Docker.
  • Στη συνέχεια, πρέπει να εγκαταστήσετε το Waypoint σε αυτήν την εικόνα. Στο μέλλον μπορεί να συλλέξουμε μετα-κατασκευή εικόνας και βάλτε σε κοντέινερ αυτή τη διαδικασία για τον εαυτό σας.
  • Τέλος θα εκτελέσουμε τις εντολές Waypoint

Πάνω είναι όλα όσα θα χρειαστεί η διοχέτευσή μας για να τρέξει τα σενάρια που απαιτούνται για την εκτέλεση της ανάπτυξης, αλλά για να αναπτυχθεί στο AWS, χρειαζόμαστε ένα ακόμη πράγμα: πρέπει να συνδεθούμε στον λογαριασμό μας AWS. Στην περιγραφή σημείου διαδρομής έχουν σχέδια σχετικά με τον έλεγχο ταυτότητας και την εξουσιοδότηση. Η HashiCorp κυκλοφόρησε επίσης ένα εντυπωσιακό έργο αυτή την εβδομάδα Σύνορο. Αλλά προς το παρόν, μπορούμε απλώς να αναλάβουμε και να χειριστούμε μόνοι μας τον έλεγχο ταυτότητας και την εξουσιοδότηση.

Υπάρχουν πολλές επιλογές για έλεγχο ταυτότητας GitLab CICD στο AWS. Η πρώτη επιλογή είναι να χρησιμοποιήσετε το ενσωματωμένο HashiCorp Vault. Είναι εντάξει αν η ομάδα σας χρησιμοποιεί ήδη το Vault για διαχείριση διαπιστευτηρίων. Μια άλλη μέθοδος που λειτουργεί εάν η ομάδα σας διαχειρίζεται την εξουσιοδότηση χρησιμοποιώντας το AWS IAM είναι να ελέγξετε ότι οι εργασίες παράδοσης ενεργοποιούνται μέσω GitLab RunnerA που είναι εξουσιοδοτημένο να ξεκινήσει την ανάπτυξη μέσω IAM. Αλλά αν θέλετε απλώς να εξοικειωθείτε με το Waypoint και θέλετε να το κάνετε γρήγορα, η τελευταία επιλογή είναι να προσθέσετε το AWS API και τα μυστικά κλειδιά σας στο Μεταβλητές περιβάλλοντος GitLab CI/CD AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Βάζοντας όλα μαζί

Μόλις καταλάβουμε τον έλεγχο ταυτότητας, μπορούμε να ξεκινήσουμε! Ο τελικός μας .gitlab-ci.yml μοιάζει με αυτό:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Define environment variables, e.g. `WAYPOINT_VERSION: '0.1.1'`
  variables:
    WAYPOINT_VERSION: ''
    WAYPOINT_SERVER_ADDR: ''
    WAYPOINT_SERVER_TOKEN: ''
    WAYPOINT_SERVER_TLS: '1'
    WAYPOINT_SERVER_TLS_SKIP_VERIFY: '1'
  script:
    - wget -q -O /tmp/waypoint.zip https://releases.hashicorp.com/waypoint/${WAYPOINT_VERSION}/waypoint_${WAYPOINT_VERSION}_linux_amd64.zip
    - unzip -d /usr/local/bin /tmp/waypoint.zip
    - rm -rf /tmp/waypoint*
    - waypoint init
    - waypoint build
    - waypoint deploy
    - waypoint release

Βλέπετε ξεκινάμε με μια εικόνα docker:latest και ορίστε μερικές μεταβλητές περιβάλλοντος που απαιτούνται από το Waypoint. Στο κεφάλαιο script κατεβάζουμε το πιο πρόσφατο εκτελέσιμο αρχείο Waypoint και το βάζουμε /usr/local/bin. Εφόσον ο δρομέας μας είναι ήδη εξουσιοδοτημένος στο AWS, τότε απλά τρέχουμε waypoint init, build, deploy и release.

Η έξοδος της εργασίας κατασκευής θα μας δείξει το τελικό σημείο όπου βάλαμε την εφαρμογή:

Πώς να χρησιμοποιήσετε το HashiCorp Waypoint για να συνεργαστείτε με το GitLab CI/CD

Σημείο διαδρομής ένα από πολυάριθμες λύσεις HashiCorp, τα οποία λειτουργούν εξαιρετικά με το GitLab. Για παράδειγμα, εκτός από την παράδοση της εφαρμογής, μπορούμε να ενορχηστρώσουμε την υποκείμενη υποδομή με Terraform στο GitLab. Για να τυποποιήσουμε την ασφάλεια SDLC, μπορούμε επίσης να εφαρμόσουμε GitLab με Vault για τη διαχείριση μυστικών και διακριτικών σε αγωγούς CI/CD, παρέχοντας μια ολοκληρωμένη λύση για προγραμματιστές και διαχειριστές που βασίζονται στη διαχείριση μυστικών για ανάπτυξη, δοκιμή και χρήση παραγωγής.

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

Μπορείτε να κατανοήσετε τις αρχές του CI / CD, να καταλάβετε όλες τις λεπτότητες της εργασίας με το Gitlab CI και να αρχίσετε να εφαρμόζετε βέλτιστες πρακτικές ολοκληρώνοντας το μάθημα βίντεο "CI/CD στο παράδειγμα του Gitlab CI". Πάρε μέρος τώρα!

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο