Τρίτη, 4 Αυγούστου 2015

Microsoft Azure: Websites vs Cloud Services vs VMs

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


   Η πρώτη λύση αφορά την απλή περίπτωση ενός web app, η δεύτερη την υποστήριξη της εφαρμογής μέσω ενός cloud service (Platform as a Service PaaS) και η τρίτη την περίπτωση φιλοξενίας σε virtual machines (VMs), ρυθμιζόμενες από το μηδέν (Infrastructure as a Service IaaS). Συνήθως, στις περισσότερες περιπτώσεις η δημιουργία νέων virtual machines από το μηδέν για να φιλοξενηθεί η εφαρμογή κρίνεται περίπλοκη και υπερβολική καθώς απαιτεί την ενασχόληση μας με την εγκατάσταση των επιμέρους ρυθμίσεων από τα βασικά επίπεδα, όπως αυτό του λειτουργικού συστήματος. Να σημειωθεί εδώ ότι τόσο τα web apps, όσο και τα cloud services δουλεύουν πάνω σε VMs, αλλά πλέον αυτές είναι ήδη ρυθμισμένες σε μεγάλο μέρος και αυτό που αλλάζει είναι ο βαθμός στον οποίο ο εκάστοτε developer έχει τη δυνατότητα να παρέμβει και να διαφοροποιήσει τις ρυθμίσεις του συστήματος πάνω στο οποίο τρέχει η εφαρμογή. Κατ’ επέκταση, το δίλημμα που τίθεται, ως επί το πλείστον, είναι η επιλογή μεταξύ ενός web app και ενός cloud service. Για έναν αρχάριο πάνω στο πεδίο του web developing η καλύτερη λύση είναι η επιλογή ενός web app. Η ανάπτυξη του website μπορεί να γίνει μέσω του Visual Studio, του WebMatrix ή οποιουδήποτε άλλου IDE επιθυμεί ο developer χωρίς να χρειαστεί κάποιο επιπλέον λογισμικό. Το "ανέβασμα" στο Azure μπορεί να γίνει πολύ εύκολα και στη συνέχεια δε χρειάζεται να γίνουν περεταίρω ενέργειες για τη ρύθμιση του συστήματος. Η σύνδεση με κάποιο SQL Server μπορεί να γίνει εξίσου εύκολα ενημερώνοντας κατάλληλα το Web.config αρχείο (ή όποιο αντίστοιχο υπάρχει).


   Σε αντίθεση με τα προηγούμενα, η υπηρεσία του cloud service επιτρέπει στον developer να επέμβει σε ορισμένες ρυθμίσεις του συστήματος, δίνοντας του παραπάνω έλεγχο με αντίτιμο τη λιγότερο εύκολη διαχείριση της εφαρμογής, συγκριτικά με τα web apps. Όπως γίνεται αντιληπτό, η επιλογή ενός cloud service απευθύνεται σε περισσότερο έμπειρους χρήστες αλλά προσφέρει σημαντικά πλεονεκτήματα όταν πρόκειται να αναπτυχθεί μια πιο περίπλοκη εφαρμογή. Συγκεκριμένα, οι virtual machines πάνω στις οποίες θα τρέχει δεν θα φιλοξενούν καμία άλλη εφαρμογή, σε αντίθεση με αυτές των web apps που φιλοξενούν εφαρμογές διαφορετικών developers. Επιπλέον, θα δίνεται η δυνατότητα στον developer να εγκαταστήσει επιπλέον λογισμικό ή να ρυθμίσει εκ νέου κάποιο ήδη υπάρχον στο σύστημα. Ένα ακόμα χαρακτηριστικό που πρέπει να αναφέρουμε αφορά την ύπαρξη του ρόλου Worker, πέραν αυτού του Web. Η λειτουργία του Web role, που υπάρχει και στις υπηρεσίες των web apps, αναλαμβάνει την λήψη αλλά και την εξυπηρέτηση των αιτημάτων των επισκεπτών της σελίδας. Πλέον όμως, μέσω του cloud service, δίνεται η δυνατότητα υποστήριξης και του Worker role, που για παράδειγμα θα μπορεί να αναλαμβάνει την εξυπηρέτηση των αιτημάτων αφήνοντας στον Web role μόνο την λήψη και δρομολόγηση τους. Κατ’ αυτό τον τρόπο δίνεται η δυνατότητα στην εφαρμογή να αποκτήσει πολλαπλά επίπεδα.



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

   Συνοψίζοντας λοιπόν, καταλήγουμε ότι οι υπηρεσίες που προσφέρει το Microsoft Azure απευθύνονται σε ένα αρκετά μεγάλο εύρος εφαρμογών, από τις πιο απλές ως και τις περισσότερο περίπλοκες. Παρ’ όλα αυτά, μια χρήσιμη συμβουλή που δίνεται σε τέτοιες περιπτώσεις είναι να ξεκινάει κανείς από την πιο απλή λύση (web app) και αναλόγως με την εξέλιξη των απαιτήσεων της εφαρμογής να προχωρά στις επόμενες υπηρεσίες (cloud services, VMs).


Πηγή - References

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου