Ο ρυθμός των εκδόσεων λογισμικού γίνεται όλο και πιο φρενήρης. Πριν από δύο χρόνια, το 35% των επιχειρήσεων που απάντησαν σε μια έρευνα του Cloud Native Computing Foundation (CNCF) κυκλοφορούσε λογισμικό σε καθημερινή ή εβδομαδιαία βάση. Στην πιο πρόσφατη έρευνα του CNCF, ο αριθμός αυτός αυξήθηκε στο 65%. Από τους ερωτηθέντες, το ποσοστό των επιχειρήσεων που κυκλοφορούσαν λογισμικό καθημερινά αυξήθηκε από το 15% στο 27% κατά τη διάρκεια αυτής της περιόδου. Στα καταστήματα ανάπτυξης λογισμικού, είναι σημαντικό να υπάρχουν έξυπνα, εξειδικευμένα άτομα που είναι πραγματικά καλά στην ανάπτυξη λύσεων για τις επιχειρήσεις. Ωστόσο, με τις εκδόσεις λογισμικού που κυκλοφορούν σε καθημερινή, ή και ωριαία βάση, ακόμη και οι καλύτεροι σε αυτόν τον τομέα είναι δύσκολο να παραμείνουν στην κορυφή αυτής της διαδικασίας, η οποία συχνά περιλαμβάνει το “να πηγαίνεις πίσω” για να κάνεις διορθώσεις. Γι’αυτό τον λόγο, πρέπει να δημιουργηθεί μια καλά σχεδιασμένη και εξαιρετικά αυτοματοποιημένη στρατηγική συνεχούς ολοκλήρωσης / συνεχούς παράδοσης (CI / CD), σύμφωνα με τον Andrew Davis του Copado και συγγραφέα του Mastering Salesforce DevOps. Στο Dreamforce 19, ο Davis περιέγραψε τις προκλήσεις που αντιμετωπίζουν σήμερα οι επιχειρήσεις, επισημαίνοντας ότι η αποτελεσματική επιτάχυνση των κύκλων ανάπτυξης απαιτεί συντονισμό και χρήσιμα εργαλεία.

Ενώ ο Davis απευθύνεται σε ομάδες της Salesforce, οι απόψεις του αντηχούν σε όλο το ευρύτερο πεδίο του IT. Τυπικά, ανέφερε, οι αναπτύξεις λογισμικού ακολουθούν έξι φάσεις που αποτελούν το θεμέλιο του DevOps:

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

Στα τελευταία τρία βήματα, πολλές ομάδες ανάπτυξης τείνουν να “σκοντάφτουν”, σύμφωνα με τον Davis. Έτσι, ο Davis μετατρέπει το DevOps σε μια διαδικασία τριών βημάτων: ανάπτυξη, παράδοση καινοτομίας και λειτουργίες

. Επεξηγεί πως υπάρχει το αναπτυξιακό κομμάτι, όπου οι ομάδες δημιουργούν νέα πράγματα, καθώς και το κομμάτι των λειτουργιών, όπου τρέχουν πράγματα στην παραγωγή. Στη συνέχεια, υπάρχει η παράδοση καινοτομίας, που παρέχει αυτή την καινοτομία στην παραγωγή. Γι ‘αυτό, απαιτείται η αυτοματοποίηση του DevOps, για να μη χρειάζεται το “χειρωνακτικό tinkering” στην φάση μεταξύ ανάπτυξης και λειτουργίας. Επίσης, ο Davis ανέφερε τα χαρακτηριστικά μιας αποτελεσματικής στρατηγικής DevOps και CI / CD:
  • Κάθε προγραμματιστής και ομάδα σε μια εταιρεία συγκεντρώνεται σε ένα κοινό κορμό ή βάση κώδικα τουλάχιστον καθημερινά.
  • Μόλις αλλάξει η βάση κώδικα, εκτελούνται αυτοματοποιημένες δοκιμές. Εάν οι δοκιμές αποτύχουν ή τα πράγματα χαλάσουν, διορθώνονται μέσα σε δέκα λεπτά.
  • Η ικανότητα αυτοματοποίησης της δοκιμαστικής φάσης για τη διεξαγωγή ταχέων δοκιμών είναι καθοριστική για τις προσπάθειες CI / CD, επεσήμανε ο Davis. Οι προγραμματιστές χρειάζονται ταχείες δοκιμές όπου μπορούν να λάβουν feedback, ενώ εξακολουθούν να έχουν ενθουσιασμό κατά την διάρκεια της εργασίας τους. Αυτές οι δοκιμές πρέπει να γίνονται με τέτοιον τρόπο ώστε να δίνουν feedback κοντά στον πραγματικό χρόνο για τους προγραμματιστές, feedback σε λιγότερο από πέντε λεπτά. Μπορούν να ακολουθήσουν έτσι πιο ολοκληρωμένες δοκιμές μονάδων.

Ένα άλλο πρόβλημα που πρέπει να αντιμετωπιστεί είναι το λεγόμενο “configuration drift”, όπου “τα περιβάλλοντα χάνουν τον συγχρονισμό για πολλούς λόγους”, δήλωσε ο Davis. Ίσως οι ομάδες κάνουν αλλαγές στην παραγωγή που δεν βοηθούν στην εξέλιξη και τις δοκιμές. Υπάρχει επίσης το ενδεχόμενο να έχουν αλλάξει περιβάλλον ανάπτυξης, αλλά να υπάρχουν πολλά σκουπίδια στο sandbox τους από το 2006, το οποίο δεν έχει ανανεωθεί, με αποτέλεσμα να μην ταιριάζει απόλυτα με την παραγωγή.