Linux Inside
73
ρεί να επιτυγχάνεται είτε με hardware είτε με software τεχνι-
κές. Ουσιαστικά με αυτήν την τεχνική μοιράζονται οι διεργα-
σίες απόκρισης του διακομιστή και δημιουργούνται mirrors
των Web sites σε διαφόρους διακομιστές ανά τον κόσμο
που ανήκουν στα CDN, έτσι ώστε να εξυπηρετούν ταχύτερα
τους χρήστες που βρίσκονται κοντά τους.
Όπως είναι λογικό, οι servers κάθε CDN στους οποίους
αποθηκεύεται μία προσωρινή κατάσταση των ιστοσελίδων,
ώστε να προβάλλονται στους χρήστες στην περίπτωση που
αυτή δεν είναι διαθέσιμη, πρέπει να ανανεώνουν το cache
που διαθέτουν για κάθε ιστοσελίδα ανά κάποιο «δυναμικό»
χρονικό διάστημα.
Με τον όρο «δυναμικό», εννοώ ότι δεν μπορεί για μία ιστο-
σελίδα με <100 επισκέψεις ανά ημέρα να δημιουργείται
cache συχνότερα απ’ ό,τι για μία ιστοσελίδα με χιλιάδες επι-
σκέπτες καθημερινά.
Δηλαδή, πάντα υπάρχει ένας αλγόριθμος ο οποίος είναι
υπεύθυνος για τον έλεγχο της επισημότητας και την ανανέ-
ωση του υπάρχοντος cache στον server.
Μία άλλη τεχνική είναι το anycast. Με το anycasting, ου-
σιαστικά μία διεύθυνση IP οδηγεί σε διαφορετικούς (συνή-
θως χαμηλότερου latency, πρακτικά δηλαδή πιο κοντινούς)
edge servers, βασιζόμενη στη γεωγραφική τοποθεσία του
χρήστη. Σύμφωνα βέβαια με τη γενικότερη λογική λειτουρ-
γίας των CDN, αν χρησιμοποιηθούν open DNS services,
όπως αυτοί της Google, η υλοποίηση του CDN ουσιαστικά
αχρηστεύεται, αφού ανιχνεύεται ως τόπος ύπαρξης της
ιστοσελίδας η γεωγραφική περιοχή όπου είναι στημένος ο
open DNS server και όχι η πραγματική γεωγραφική τοποθε-
σία όπου βρίσκεται ο server της ιστοσελίδας που μας ενδια-
φέρει. Όταν μάλιστα πρόκειται για υπηρεσίες Web
streaming, αυτό το πρόβλημα μπορεί να κάνει ακόμη και
αδύνατη τη λειτουργία αυτών των υπηρεσιών.
Για να επιτευχθούν τεχνικές όπως το anycasting, χρησιμο-
ποιούνται επίσης βοηθητικές τεχνικές.
Συγκεκριμένα, με το HTTP redirection τα requests ενός
client σε κάποιον κόμβο του δικτύου μεταφέρονται και απα-
ντώνται από έναν άλλον (που βρίσκεται πιο κοντά στον τελι-
κό χρήστη). Σημαντικό εδώ είναι να αναφέρουμε ότι όταν γί-
νεται redirection από έναν κόμβο σε έναν άλλον, ο δεύτε-
ρος, δηλαδή αυτός που στη συνέχεια αναλαμβάνει τη δια-
χείριση του request, επιλέγεται με βάση τόσο την εγγύτητα
προς τον τελικό χρήστη όσο και σε συνάρτηση με το server
load.
Η τελευταία τεχνική στην οποία θα αναφερθούμε, είναι η
συμπίεση ή αλλιώς compression. Ως γνωστόν, το bandwidth
του τελικού χρήστη ή η εγγύτητά του στα exchange points
δεν είναι δυνατόν να ρυθμιστεί από το CDN, αυτό όμως που
μπορεί να κάνει, είναι να μειώσει τους χρόνους απόκρισης,
κάτι που επιτυγχάνεται μειώνοντας το μέγεθος των HTTP
requests με μεθόδους συμπίεσης.
Οι μέθοδοι αυτές αφορούν στη βασική λειτουργία του
CDN, δηλαδή στον «πυρήνα» του. Σαφώς υπάρχουν και άλ-
λες λειτουργίες, στις περισσότερες περιπτώσεις δευτερεύ-
ουσας σημασίας, όπως η καταγραφή των επισκέψεων
(
logging) και η παρουσίασή τους στο διαχειριστή ή η κατα-
γραφή των επιθέσεων που δέχεται το σύστημα έτσι ώστε ο
διαχειριστής να προβεί στις κατάλληλες ενέργειες.
Συνοψίζοντας, η υλοποίηση ενός CDN θεωρητικά φαίνεται
εύκολη και σχετικά απλή: ένα δίκτυο από servers που καλύ-
πτουν την υφήλιο και διανέμουν cached content στους κοντι-
νούς χρήστες τους. Πρακτικά όμως δεν είναι έτσι τα πράγ-
ματα, καθώς η υλικοτεχνική υποδομή που απαιτείται, είναι
ιδιαίτερα ακριβή και απαιτεί συχνή συντήρηση και ανανέωση
εξοπλισμού.
•
Linux Labs - CDN
Με το anycasting, ουσιαστικά μία διεύθυνση IP
οδηγεί σε διαφορετικούς (συνήθως
χαμηλότερου latency, πρακτικά δηλαδή πιο
κοντινούς) edge servers, βασιζόμενη στη
γεωγραφική τοποθεσία του χρήστη.
Απλοϊκή απεικόνιση του τρόπου λειτουργίας ενός CDN.