Azure Data + Storage Media + CDN Networking Web + Mobile

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

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

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

όσο καλά και να έχουμε σχεδιάσει την εφαρμογή μας για ανθεκτικότητα και υψηλή διαθεσιμότητα, χρειάζεται να έχει πάντα σύνδεση στα δεδομένα. Συνήθως για βάση δεδομένων έχουμε έναν Server, π.χ. Microsoft SQL, Oracle, MySQL κλπ ή ακομα ένα Azure SQL instance. Και τι κάνουμε για να αντιμετωπίσουμε την αυξημένη ζήτηση? Δίνουμε περισσότερη μνήμη, πυρήνες ή αυξάνουμε τα DTU αν είμαστε σε Azure SQL Database. Ωραία, αυξήσαμε τους πόρους αλλά τι γίνεται με το Global Availability? Μια βάση σε ένα host, ή ακόμα και μια Azure SQL Database είναι ένα single point of failure.

Το Microsoft Azure μας δίνει πολλές δυνατότητες και είναι πολύ ευέλικτο όσον αφορά την βάση, χρησιμοποιώντας το PaaS. Φυσικά μπορουμε να χρησιμοποιήσουμε και το IaaS, αλλά σε αυτήν την περίπτωση θα πρέπει να υπολογίσουμε πολλά περισσότερα θέματα, όπως το VM, τα updates & patches του λειτουργικού, την εγκατάσταση του SQL server, τη δικτυακή σύνδεση του VM και πολλά άλλα. Από την άλλη με το PaaS έχουμε να ανησυχήσουμε μόνο για την βάση μας αυτή καθαυτή και το Microsoft Azure διαχειρίζεται όλα τα υπόλοιπα για μας.

Ας εστιάσουμε τώρα στο πως θα έχουμε Global Availability χρησιμοποιώντας το Azure PaaS. Την παρούσα στιγμή Global Availability μας δίνει η Azure SQL Database και η Azure Cosmos DB.

Global Availability με SQL Database

Η Azure SQL Database είναι μια σχεσιακή βάση την οποία προσφέρει το Microsoft Azure σε μοντέλο PaaS. Έχουμε ένα Microsoft SQL instance, για το οποίο δεν χρειάζεται να ανησυχούμε για το μηχάνημα, για το λειτουργικό ούτε για την εγκατάσταση του SQL Server. Αυτό το instance προσφέρετε από το Microsoft Azure σε υψηλή διαθεσιμότητα με SQL 99,99%.

Η Azure SQL Database μας δίνει την δυνατότητα να ενεργοποιήσουμε το “failover groups” το οποίο μας δίνει geo-replication της βάσης. Αυτό το χαρακτηριστικό μας επιτρέπει να δημιουργήσουμε 4 επιπρόσθετα αντίγραφα της βάσης σε διαφορετικά Azure Regions, δηλαδή 4 διαφορετικές γεωγραφικές περιοχές. Αυτά τα 4 αντίγραφα θα είναι read-only, ενώ μόνο το το Primary instance θα είναι writable.

Χρησιμοποιώντας το failover group, όταν η primary database πέσει για κάποιο λόγο, π.χ. διακοπή της υπηρεσίας, καταστροφή γεωγραφικής περιοχής, τότε ένα secondary copy γίνετε Primary και η εφαρμογή μας συνδέεται σε αυτό. Με το SQL Database failover group, η SQL Database διατηρεί ένα μοναδικό connection string. Έτσι η εφαρμογή θα συνδεθεί στη βάση ανεξάρτητα σε ποιο region θα έχει γυρίσει το Primary copy. Φυσικα θα πρέπει να έχουμε ρυθμίσει και την εφαρμογή μας για Global Availability, όπως είδαμε στο προηγούμενο άρθρο .

Παρόλο που τα δευτερεύοντα αντίγραφα της βάσης είναι read-only, μπορούμε να τα χρησιμοποιήσουμε από τις εφαρμογές μας. Αυτό που χρειάζεται είναι να ρυθμίσουμε την εφαρμογή να επικοινωνεί στην κοντινότερη azure SQL database χρησιμοποιώντας μόνο ready operations και να γυρίσουν στην Primary για εγγραφές. Κάνοντας αυτήν την ρύθμιση η εφαρμογή που τρέχει σε διαφορετικό region από την Primary SQL database, θα εξυπηρετεί με μεγαλύτερη ταχύτητα όλα τα read operations και έτσι θα είναι περισσότερο ανταποκρίσιμη.

Global Availability με Cosmos DB

Η Azure Cosmos DB είναι μια NoSQL βάση που προσφέρεται από το Microsoft Azure σε PaaS μοντέλο. Κατά την δημιουργία της Azure Cosmos DB, τα δεδομένα αποθηκεύονται σε ένα Azure Region. Από κει και πέρα, πολύ εύκολα μπορούμε να ρυθμίσουμε geo-replication. Λόγο ότι η Azure Cosmos DB γράφτηκε για να τρέχει αμοιγός στο Cloud, είναι η καλύτερη λύση για geo-replication. Χρησιμοποιώντας το connection string, απλά προσθέτουμε secondary regions και η πλατφόρμα αναλαμβάνει τα read & write operations στο κοντινότερο region. Στην Azure Cosmos DB τα write operations γίνονται στην Primary Βάση και μετά συγχρονίζουν στις Secondary ασύγχρονα.

Μπορούμε να προσθέσουμε όσα Secondary αντίγραφα θέλουμε και η υπηρεσία αναλαμβάνει το συγχρονισμό όπως επίσης και το failover όταν η Primary βάση πέσει.

 

Παρακάτω θα δείτε ένα διάγραμμα που περιγράφει πραγματικά την υλοποίηση για ανθεκτικότητα, υψηλή διαθεσιμότητα και Global Availability χρησιμοποιώντας το Microsoft Azure PaaS.

 

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 για να μειώσει τα ανεπιθύμητα σχόλια. Μάθετε πώς υφίστανται επεξεργασία τα δεδομένα των σχολίων σας.