Τα τελευταία χρόνια, ένα από τα πιο χαρακτηριστικά προβλήματα σε ότι αφορά την διαχείριση δεδομένων είναι η επεξεργασία του μεγάλου όγκου διαθέσιμων πληροφοριών. Ειδικότερα, λόγω της συνεχούς τεχνολογικής ανάπτυξης, στην σύγχρονη εποχή τα Μεγάλα Δεδομένα τείνουν να θεωρούνται απλώς δεδομέν Συνεπώς, το πρόβλημα διαχείρισης των Μεγάλων Δεδομένων δεν συνίσταται πλέον στην επεξεργασία αλλά, στις υφιστάμενες υποδομές διαχείρισης και αποθήκευσης.
Νέες τεχνολογίες, αλγόριθμοι και υπηρεσίες οι οποίες χρησιμοποιούν αποτελεσματικά νεφοϋπολογιστικές υποδομές όπως το Kubernetes, έχουν ταράξει τα νερά.
Η σύγχρονη εποχή χαρακτηρίζεται από πλήθος μίκρο-υπηρεσιών, νεφοϋπολογιστικών διεργασιών και εφαρμογών που αποτελούνται από παράλληλα και κατανεμημένα υπολογιστικά συστήματα. Ένα τέτοιο παράδειγμα είναι εφαρμογές που κάνουν χρήση προκαθορισμένων περιβάλλοντων ανάπτυξης (containers). Τα δεδομένα εξακολουθούν να είναι «μεγάλα» αλλά, πλέον είμαστε σε θέση να τα διαχειριστούμε αποδοτικότερα.
Η χρήση δεδομένων όπως και η χρήστη προγραμματιστικού κώδικα συνδέεται άμεσα με την ανάγκη ύπαρξης ενός σταθερού, κοινού και ενιαίου πλαισίου το οποίο θα παρέχει την δυνατότητα παράλληλης χρήσης διαφορετικών περιβαλλόντων ανάπτυξης. Αυτό το πλαίσιο, θα μπορούσε να αποτελέσει μια συνεργατική ενέργεια η οποία θα παρέχει πληροφορίες για τα εκάστοτε προγραμματιστικά περιβάλλοντα καθώς και σχετικά στοιχεία αναφορικά με τις διαφορετικές εκδόσεις λογισμικού και εφαρμογών.
Τα δεδομένα ως Κώδικας
Η χρήση δεδομένων ως κώδικα είναι μια νέα προσέγγιση η οποία δίνει τη δυνατότητα σε ομάδες – από DevOps έως DataOps, Data Scientists κτλ.- να επεξεργαστούν και να διαχειριστούν δεδομένα με έναν ενιαίο τρόπο, παρόμοια με αυτόν των δραστηριοτήτων ανάπτυξης λογισμικού. Ειδικότερα, δίνει τη δυνατότητα στους τελικούς χρήστες να έχουν τον έλεγχο των δεδομένων τους ώστε να αυτοματοποιήσουν αρκετές επαναλαμβανόμενες διαδικασίες οι οποίες μειώνουν καθημερινά την συνεργασία, την επικοινωνία άρα και την αποτελεσματικότητα μεταξύ των ομάδων.
Η επανάσταση του κλάδου των DevOps επέτρεψε τους προγραμματιστές να επικεντρωθούν σε καινοτόμους τρόπους πρόληψης και αντιμετώπισης προβλημάτων, μέσω της χρήσης μιας νέας γενιάς εργαλείων όπως: GitHub, Jenkins, CircleCI, Gerrit και Gradle. Κάθε ένα από αυτά τα εργαλεία έχει βοηθήσει αισθητά στην ραγδαία αύξηση της ποιότητας των εφαρμογών και των διαθέσιμων υπηρεσιών. Για παράδειγμα, για την ανάπτυξη μιας εφαρμογής, ο DevOps μηχανικός πλέον απαιτείται να γνωρίζει την βασική διαδικασία ανάπτυξης (deploy) μέσω αυτοματοποιημένων αγωγών και όχι να είναι σε θέση να υλοποιήσει ολόκληρη την διαδικασία. Οι μηχανικοί λοιπόν, είναι σε θέση επιλύουν γρήγορα ζητήματα που αφορούν τον χώρο αποθήκευσης, τον πάροχο νεφοϋπολογιστικής υποδομής και τις ιδιαιτερότητες ανάπτυξης της εκάστοτε εφαρμογής.
Αντίστοιχα, όταν ένας προγραμματιστής απαιτεί για μια διεργασία την χρήση δεδομένων, συχνά δεν υπάρχουν οι αντίστοιχες αυτοματοποιημένες διαδικασίες. Η σύνηθης διαδικασία είναι η δημιουργία ενός αιτήματος στην ομάδα διαχείρισης δεδομένων ή στον πάροχο νεφοϋπολογιστικής υποδομής και η αναμονή για την σχετική έγκριση.
Άρα, οι διαδικασίες διαχείρισης δεδομένων είναι σε μεγάλο βαθμό μη αυτοματοποιημένες και απαιτούν πολλές ροές εργασίας να σταματούν την συνεχή λειτουργία τους και να εισέρχονται σε έναν -ζημιοφόρο- κύκλο αναμονής.
Συνεπώς, μια νέα και αρκετά ενδιαφέρουσα προσέγγιση είναι η χρήση των Δεδομένων ως Κώδικα (Data as Code). Αναλυτικότερα, αυτή μπορεί να επιτευχθεί μέσω της δημιουργίας ενός ενιαίου πλαισίου τυποποίησης τέτοιων διαδικασιών ώστε οι εταιρείες πληροφορικής να είναι σε θέση να διαχειρίζονται αποδοτικότερα τα διαθέσιμα δεδομένα, να δημιουργούν αυτοματοποιημένους αγωγούς συνεχούς και ολοκλήρωμένης ανάπτυξης και να παρέχουν επιπρόσθετες δυνατότητες καταγραφής εκδόσεων, πακέτων, αντιγράφων (κλώνων) και συγχωνεύσεων μεταξύ διαφορετικών εφαρμογών και περιβαλλόντων ανάπτυξής.
Ευέλικτα Δεδομένα
Η διασύνδεση υπολογιστικών συστημάτων με αιτήματα εφαρμογών χρήσης δεδομένων συνήθως πραγματοποιείται μέσω πρωτοκόλλων προγραμματιστικών διεπαφών (API). Πλήθος ομάδων διαχείρισης δεδομένων (DataOps) διαχειρίζονται τους εκάστοτε αγωγούς δεδομένων μαζί με τον υπεύθυνο παροχής τους για την διεκπεραίωση του κάθε αιτήματος. Δυστυχώς, δεν έχει πραγματοποιηθεί κάποια πραγματική καινοτομία στις διεργασίες καθώς, όλες οι διαδικασίες επεξεργασίας δεδομένων απαρτίζονται από: εξαγωγή, μετασχηματισμό και φόρτωση (ETL) πληροφοριών σε κάποια υφιστάμενη δομή.
Ο τρόπος με τον οποίο προσεγγίζουμε τη διαχείριση δεδομένων ουσιαστικά αντιτίθεται στον τρόπο με τον οποίο τα χρησιμοποιούμε. Ειδικότερα, δεν απαιτούνται πλέον τεράστιες υποδομές αποθήκευσης και ένας “μικρός στρατός” διαχειριστών (δεδομένων ή αποθήκευσης). Αντ ‘αυτού, επιβάλλεται να αναπτυχθούν οι υπάρχουσες υποδομές αναφορικά με την ανάπτυξη των συνδρομητών (subscribers) και ο καθορισμός αυστηρότερων κανονισμών, λιστών ελέγχου-πρόσβασης και συνολικότερα δραστηριοτήτων. Ένα παράδειγμα χρήσης τέτοιων υποδομών είναι η εταιρεία λογισμικού Github η οποία καινοτομεί καθημερινά μέσω νέων λύσεων και προτάσεων (π.χ. ανάπτυξη των υπάρχουσων προγραμματιστικών ροών).
Εκδημοκρατισμός των Δεδομένων
Το 2002, o Jeff Bezos, ιδιοκτήτης και ιδρυτής μιας από τις μεγαλύτερες εταιρίες λογισμικού, της Amazon, έστειλε ένα ηλεκτρονικό μήνυμα στο οποίο ανέφερε ότι «κάθε ομάδα της εταιρείας επιβάλλεται να αλληλεπιδρά διαδικτυακά μέσω της χρήσης διεπαφών (API) για όλές τις διεργασίες δεδομένων». Η ανάπτυξη νέων προγραμμάτων και εργαλειών έχει προσανατολιστεί προς αυτή την κατεύθυνση καθώς, ο αναπτυσσόμενος κλάδος των DevOps έχει επιφέρει πραγματική επανάσταση στο τρόπο διαχείρισης δεδομένων.
Η χρήση των δεδομένων ως κώδικα αποτελεί μια αναπροσαρμογή στην υπάρχουσα απαρχαιωμένη προσέγγιση διαχείρισης δεδομένων. Συγκεκριμένα, εργαλεία όπως το Kubernetes αποτελούν σημαντικά βήματα στην δημιουργία ενός νέου οικοσυστήματος εφαρμοών τόσο σε επίπεδο διαχείρισης εφαρμογών όσο και δημιουργίας νεφοϋπολογιστικών υποδομών.
Περισσότερες Πληροφορίες
- Data as Code: https://thenewstack.io/the-coming-era-of-data-as-code/
- Kubernetes: https://kubernetes.io
- Amazon API Mandate: https://medium.com/slingr/what-year-did-bezos-issue-the-api-mandate-at-amazon-57f546994ca2
- What is DevOps: https://azure.microsoft.com/en-us/overview/what-is-devops/
- Jenkins: https://www.jenkins.io
- CircleCI: https://circleci.com
- Gerrit Code Review: https://www.gerritcodereview.com
- Gradle Build Tool: https://gradle.org
- The DataOps Manifesto: https://www.dataopsmanifesto.org
- GitHub: Where the world builds software · GitHub: https://github.com
- What is a Container? | App Containerization | Docker: https://www.docker.com/resources/what-container
- What is ETL (Extract, Transform, Load)? | IBM: https://www.ibm.com/cloud/learn/etl
- What is an API? – Red Hat: https://www.redhat.com/en/topics/api/what-are-application-programming-interfaces
Πηγή άρθρου: https://thenewstack.io/the-coming-era-of-data-as-code/