Οι PaaS υπηρεσίες δίνουν την δυνατότητα της γρήγορης και οικονομικής δημιουργίας νέων εφαρμογών μέσα από ένα ευρύ πεδίο εφαρμογών και με τα απαιτούμενα επίπεδα ασφάλειας

Η εξέλιξη στις cloud υπηρεσίες είναι πλέον συνηθισμένο φαινόμενο και ο ρυθμός που ακολουθείται είναι πραγματικά μοναδικός. Σε επίπεδο ΙΤ εφαρμογής όλο και περισσότεροι διαχειριστές υιοθετούν τις υπηρεσίες SaaS (Software as a Service) και IaaS (Infrastructure as a Service), ενώ με δειλά βήματα και αρκετό σκεπτικισμό κατευθύνονται προς τις υπηρεσίες PaaS (Platform as a Service).

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

Το PaaS έρχεται για να διευκολύνει τις επιχειρήσεις ακόμα περισσότερο αλλάζοντας τα δεδομένα. Επιλέγεται συνήθως από προγραμματιστές οι οποίοι μπορούν να επιλέξουν από μία πληθώρα προγραμματιστικών πλατφορμών, ώστε να αναπτύξουν νέες εφαρμογές. Η ενσωμάτωση αυτών των εφαρμογών, στην γραμμή παραγωγής μιας επιχείρησης, γίνεται τάχιστα μέσω PaaS, το οποίο προσφέρει αυτόματη αναβάθμιση (scaling) ώστε να μπορεί να διαχειριστεί όλο τον όγκο των αιτημάτων εξυπηρέτησης και δυνατότητες εφεδρείας (failover) σε περίπτωση αστοχίας, ώστε η εφαρμογή να λειτουργεί αδιάλειπτα. Όλα τα προαναφερόμενα υποστηρίζονται από ένα ολοκληρωμένο λειτουργικό σύστημα και μία εύστοχη αναπτυξιακή πλατφόρμα, τα οποία καθιστούν τον «προγραμματισμό» απλούστερο και ο χρήστης δεν απαιτείται να είναι άριστος γνώστης της γλώσσας που χρησιμοποιεί. Εν τέλει καθένας μπορεί να αναπτύξει μία εφαρμογή που θα βοηθούσε στην βελτίωση και ανανέωση των καθημερινών διεργασιών της επιχείρησής του και σε σύντομο χρονικό διάστημα να την ενσωματώσει στην παραγωγή, αυξάνοντας έτσι την παραγωγικότητά και δημιουργώντας νέες προοπτικές εξέλιξης.

 PaaS επιλογές

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

Μια ολοκληρωμένη PaaS υπηρεσία περιλαμβάνει ένα περιβάλλον επεξεργασίας με server, επίπεδα προσωρινής μνήμης, εργαλεία ανάπτυξης κώδικα και χαρακτηριστικά αυτόματης αναβάθμισης και εφεδρείας. Τα προαναφερόμενα μπορούν να λειτουργήσουν έχοντας ως βάση μια IaaS δομή ή μπορούν να παραδοθούν στον πελάτη και να λειτουργήσουν εντός της εταιρικής δομής. Επί της ουσίας η διαφορά μεταξύ PaaS και ψευδο- PaaS είναι ότι η δεύτερη αν και επιτρέπει την προγραμματιστική υπεροχή και την δυνατότητα ενσωμάτωσης, δεν διαθέτει ικανότητες αυτόματης αναβάθμισης και εφεδρείας. Έτσι, κατά την εταιρική υιοθέτηση της εφαρμογής που μόλις αναπτύχθηκε, υπάρχει ο κίνδυνος να φτάσει στο σημείο εκείνο που δεν μπορεί να υποστηρίξει τον φόρτο αιτημάτων εξυπηρέτησης ή το σύστημα που την υποστηρίζει να αστοχήσει και να πάψει να εξυπηρετεί μιας και δεν υπάρχει πρόβλεψη για εφεδρικό σύστημα λειτουργίας.

Πραγματικές PaaS υπηρεσίες θεωρείται ότι προσφέρονται από τα Microsoft Azure, Engine Yard, Heroku, CloudBees και Google App Engine, Staten said. Διατίθεται και το Amazon Web Services’ (AWS) Elastic BeanStalk που ουσιαστικά ενσωματώνει μία εφαρμογή σε μια IaaS δομή και προσθέτει υπηρεσίες αναβάθμισης και εφεδρείας. Καθεμία από τις πλατφόρμες στηρίχθηκε αρχικά σε μία γλώσσα προγραμματισμού και αν πλέον υποστηρίζει ποικίλες καλό είναι να γνωρίζουμε ποιο είναι το δυνατό χαρτί κάθε PaaS. Έτσι έχουμε για AppFog – PHP, CloudBees – Java, Cloud Foundry – Ruby on Rails, Engine Yard – Ruby on Rails, PHP,Google App Engine – Python, Heroku – Ruby on Rails και Microsoft Windows Azure – .NET

Στις μέρες μας υπάρχουν δύο κυρίαρχα μοντέλα PaaS που χρησιμοποιούνται ευρέως:

1. Το PaaS μοντελοποίησης το οποίο αφορά γλώσσες προγραμματισμού υψηλού επιπέδου ή λογισμικό δημιουργίας πρότυπων προγραμμάτων και βοηθά χρήστες με μικρή προγραμματιστική εμπειρία να δημιουργήσουν τις δικές τους εταιρικές εφαρμογές.

2. Το PaaS ανάπτυξης που είναι νεότερο. Το δεύτερο αφορά την φιλοξενία εφαρμογών στο cloud, που προηγουμένως είχαν δημιουργηθεί από μία τυπική γλώσσα προγραμματισμού όπως είναι η java ή η PHP. Έτσι, αν και η αμιγώς προγραμματιστική εργασία έχει τελεστεί εκτός  cloud η τελική ενσωμάτωση της εφαρμογής γίνεται με την βοήθεια του PaaS ώστε να διευκολυνθούν διεργασίες όπως είναι η διαχείριση, η δόμηση και η αναβάθμιση των virtual machines που θα υποστηρίζουν την εφαρμογή.

Γιατί PaaS

Οι οργανισμοί που χρησιμοποίησαν τις PaaS υπηρεσίες τις επέλεξαν γιατί παρήγαγαν νέες εφαρμογές με σημαντικά λιγότερο κόστος, σε λιγότερο χρόνο και με μικρότερες απαιτήσεις προσωπικού. Όλα αυτά δεν θα ήταν δυνατά αν η εφαρμογή έπρεπε να παραχθεί εντός του οργανισμού, στο ήδη υπάρχον υλικό ή ακόμα και σε μία IaaS δομή. Ουσιαστικά, παρέχεται η απαιτούμενη ευελιξία ώστε αρχικές ιδέες να μετατρέπονται εύκολα και γρήγορα σε εφαρμογές, να αφαιρούνται εξίσου εύκολα τα τμήματα εκείνα που αποδεικνύονται στην χρήση περιττά και να ενσωματώνεται με την ίδια ευκολία στην παραγωγή. Έτσι, κάθε οργανισμός αντί να επενδύει σε φυσικές δομές που θα υποστήριζαν την δημιουργία και λειτουργία οποιασδήποτε εφαρμογής και του προσωπικού που θα απαιτούσε για να το διαχειριστεί προσανατολίζονται στην πρόσληψη προγραμματιστών και στην διατήρηση της σύγχρονης και ευέλικτης εικόνας της επιχείρησής τους.

Τυπικά, το PaaS επιλέγεται από εταιρείες που θέλουν να παράγουν Web ή mobile εφαρμογές γρήγορα ώστε να παραμείνουν ανταγωνιστικές σε μία αγορά που διαρκώς αλλάζει και γίνεται ολοένα και πιο απαιτητική. Τέτοιες εφαρμογές μέχρι σήμερα απαιτούσαν εκ των προτέρων λεπτομερή σχεδιασμό, ειδικά στο κομμάτι που αφορά τον όγκο της εξυπηρέτησης των πελατών και της αδιάλειπτης λειτουργίας. Με το PaaS η απλοποίηση που εισάγεται ανοίγει καινούργιους δρόμους ακόμα και για νέους επιχειρηματίες που θέλουν να εισάγουν τις ιδέες τους στην αγορά και δεν έχουν ούτε τα κεφάλαια αλλά ούτε και την γνώση να στήσουν μία εφαρμογή από το μηδέν.

Οι ισχυρισμοί των cloud PaaS παρόχων είναι ότι το 80-95% των εφαρμογών που κατασκευάζονται από μία επιχείρηση θα λειτουργούν καλύτερα αν τοποθετηθούν σε μία PaaS υπηρεσία. Κι αυτό γιατί η πλατφόρμα που τις υποστηρίζει έχει κατασκευαστεί για να εφαρμόζει τις καλύτερες πρακτικές συνεργασίας λογισμικού και υλικού και άρα ότι λειτουργεί πάνω σε αυτή την πλατφόρμα θα έχει αυτού του είδους το πλεονέκτημα. Η προσπάθεια κάτι τέτοιο να επιτευχθεί εντός των εταιρικών δομών από το μηδέν είναι επίπονη, πολύπλοκη και απαιτεί αρκετό χρόνο δοκιμών.

Σε επίπεδο ΙΤ λειτουργίας, το πλεονέκτημα μιας PaaS πλατφόρμας είναι ότι όλοι εργάζονται στο ίδιο περιβάλλον ανάπτυξης, το οποίο υποστηρίζει ταυτόχρονα τις δοκιμές, την τελική έκδοση της εφαρμογής και την ενσωμάτωση στην παραγωγή. Με τις παλαιότερες πρακτικές σε άλλο περιβάλλον γινόταν η ανάπτυξη μιας εφαρμογής, με άλλο εργαλείο υπόκεινται σε δοκιμές και σε άλλο σύστημα γινόταν η ενσωμάτωση και η τελική εισαγωγή στην παραγωγή. Όλες αυτές οι «μετακινήσεις» δημιουργούσαν μια πληθώρα μικρών ή μεγάλων προβλημάτων.

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

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

 

Περιορισμοί

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

Ένα από τα πρώτα σημεία που πρέπει να αναγνωριστεί είναι τα επίπεδα αυτοματισμού της πλατφόρμας. Εν γένει στις PaaS πλατφόρμες υποστηρίζεται σε μεγάλο βαθμό κάποια στοιχεία να αυτοτροφοδοτούνται ανάλογα με τις απαιτήσεις της εφαρμογής που λειτουργούν, αλλά το ποια είναι αυτά τα  στοιχεία και έως ποιο σημείο επιτρέπεται αυτή η αυτονομία οφείλεται να εξεταστεί. Η παραμετροποίηση είναι ένα άλλο θέμα συζήτησης και ο καθορισμός της ευελιξίας που προσφέρει η πλατφόρμα. Για παράδειγμα αν επιθυμείται η χρήση της Postgre SQL αντί της Microsoft SQL, πώς μπορεί αυτό να επιτευχθεί; Ίσως αυτόματα ή κατόπιν αιτήματος, το οποίο να συνεπάγεται περισσότερο φόρτο εργασίας από το ΙΤ τμήμα της επιχείρησης, για καλύτερη διαχείριση του PaaS.

Αν στα χαρακτηριστικά των εφαρμογών που χρησιμοποιούνται από μία επιχείρηση υπάρχουν πολλά όμοια στοιχεία, ειδικά στον τρόπο που ρυθμίζονται οι servers, οι βάσεις δεδομένων και τα αποθηκευτικά μέσα, θα ήταν συνετό να επιλεγεί μια PaaS πλατφόρμα που να επιτρέπει την δημιουργία προτύπων. Έτσι, όλες αυτές οι ρυθμίσεις θα τελούνταν μια φορά, θα αποθηκεύονταν ως μοντέλο βάσης και από εκεί το ΙΤ τμήμα θα μπορούσε να αναπτύξει πληθώρα εφαρμογών. Επίσης, πρέπει να γίνει κατανοητό, ότι μία νέα πλατφόρμα που υποστηρίζει τόσες δυνατότητες, αποτελεί μία πρόκληση ακόμα και για τους πιο έμπειρους. Ο τρόπος που αντιμετωπίζονται οι απορίες και τα προβλήματα των χρηστών της πλατφόρμα ποικίλλει και είναι καθοριστικός για την ταχύτητα εξοικείωσης και ανάπτυξης μέσω της υπηρεσίας. Κάποιες πλατφόρμες καθοδηγούν αυτοματοποιημένα τους χρήστες σε διαδικασίες βοήθειας, ενώ άλλες απαντούν σε γραπτά ερωτήματα μέσα σε ένα εύλογο λογικό διάστημα. Φυσικά υπάρχουν πάροχοι που έχουν μισθώσει προσωπικό που υποστηρίζει σε πραγματικό χρόνο τους χρήστες τους, αν και ως υπηρεσία είναι πιο δαπανηρή.

Σχετικά με τον σκεπτικισμό που αφορά την μετοίκηση των εταιρικών εφαρμογών σε ένα cloud περιβάλλον προσφέρεται λύση που ονομάζεται ιδιωτικό PaaS. Σε αυτή την περίπτωση η PaaS πλατφόρμα μεταφέρεται στον εταιρικό φυσικό χώρο και προστατεύεται σύμφωνα με τους κανόνες της επιχείρησης. Έτσι, αν και προσφέρεται μία ενιαία και πλήρως λειτουργική πλατφόρμα για ανάπτυξη στο ΙΤ τμήμα, απομακρύνεται ο κίνδυνος της έκθεσης των εταιρικών λειτουργιών και δεδομένων. Μεταξύ του «δημοσίου» και του ιδιωτικού PaaS που ίσως αποτελούν τα δύο άκρα, φαίνεται ότι η τελική επιλογή είθισται είναι κάτι ενδιάμεσο. Δηλαδή, υποστηρίζεται η υιοθέτηση του ιδιωτικού PaaS με στόχο όχι μόνο την εύκολη ανάπτυξη αλά και την ευκολότερη συνεργασία με άλλες μισθωμένες cloud δομές, ώστε να εισπράττονται τα οφέλη και από τα δύο μέρη.

Τέλος,  εφόσον πρόκειται για μισθωμένη υπηρεσία, που όμως αφορά κάτι τόσο ζωτικό για την κάθε επιχείρηση πρέπει να διασφαλίζεται η φορητότητα των εφαρμογών. Αφορά την φορητότητα τόσο μεταξύ διαφορετικών cloud παρόχων όσο και μεταξύ ιδιωτικού και δημόσιου PaaS, ανάλογα κάθε φορά με το εταιρικό όφελος. Υπό οποιεσδήποτε συνθήκες κανένας οργανισμός δεν θα επιθυμούσε να «εγκλωβίσει» τις καθημερινές διεργασίες του ισόβια σε έναν πάροχο.

 

 Ασφάλεια και PaaS

Το θέμα της ασφάλειας δεν είναι μονοδιάστατο και για να ληφθούν αποφάσεις επ’ αυτού πρέπει να προηγηθεί μία εκτίμηση του πιθανού κινδύνου σχετικά με τα δεδομένα και τους  πόρους που θα χρησιμοποιηθούν. Για να καθοριστεί το ποσοστό κινδύνου που θέτει η PaaS εφαρμογή την επιχείρηση υπάρχουν κάποιοι τομείς που πρέπει να μελετηθούν τόσο εκτενώς όσο απαιτείται για την εταιρική διασφάλιση.

Το πρώτο ερώτημα που πρέπει να τεθεί είναι σε ποιον ανήκουν τα δεδομένα και ο κώδικας της εφαρμογής. Αν και η απάντηση φαντάζει προφανής, το συμφωνητικό που έχει υπογραφεί με τον PaaS πάροχο είναι σαφέστερο. Σε αυτό το κομμάτι απαιτείται νομική συμβουλή και προσεκτική μελέτη, ώστε να είναι εφικτή και σχετικά εύκολη η απομάκρυνση από τον πάροχο, χωρίς να πρέπει να εγκαταλείψετε και ένα τμήμα της εταιρείας πίσω. Επίσης, σημασία έχουν οι λεπτομέρειες γιατί για παράδειγμα ο κώδικας μπορεί να ανήκει στην εταιρεία, αλλά να μην ενσωματώνεται σε καμία άλλη πλατφόρμα πέραν από αυτή που δημιουργήθηκε. Οπότε καταλήγουμε πάλι στον ίδιο παρανομαστή.

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

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

Τέλος, κάθε διαδικτυακό περιβάλλον σαφώς υπόκεινται σε κακόβουλες επιθέσεις  οι οποίες πρέπει να αντιμετωπίζονται με σοβαρότητα και υπευθυνότητα. Προτού λοιπόν αποφασιστεί ο πάροχος πρέπει να λάβετε γνώση για τους τρόπους που διαχειρίζεται αυτές τις επιθέσεις και επίσης να σας γνωστοποιηθεί ο τρόπος που αν κάτι συμβεί, θα λειτουργήσουν τα εφεδρικά συστήματα και θα ανακάμψει από πιθανή καταστροφή. Με αυτά μπορεί να συνυπολογιστεί ο κίνδυνος που πραγματικά τίθεται ως θέμα για τις εταιρικές εφαρμογές και τα δεδομένα τους.

Σαφώς λοιπόν οι PaaS υπηρεσίες δίνουν την δυνατότητα της γρήγορης και οικονομικής δημιουργίας νέων εφαρμογών και μάλιστα χωρίς την εκ βαθέων απαιτούμενη προγραμματιστική γνώση. Όμως, όπως σε καθετί απαιτείται ισορροπία μεταξύ των προσδοκιών και της σωστής διαχείρισης του προσφερόμενου εργαλείου. Με στόχο την ανταγωνιστικότητα και την γρήγορη ενσωμάτωση νέων δυνατοτήτων σε μία επιχείρηση μπορεί να τεθεί όλο το οικοδόμημα σε κίνδυνο, λόγω απροσεξίας και βεβιασμένων αποφάσεων. Το ανθρώπινο δυναμικό πίσω από την νέα πλατφόρμα είναι αυτό που θα λειτουργήσει εξίσου δημιουργικά και με εγκράτεια, ώστε να χρησιμοποιηθούν οι δυνατότητες της συνεργασίας και της απλότητας και να περιοριστούν οι πιθανότητες ρίσκου σχετικά με την επιχείρηση. Προς το παρόν, σε επίπεδο cloud υπηρεσιών το PaaS  εξελίσσεται σημαντικά, με οικονομικούς πάντα όρους,  χωρίς ακόμα να κατέχει την μερίδα του λέοντος. Παρόλα αυτά αναμένεται ανάπτυξη έως και 50% για τον επόμενο χρόνο και στο μέλλον θεωρείται ότι θα αποτελεί ηγετική υπηρεσία στις εταιρικές διεργασίες.

Της Παναγιώτας Τσώνη