CI/CD (Continuous Integration/Deployment)

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

Τι είναι το CI/CD;

Continuous Integration σημαίνει ότι κάθε αλλαγή κώδικα ενεργοποιεί αυτοματοποιημένα builds και tests. Οι developers κάνουν merge συχνά· το σύστημα εντοπίζει τα προβλήματα ενοποίησης νωρίς αντί κατά τη στιγμή του release. Το Continuous Deployment επεκτείνει αυτό: τα builds που περνούν επιτυχώς αναπτύσσονται αυτόματα στην παραγωγή, ή στο staging για χειροκίνητη έγκριση.

Πώς λειτουργεί ένα CI/CD pipeline;

Ένα τυπικό pipeline: push σε branch, εκτέλεση linting και unit tests, build της εφαρμογής, εκτέλεση integration tests, deployment σε preview environment και προαιρετικά προαγωγή σε production. Εργαλεία όπως τα GitHub Actions, GitLab CI και CircleCI ενορχηστρώνουν αυτά τα βήματα. Το αποτέλεσμα είναι ταχύτερη ανατροφοδότηση, λιγότερα χειροκίνητα σφάλματα και η δυνατότητα να παραδίδονται μικρές αλλαγές συχνά αντί για μεγάλα ριψοκίνδυνα releases.

Πού εμφανίζεται στη δουλειά μας;

Κάθε έργο που παραδίδουμε περνά από pipeline από την πρώτη εβδομάδα: linting και tests σε κάθε push, preview deployment ανά pull request και προαγωγή σε production μόνο από πράσινο main branch. Είναι το πρώτο που στήνουμε σε ένα έργο Cloud & DevOps, γιατί χωρίς αυτό μια ομάδα δεν μπορεί να παραδίδει μικρές αλλαγές με ασφάλεια, και οι μικρές αλλαγές είναι ο τρόπος που ρυθμίζονται τα χαρακτηριστικά τεχνητής νοημοσύνης.