Azure Data + Storage Media + CDN Web + Mobile

Azure PaaS: Ελαστικότητα, Ανθεκτικότητα και Υψηλή Διαθεσιμότητα στις εφαρμογές σας

Azure PaaS: Ελαστικότητα, Ανθεκτικότητα και Υψηλή Διαθεσιμότητα στις εφαρμογές σας

Μέσο του Microsoft Azure είναι πολύ απλό και εύκολο ο οποιοσδήποτε να δημιουργήσει μια web εφαρμογή. Ειδικά με την υπηρεσία Platform as a Service πολύ εύκολα μπορούμε να δημιουργήσουμε ένα Web App, χρησιμοποιώντας το Azure App Service, μαζί με μια database, χρησιμοποιώντας Azure SQL Database και Azure Cosmos DB. Σε αυτό το άρθρο θα δούμε πως μπορούμε να κάνουμε αυτήν την εφαρμογή ελαστική και ανθεκτική είτε σε καταστροφή είτε σε απότομη αύξηση ζήτησης. Θα δούμε πως θα κρατήσουμε την εφαρμογή μας ενεργή ακόμα και μετά από την αποτυχία ενός ολόκληρου Azure Region.

Πρώτα απ’ όλα ας δούμε εν συντομία τι είναι το Azure Platform as a Service (PaaS). Το παρακάτω σχεδιάγραμμα είναι αρκετά κατατοπιστικό. Το PaaS είναι ένα ολοκληρωμένο περιβάλλον δημιουργίας και ανάπτυξης εφαρμογών στο Azure. Αγοράζουμε και χρησιμοποιούμε απευθείας ένα Web instance και μια Database, χωρίς να μας απασχολεί το υλικό (Server Hardware) λειτουργικό σύστημα (windows updates, patches, etc) ούτε η εγκατάσταση του web instance ή της database. Για περισσότερες πληροφορίες εδώ.

 

Azure App Service

Το Azure App Service δίνει την δυνατότητα για εύκολο deployment και hosting των εφαρμογών χρησιμοποιώντας το Azure Platform as a Service (PaaS) το οποίο τρέχει πάνω από Managed Azure Virtual Machines. Αυτό σημαίνει ότι δεν χρειάζεται να μας απασχολεί η διαχείριση του λειτουργικού συστήματος, updates, patches ακόμα και frameworks για .Net, Java, php κλπ. Το App Service δίνει την ευκολία για να δημιουργήσουμε το dev, test & production περιβάλλον πολύ εύκολα. Ακόμα περιλαμβάνει χειροκίνητες και αυτόματες δυνατότητες για auto scaling.

Αποτέλεσμα εικόνας για azure app service

Αλλά όπως είπαμε και πιο πάνω, το App Service δεν μπορεί να προσφέρει από μόνο του Global Availability και ευελιξία. Το Microsoft Azure μας δίνει τα εργαλεία για να το πετύχουμε πολύ εύκολα, χρησιμοποιώντας Azure Traffic Manager, Azure CDN και άλλες υπηρεσίες που θα δούμε παρακάτω.

 

Πετυχαίνοντας Global Availability για την εφαρμογή σας

Με τον όρο Global Availability εννοούμε ότι η εφαρμογή θα είναι προσβάσιμη από όλο τον κόσμο. Αυτό φυσικά, σε πολύ απλό βαθμό, μπορεί να γίνει και με μια single instance εφαρμογή, ένα απλό Web App. Αυτό φυσικά δεν είναι αρκετό. Σε αυτό το σενάριο θα υπάρχει μεγάλη καθυστέρηση όσον αφορά την πρόσβαση από μακριά, το χρόνο φορτώματος και φυσικά την επαναφορά από μια καταστροφή, όπου θα χρειαστούν πολλές χειροκίνητες ρυθμίσεις και ενέργειες.

Το Microsoft Azure προσφέρει κάποιες υπηρεσίες οι οποίες μας βοηθούν να δημιουργήσουμε υπηρεσία με πολύ μεγαλύτερη global availability.  Αυτές οι υπηρεσίες είναι ο Azure Traffic Manager και το Azure CDN, το οποίο προσφέρεται για την ώρα μέσο Akamai & Verison.

 

Χρησιμοποιώντας τον Azure Traffic Manager με το Azure App Service

Ο Azure Traffic Manager είναι ένας Load Balancer που βασίζεται στο DNS. Η δουλεία του είναι να ανακατευθύνει την κίνηση του χρήστη πρός ένα συγκεκριμένο app service instance βάση κάποιον προυποθέσεων. Αυτό που κάνει είναι να κάνει resolve το όνομα που ζητάμε στην συγκεκριμένη IP του app service που θέλουμε να εξυπηρετήσει.

Πρώτα λοιπόν ρυθμίζουμε το domain name της εφαρμογής μας να δείχνει στο όνομα του Azure Traffic Manager. Στη συνέχεια προσθέτουμε στον Azure Traffic Manager τα instances της εφαρμογής μας, τα οποία βρίσκονται σε οποιοδήποτε Azure Region ανα τον κόσμο, όσο το δυνατόν πιο κοντά στους τελικούς χρήστες / πελάτες της εφαρμογής.

Αποτέλεσμα εικόνας για azure traffic manager

Αυτό που κάνει ο Azure Traffic Manager είναι να ανακατευθύνει τα request των χρηστών στο κοντινότερό τους Azure Region. Παράδειγμα αν έχουμε κάνει deploy την εφαρμογή μας στο West Europe region και στο East US region, και κάποιος στην Ιταλία πάει να κάνει access την εφαρμογή, τότε ο Azure Traffic Manager θα στείλει το request στο West Europe region.

Εκτός από αυτό, ο Azure Traffic Manager ελέγχει το health των app service instances μέσο probing και αυτόματα σταματάει να ανακατευθείνει προς unhealthy instances μέχρι αυτά να ξαναγίνουν healthy. Στο μεσοδιάστημα ανακατευθύνει τους χρήστες στο επόμενο κοντινότερο Azure Region και έτσι η εφαρμογή μας συνεχίζει να είναι ενεργή.

 

Χρησιμοποιώντας το Azure CDN με το Azure App Service

Το Content Delivery Network (CDN) είναι μια υπηρεσία η οποία κάνει προσωρινή αποθήκευση του στατικού περιεχομένου των Web εφαρμογών σε πολλαπλές τοποθεσίες ανά τον κόσμο. Έτσι προσφαίρουν αυτό το περιεχόμενο με μεγαλύτερη ταχύτητα σε χρήστες από το κοντινότερο σημείο προς αυτούς. Το Azure CDN προσφέρετε ως Platform as a Service (PaaS) υπηρεσία μέσο του Microsoft Azure.

Αποτέλεσμα εικόνας για azure cdn

Και ποιό είναι το κέρδος στο να χρησιμοποιούμε το Azure CDN αντί να κάνουμε deploy web service instances σε όλα τα Azure Regions? Τα βασικά είναι τρία. το πρώτο είναι το κόστος, τόσο του ίδιου το Web Service, όσο και το κόστος συντήρησης / deploy της εφαρμογής σε τόσα Azure Regions. Ένα άλλο είναι ότι το Azure CDN, στην παρούσα χρονική στιγμή, έχει περισσότερα edge location από όσα είναι τα Azure Regions. Τέλος το Azure CDN, επειδή απλά αποθηκεύει προσωρινά το στατικό περιεχόμενο των εφαρμογών, αποσυμφορεί τα web service instances.

 

Πετυχαίνοντας Global Availability και στα δεδομένα

Στο επόμενο άρθρο θα μιλήσουμε για το πως να πετύχουμε Global Availability και στα δεδομένα χρησιμοποιώντας Azure Platform as a Service (PaaS) Azure SQL Database &  Azure Cosmos DB.

Stay tuned!

Pantelis Apostolidis
Microsoft Azure MVP
e-apostolidis.gr

About the author

Pantelis Apostolidis

Pantelis Apostolidis is a technology enthusiast, currently working as a Cloud Solutions Architect at Microsoft. His educational background includes a diploma in Tourism Management from the Technological Educational Institute (TEI) of Thessaloniki and a diploma in Computer Network Engineering from the IEK of Thessaloniki. In his free time, he enjoys spending time with his family, plays guitar, tennis & basketball. Follow him @papostolidis

Add Comment

Click here to post a comment

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει τα ανεπιθύμητα σχόλια. Μάθετε πώς υφίστανται επεξεργασία τα δεδομένα των σχολίων σας.