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

Ανάπτυξη cloud: 9 gotchas που πρέπει να γνωρίζετε προτού ξεκινήσετε

Η ανάπτυξη εφαρμογών και οι δοκιμές στο cloud κερδίζουν δημοτικότητα, καθώς περισσότερες επιχειρήσεις ξεκινούν δημόσιες και ιδιωτικές πρωτοβουλίες υπολογιστικού νέφους. Το Cloud development συνήθως περιλαμβάνει ενσωματωμένα περιβάλλοντα ανάπτυξης, στοιχεία διαχείρισης κύκλου ζωής εφαρμογών (όπως διαχείριση δοκιμών και ποιότητας, διαχείριση πηγαίου κώδικα και διαμόρφωσης, εργαλεία συνεχούς παράδοσης) και στοιχεία δοκιμών ασφάλειας εφαρμογών.

Παρόλο που στελέχη τεχνολογίας και προγραμματιστές με εμπειρία στην ανάπτυξη που βασίζεται στο cloud λένε ότι υπάρχουν σαφή οφέλη για την ανάπτυξη σε αυτά τα περιβάλλοντα - όπως εξοικονόμηση κόστους και αυξημένη ταχύτητα στην αγορά - προειδοποιούν επίσης ότι υπάρχουν προκλήσεις και εκπλήξεις που πρέπει να προσέξετε.

[Λάβετε τις παράλογες εξηγήσεις και συμβουλές που χρειάζεστε για να επωφεληθείτε πραγματικά από το cloud computing στην ειδική έκθεση 21 σελίδων Cloud Computing Deep Dive PDF των συντακτών. | Μείνετε ενημερωμένοι με το ενημερωτικό δελτίο του Cloud Computing Report. ]

Το πώς είναι πιθανό να γίνει κοινή ανάπτυξη στο cloud δεν είναι σαφές. Ωστόσο, η ανάλυση της βιομηχανίας δείχνει ότι αυξάνεται. Σε ένα ερευνητικό σημείωμα του Φεβρουαρίου 2011, ο Gartner είπε ότι οι πελάτες που παρακολούθησαν τα συμπόσια της εταιρείας το 2010 εξέφρασαν «έντονα αυξημένο ενδιαφέρον» για το cloud computing για να ενισχύσουν την ανάπτυξη και τη συντήρηση των υπαρχουσών προσαρμοσμένων εφαρμογών Web.

«Το βλέπω περισσότερο στην ανάπτυξη πρωτοτύπων και παράλληλων κλάδων, αλλά υπάρχει επίσης τεράστια ανάπτυξη στον χώρο δοκιμών φορτίου και απόδοσης», λέει ο Eric Knipp, κύριος ερευνητής της Gartner.

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

Cloud development gotcha 1: Το σύννεφο δεν λειτουργεί πάντα όπως ο "πραγματικός κόσμος"

Οι προγραμματιστές μπορεί να διαπιστώσουν ότι η διαμόρφωση που χρησιμοποιούν στην παραγωγή είναι δύσκολο να αναπαραχθεί σε υπηρεσίες cloud. Για παράδειγμα, με μια εφαρμογή που αναπτύσσετε στο cloud πριν επιστρέψετε στην τοπική εκτέλεση, ίσως χρειαστεί να δοκιμάσετε ένα σύστημα παλαιού τύπου που δεν μπορείτε απλά να αντιγράψετε σε μια υπηρεσία cloud, λέει ο Knipp: "Αυτό σημαίνει ότι μπορεί να υπάρχουν πολλά περισσότερα πράγματα που πρέπει να κάνουν οι προγραμματιστές για να ξεκινήσουν να λειτουργούν μια δοκιμαστική εφαρμογή. "

Η τεχνολογία εικονικοποίησης υπηρεσιών μπορεί να βοηθήσει, λέει ο Knipp και οι προγραμματιστές μπορούν να επωφεληθούν από προσφορές της αγοράς που επιτρέπουν την ανάπτυξη πολλαπλών / παράλληλων κλάδων. Πάρτε την περίπτωση του iTKO, το οποίο προσφέρει μια σουίτα λογισμικού που ονομάζεται Lisa που βοηθά τις εταιρείες να μεταφέρουν εταιρικές εφαρμογές στο cloud.

Οι προγραμματιστές που είναι εξοικειωμένοι με την ανάπτυξη noncloud ενδέχεται επίσης να αντιμετωπίσουν εκπλήξεις όταν πρόκειται για τη δημιουργία εφαρμογών Web στο cloud. Για παράδειγμα, ο Greg Taylor, ο οποίος δημιούργησε μια διαδικτυακή αίτηση εγγραφής για το Ohio Music Education Association, δεν περίμενε ότι θα χρειαζόταν τόσο εμπεριστατωμένη κατανόηση της δομής της βάσης δεδομένων και πώς οι χρήστες θα αλληλεπιδρούσαν μαζί της όταν δημιούργησε την εφαρμογή.

Η εφαρμογή, η οποία χειρίζεται την εγγραφή των σχολικών ερμηνευτών μουσικής σε περιεχόμενο μουσικής σε όλη τη χώρα, χρησιμοποιεί μια βάση δεδομένων MySQL ως back end και το Alpha Five 10.5 από το Alpha Software για το front end. "Προέρχομαι από το φόντο του FileMaker Pro [και] ότι το προϊόν είναι εξαιρετικά συγχωρετικό όσον αφορά τη δομή της βάσης δεδομένων", λέει ο Taylor. "Ένας κακός σχεδιασμός μπορεί ακόμα να χρησιμοποιηθεί με λογική επιτυχία."

Αλλά η ανάπτυξη με τη MySQL ανάγκασε τον Taylor να είναι εξαιρετικά οργανωμένος έτσι ώστε η εφαρμογή Web να έχει την καλύτερη δυνατή απόδοση. Η επιστροφή στη δομή του πίνακα για να προσθέσετε περισσότερα πεδία είναι χρονοβόρα, καθώς περιλαμβάνει εναλλαγή μεταξύ διαφορετικών εργαλείων ανάπτυξης, Navicat για MySQL και Alpha Five για τον πραγματικό σχεδιασμό ιστοσελίδας, λέει. Το πρώτο εργαλείο δημιουργεί τη δομή της βάσης δεδομένων, ενώ το δεύτερο δημιουργεί τις σελίδες με τις οποίες αλληλεπιδρά ο χρήστης προκειμένου να εισαγάγει και να επεξεργαστεί πληροφορίες στη βάση δεδομένων.

"Αυτό μπορεί να μην αποτελεί πρόβλημα για τους προγραμματιστές που χρησιμοποιούν μια βάση δεδομένων που έχει ήδη δημιουργηθεί", λέει ο Taylor. "Θα χρησιμοποιούσαν απλώς το Alpha Five για να αναπτύξουν τις ιστοσελίδες στις οποίες θα είχε πρόσβαση ένας χρήστης. Στην περίπτωσή μου, ταυτόχρονα ανέπτυξα τόσο τη βάση δεδομένων όσο και τις ιστοσελίδες, οι οποίες θα απαιτούσαν να κάνω εναλλαγή μεταξύ των εργαλείων ανάπτυξης εάν δεν είχα προγραμματίσει προσεκτικά."

Για να αποφευχθεί αυτό το συνεχιζόμενο γύρισμα, ο Taylor έπρεπε να αλλάξει την προσέγγιση ανάπτυξης της βάσης δεδομένων του: "Αναπτύσσοντας ένα σαφές ERD [διάγραμμα σχέσης οντότητας] με όλα τα απαραίτητα πεδία πρώτα, η εφαρμογή Ιστού μου είναι αποτελεσματική και ο συνολικός χρόνος ανάπτυξης μου μειώνεται πολύ."

Σε ορισμένες περιπτώσεις, τα εργαλεία ανάπτυξης cloud λειτουργούν σαν τον πραγματικό κόσμο - τουλάχιστον, της χθεσινής έκδοσης του πραγματικού κόσμου. Ο Jeff Hensley, ανώτερος αναλυτής του HRIS στο DaVita, μια εταιρεία υγειονομικής περίθαλψης που ειδικεύεται στην αιμοκάθαρση των νεφρών, εξέπληξε ότι οι προγραμματιστές που εργάζονταν στο cloud χρειάζονταν να χρησιμοποιούν εργαλεία γραμμής εντολών, XML και SQL, "που μου θύμισαν τις παλιές ημέρες DOS." Αναμένει ότι η προσέγγιση του παλιού σχολείου θα αλλάξει με την πάροδο του χρόνου καθώς η υιοθέτηση αυξάνεται.

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

Cloud development gotcha 2: Ορισμένες εφαρμογές δεν είναι ιδανικές για ανάπτυξη στο cloud

Για παράδειγμα, ο Dan Stueck, αντιπρόεδρος της IT for Faith Educational Ministries, αποφεύγει την ανάπτυξη εφαρμογών προηγμένης τεχνολογίας στο cloud που έχουν ακραία ασφάλεια δεδομένων ή ρυθμιστικούς περιορισμούς ή βασίζονται σε έργα κωδικοποίησης παλαιού τύπου, όπως αυτά στο Cobol. "Αυτά τα δύο πιθανότατα διατηρούνται καλύτερα στο σπίτι", λέει, "το πρώτο λόγω των προφανών ανησυχιών για την ασφάλεια και το δεύτερο λόγω του" νεκρού "γλωσσικού ζητήματος."

Όπου ο Stueck έχει χρησιμοποιήσει το cloud είναι να τρέξει έναν διακομιστή ανάπτυξης στη δημόσια υπηρεσία cloud του Amazon.com και να δημιουργήσει ένα σύστημα πληροφοριών μαθητών, ένα αρχείο μεταγραφής μαθητών και μια εφαρμογή πώλησης σχολικών βιβλίων στο cloud.

Cloud development gotcha 3: Οι προγραμματιστές συχνά αντιπαθούν την άγνωστη περιοχή cloud

"Το πράγμα που ήταν πιθανότατα πιο απροσδόκητο ήταν πόσο καλά το σύνολο του έργου [cloud development] έγινε δεκτό από τις ομάδες διαχείρισης και πωλήσεων και από όλους όσοι χρησιμοποιούν το σύστημα, [και] πόσο άσχημα έλαβε ο οργανισμός πληροφορικής και συγκεκριμένα οι προγραμματιστές, "λέει ο Mark Warren, αρχιτέκτονας στις 20/20.

Οι άνθρωποι της πληροφορικής είχαν συνηθίσει να συνεργάζονται με Microsoft .Net, SQL Server, Java και άλλες παραδοσιακές πλατφόρμες ανάπτυξης, λέει ο Warren και το Force.com ήταν ένα εντελώς διαφορετικό μοντέλο. "Αν γνωρίζετε SQL και Java, αυτή είναι η εργαλειοθήκη σας και δεν θα θέλετε να πάτε σε αυτήν την εντελώς ξένη πλατφόρμα που έρχεται", λέει ο Warren.

Ως αποτέλεσμα, η εφαρμογή πωλήσεων αναπτύχθηκε κυρίως από επιχειρηματικό προσωπικό και όχι από προγραμματιστές πληροφορικής. Αυτό έφερε το δικό του σύνολο προκλήσεων, λέει ο Warren, το μεγαλύτερο από το οποίο ήταν η έλλειψη κατανόησης μεταξύ των επιχειρηματιών σχετικά με τη διαχείριση αλλαγών και τη διακυβέρνηση πληροφορικής. «Το IT έχει ένα επίπεδο πειθαρχίας που οι επιχειρηματίες δεν έχουν συνηθίσει να τους επιβάλλουν», λέει ο Warren. "Έπρεπε να τα ανανεώσουμε για τα θέματα διαχείρισης αλλαγών."

Όσο για την αντιμετώπιση της απροθυμίας της τεχνολογίας των ανθρώπων να αναπτυχθούν σε περιβάλλον cloud, υπάρχουν προγράμματα που μπορεί να εφαρμόσει η IT για να βοηθήσει στην υιοθέτηση του cloud computing εσωτερικά, λέει ο Warren. "Η προπόνηση είναι σίγουρα μια καλή μέθοδος για τη διευκόλυνση", λέει. "Ωστόσο, εκτός εάν η κουλτούρα της πληροφορικής είναι ανοιχτή σε νέες μεθόδους και τεχνολογίες, η οργανωτική αλλαγή [η λήψη νέων προγραμματιστών] μπορεί να είναι η μόνη επιλογή."

Cloud development gotcha 4: Η έλλειψη τεκμηρίωσης εμποδίζει τους προγραμματιστές cloud

"Θα περίμενα σίγουρα ότι θα αλλάξει καθώς αυξάνεται η ζήτηση και όλο και περισσότερες εταιρείες αρχίζουν να προσαρμόζουν την έννοια του cloud", λέει ο Hensley. «Καταφέραμε να το καταπολεμήσουμε συνεργαζόμενοι με μια εταιρεία συμβούλων».

Cloud development gotcha 5: Τα προβλήματα δικτύου μπορούν να μειώσουν τα ιδιωτικά περιβάλλοντα cloud

Το Embarcadero χρησιμοποιεί το εικονικοποιημένο κέντρο δεδομένων του για δημιουργία εφαρμογών και δοκιμές. "Για εσωτερικά ιδιωτικά σύννεφα, έχουμε μερικές επιλογές: επιλογή της προγραμματισμένης ημερομηνίας / ώρας και διοργάνωση των διακομιστών που εκτελούνται με μια συγκεκριμένη σειρά", λέει ο Intersimone. "Υπάρχουν αυτοματοποιημένες διαδικασίες κατασκευής και αυτοματοποιημένων δοκιμών καπνού που εκτελούνται συνεχώς στο κύριο ιδιωτικό μας σύννεφο και επίσης στα γραφεία περιφερειακής ανάπτυξης."

Για να αποκτήσει ένα πιο διαθέσιμο περιβάλλον, η Intersimone λέει ότι ψάχνει σε ένα κοντέινερ cloud και μια προσφορά εικονικού ιδιωτικού δικτύου από το CohesiveFT που μπορεί να εγκατασταθεί σε δημόσια και ιδιωτικά σύννεφα για να παρέχει κλιμάκωση κατά παραγγελία, ανακατεύθυνση, αποκατάσταση καταστροφών και ετοιμότητα καταστροφών.

Άλλα ζητήματα που μπορούν να επηρεάσουν την ανάπτυξη και τον έλεγχο περιλαμβάνουν καθυστερήσεις και καθυστέρηση δικτύου και το μέγεθος των αγωγών δικτύου, ειδικά σε ορισμένα μέρη του κόσμου. Το Embarcadero διαθέτει κέντρα έρευνας και ανάπτυξης στην Scotts Valley, στην Καλιφόρνια, στο Monterey, στην Καλιφόρνια, στο Τορόντο, στην Αγία Πετρούπολη, στη Φλόριντα και στο Iasi της Ρουμανίας, καθώς και ένα μικρότερο αριθμό ομάδων και ατόμων σε όλο τον κόσμο.

Το γεωγραφικά διαφορετικό περιβάλλον ανάπτυξης του Embarcadero "καθιστά δυσκολότερο τον συγχρονισμό των check-in, των κατασκευών και των αυτοματοποιημένων δοκιμών", λέει ο Intersimone. Για να επιλύσουν ορισμένα από αυτά, οι προγραμματιστές κάνουν τοπικές και περιφερειακές εκδόσεις, καθώς και κατά το check-in κώδικα, στους εικονικούς διακομιστές που είναι διαθέσιμοι σε όλους. Οι προγραμματιστές κάνουν επίσης τοπικές κατασκευές στα δικά τους μηχανήματα. Το Embarcadero διασφαλίζει ότι αυτά δεν θα συγχρονιστούν με τις κύριες εκδόσεις στο ιδιωτικό cloud χρησιμοποιώντας το Subversion, ένα εργαλείο ανοιχτού κώδικα για τον έλεγχο του πηγαίου κώδικα.

"Όταν συμβαίνει μια κατασκευή, εκτελείται μια αυτοματοποιημένη δοκιμή για την επικύρωση της έκδοσης", λέει ο Intersimone. "Στη συνέχεια, οι ειδοποιήσεις πηγαίνουν σε όλες τις ομάδες ανάπτυξης και η κατασκευή τραβιέται αυτόματα πάνω από ένα κινεζικό τείχος σε μεγάλο αριθμό αυτόματων δοκιμαστικών εικονικών μηχανών στα κέντρα ανάπτυξης μας." Οι αυτοματοποιημένες και μη αυτόματες δοκιμές γίνονται στην προκύπτουσα έκδοση για την επαλήθευση της κατάστασης και τα email αποστέλλονται σε άλλα μέλη της ομάδας μετά την ολοκλήρωση αυτής της διαδικασίας. "Όλα αυτά συμβαίνουν συνεχώς κατά τη διάρκεια ζωής ενός έργου", λέει.

Cloud development gotcha 6: Είναι εύκολο να αφήσετε το μετρητή να λειτουργεί άσκοπα στο cloud

Ένα άλλο πιθανό πρόβλημα είναι η σπατάλη χρημάτων σε χρεώσεις cloud. Οι προγραμματιστές μπορούν εύκολα να ξεχάσουν ή να παραμελήσουν να απενεργοποιήσουν τις εικονικές μηχανές που δεν χρησιμοποιούν. "Έχω ακούσει από μερικούς πελάτες ότι αφήνουν τους προγραμματιστές να τρελαίνονται με πόρους εικονικής μηχανής που μερικές φορές οι προγραμματιστές θα αφήνουν τα πράγματα να λειτουργούν, λένε ένα σαββατοκύριακο", λέει ο Gartner's Knipp. "Όταν ήταν σε έναν εσωτερικό, κεφαλαιοποιημένο διακομιστή, αυτό δεν ήταν μεγάλη υπόθεση. Αλλά όταν πρόκειται για μετρημένους από τη χρήση πόρους, μισθωμένους πόρους όπως με το δημόσιο cloud computing, αυτό είναι σπατάλη χρημάτων."

Ο Knipp λέει ότι αναμένει ότι θα γίνει μια νέα πρόκληση για τις επιχειρήσεις καθώς ξεκινούν ιδιωτικές πρωτοβουλίες cloud.

Ενώ υπάρχει μικρός κίνδυνος να λάβετε ένα μεγάλο, απροσδόκητο λογαριασμό για τη χρήση εικονικής μηχανής προγραμματιστή σε ένα ιδιωτικό σύννεφο, "σε ένα αυτοεξυπηρετούμενο, ιδιωτικό περιβάλλον IaaS, ένας προγραμματιστής μπορεί να δημιουργήσει VM και να μην τις απενεργοποιήσει ποτέ", λέει ο Knipp. "Αυτά θα καταναλώσουν αποτελεσματικά πόρους από μηχανήματα που δεν χρησιμοποιούνται αποτελεσματικά και θα μπορούσαν να οδηγήσουν στον οργανισμό να αγοράσει υπερβολική χωρητικότητα καθώς ο προγραμματισμός αποκλίνει."

Cloud development gotcha 7: Οι άδειες cloud μπορούν να περιέχουν εκπληκτικούς περιορισμούς ανάπτυξης

Μεταξύ των μη τεχνικών ζητημάτων με το cloud που μπορούν να έχουν αντίκτυπο στην ανάπτυξη είναι οι περιορισμοί αδειοδότησης. Πριν από δύο χρόνια, η Kelly Services, μια εθνική εταιρεία προσωρινών υπηρεσιών, αποφάσισε να χρησιμοποιήσει την ανάπτυξη που βασίζεται στο cloud για πολλές από τις οικιακές της εφαρμογές, με την πλατφόρμα Force.com της Salesforce.com να λειτουργεί ως όχημα παράδοσης.

Η ανάπτυξη του cloud έφερε οφέλη, όπως ταχύτερο χρόνο εκτέλεσης στην ανάπτυξη εφαρμογών και χαμηλότερο κόστος, λέει ο Joe Drouin, CIO της Kelly Services. Ωστόσο, η εταιρεία αντιμετώπισε επίσης ορισμένα απροσδόκητα προβλήματα με την αδειοδότηση, ειδικά σχετικά με τους τύπους θέσεων χρήστη που είχε και τους περιορισμούς που έφερε. Για παράδειγμα, ένα κάθισμα μπορεί να έχει έναν καθορισμένο αριθμό αντικειμένων που θα μπορούσε να έχει πρόσβαση ένας χρήστης. Ως αποτέλεσμα, "σε κάποια σημεία εκπλήξαμε από αυτό που θα μπορούσαμε ή δεν θα μπορούσαμε να κάνουμε" με την ανάπτυξη, λέει ο Drouin.

Cloud development gotcha 8: Η ενοποίηση μπορεί να είναι πιο δύσκολη για την αντιμετώπιση προβλημάτων

Copyright el.verticalshadows.com 2022