[Μην] χρησιμοποιείτε CDN

Σχεδόν κάθε άρθρο ή εργαλείο για τη βελτιστοποίηση της ταχύτητας του ιστότοπου έχει μια μέτρια ρήτρα "χρήση CDN". Γενικά, το CDN είναι ένα δίκτυο παράδοσης περιεχομένου ή δίκτυο παράδοσης περιεχομένου. Εμείς στο Method Lab συναντάμε συχνά ερωτήσεις από πελάτες σχετικά με αυτό το θέμα· ορισμένοι από αυτούς ενεργοποιούν το δικό τους CDN. Ο σκοπός αυτού του άρθρου είναι να κατανοήσει τι μπορεί να προσφέρει ένα CDN όσον αφορά την ταχύτητα φόρτωσης του ιστότοπου, ποια προβλήματα μπορεί να προκύψουν και σε ποιες περιπτώσεις δικαιολογείται η χρήση ενός CDN.

[Μην] χρησιμοποιείτε CDN

Οι καθυστερήσεις που εμφανίζονται σε κύκλο στην εικόνα προκαλούνται από τη χρήση ενός CDN.

Μια μικρή ιστορία

Όπως πολλές τεχνολογίες, τα CDN προέκυψαν από ανάγκη. Με την ανάπτυξη των καναλιών Διαδικτύου μεταξύ των χρηστών του Διαδικτύου, εμφανίστηκαν διαδικτυακές υπηρεσίες βίντεο. Φυσικά, το περιεχόμενο βίντεο απαιτεί τάξεις μεγέθους μεγαλύτερο εύρος ζώνης σε σύγκριση με το κανονικό περιεχόμενο ιστότοπου (εικόνες, κείμενο και κώδικας CSS ή JS).

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

Το πρόβλημα του περιορισμού του καναλιού ενός μεμονωμένου διακομιστή επιλύεται τέλεια από το CDN. Οι πελάτες δεν συνδέονται απευθείας με τον διακομιστή, αλλά με κόμβους στο δίκτυο CDN. Σε μια ιδανική κατάσταση, ο διακομιστής στέλνει μια ροή στον κόμβο CDN και στη συνέχεια το δίκτυο χρησιμοποιεί τους δικούς του πόρους για να παραδώσει αυτήν τη ροή σε πολλούς χρήστες. Από οικονομική άποψη, πληρώνουμε μόνο για τους πόρους που καταναλώνονται πραγματικά (αυτό θα μπορούσε να είναι εύρος ζώνης ή κίνηση) και έχουμε εξαιρετική επεκτασιμότητα της υπηρεσίας μας. Η χρήση ενός CDN για την παράδοση βαρέος περιεχομένου είναι απολύτως δικαιολογημένη και λογική. Αν και αξίζει να σημειωθεί ότι οι μεγαλύτεροι παίκτες σε αυτόν τον χώρο (π.χ. Netflix) δημιουργούν τα δικά τους CDN αντί να χρησιμοποιούν μεγάλα εμπορικά CDN (Akamai, Cloudflare, Fastly, κ.λπ.)

Καθώς ο Ιστός έχει εξελιχθεί, οι ίδιες οι εφαρμογές Ιστού έχουν γίνει πιο περίπλοκες και πολύπλοκες. Το πρόβλημα της ταχύτητας φόρτωσης ήρθε στο προσκήνιο. Οι λάτρεις της ταχύτητας του ιστότοπου εντόπισαν γρήγορα πολλά σημαντικά προβλήματα που προκάλεσαν αργή φόρτωση των ιστότοπων. Μία από αυτές ήταν οι καθυστερήσεις δικτύου (RTT - χρόνος μετ' επιστροφής ή χρόνος ping). Οι καθυστερήσεις επηρεάζουν πολλές διαδικασίες στη φόρτωση ιστότοπου: δημιουργία σύνδεσης TCP, έναρξη περιόδου λειτουργίας TLS, φόρτωση κάθε μεμονωμένου πόρου (εικόνα, αρχείο JS, έγγραφο HTML κ.λπ.)

Το πρόβλημα επιδεινώθηκε από το γεγονός ότι κατά τη χρήση του πρωτοκόλλου HTTP/1.1 (πριν από την εμφάνιση των SPDY, QUIC και HTTP/2 αυτή ήταν η μόνη επιλογή), τα προγράμματα περιήγησης δεν ανοίγουν περισσότερες από 6 συνδέσεις TCP σε έναν κεντρικό υπολογιστή. Όλα αυτά οδήγησαν σε διακοπή της σύνδεσης και αναποτελεσματική χρήση του εύρους ζώνης καναλιού. Το πρόβλημα επιλύθηκε εν μέρει με την κοινή χρήση τομέα - τη δημιουργία πρόσθετων κεντρικών υπολογιστών για να ξεπεραστεί το όριο στον αριθμό των συνδέσεων.

Εδώ εμφανίζεται η δεύτερη ικανότητα του CDN - μείωση της καθυστέρησης (RTT) λόγω του μεγάλου αριθμού σημείων και της εγγύτητας των κόμβων στον χρήστη. Η απόσταση παίζει καθοριστικό ρόλο εδώ: η ταχύτητα του φωτός είναι περιορισμένη (περίπου 200 km/sec σε οπτική ίνα). Αυτό σημαίνει ότι κάθε 000 km διαδρομής προσθέτει 1000 ms καθυστέρηση ή 5 ms στο RTT. Αυτός είναι ο ελάχιστος χρόνος που απαιτείται για τη μετάδοση, καθώς υπάρχουν καθυστερήσεις και στον ενδιάμεσο εξοπλισμό. Δεδομένου ότι ένα CDN συνήθως γνωρίζει πώς να αποθηκεύει προσωρινά αντικείμενα στους διακομιστές του, μπορούμε να επωφεληθούμε από τη φόρτωση τέτοιων αντικειμένων μέσω ενός CDN. Απαραίτητες προϋποθέσεις για αυτό: η παρουσία του αντικειμένου στη μνήμη cache, η εγγύτητα του σημείου CDN στον χρήστη σε σύγκριση με τον διακομιστή εφαρμογών web (διακομιστής προέλευσης). Είναι σημαντικό να κατανοήσουμε ότι η γεωγραφική εγγύτητα ενός κόμβου CDN δεν εγγυάται χαμηλό λανθάνοντα χρόνο. Η δρομολόγηση μεταξύ του πελάτη και του CDN μπορεί να κατασκευαστεί με τέτοιο τρόπο ώστε ο πελάτης να συνδέεται με έναν κεντρικό υπολογιστή σε άλλη χώρα, και πιθανώς σε άλλη ήπειρο. Εδώ μπαίνουν στο παιχνίδι η σχέση μεταξύ τηλεπικοινωνιακών φορέων και της υπηρεσίας CDN (peering, συνδέσεις, συμμετοχή σε IX, κ.λπ.) και η πολιτική δρομολόγησης της κυκλοφορίας του ίδιου του CDN. Για παράδειγμα, το Cloudflare, όταν χρησιμοποιεί δύο αρχικά προγράμματα (δωρεάν και φθηνό), δεν εγγυάται την παράδοση περιεχομένου από τον πλησιέστερο κεντρικό υπολογιστή - ο κεντρικός υπολογιστής θα επιλεγεί για να επιτύχει το ελάχιστο κόστος.

Πολλές κορυφαίες εταιρείες του Διαδικτύου προσελκύουν το ενδιαφέρον του κοινού (προγραμματιστές ιστού και ιδιοκτήτες υπηρεσιών) στο θέμα της ταχύτητας φόρτωσης και της απόδοσης του ιστότοπου. Μεταξύ αυτών των εταιρειών είναι η Yahoo (εργαλείο Yslow), η AOL (WebPageTest) και η Google (υπηρεσία Page Speed ​​​​Insights), οι οποίες αναπτύσσουν τις δικές τους προτάσεις για την επιτάχυνση των ιστότοπων (κυρίως σχετίζονται με τη βελτιστοποίηση πελατών). Αργότερα, εμφανίζονται νέα εργαλεία δοκιμής ταχύτητας ιστότοπου, τα οποία παρέχουν επίσης συμβουλές για την αύξηση της ταχύτητας του ιστότοπου. Κάθε μία από αυτές τις υπηρεσίες ή προσθήκες έχει μια συνεπή σύσταση: «Χρησιμοποιήστε ένα CDN». Η μείωση του λανθάνοντος χρόνου δικτύου αναφέρεται συνήθως ως εξήγηση για την επίδραση του CDN. Δυστυχώς, δεν είναι όλοι έτοιμοι να καταλάβουν πώς ακριβώς επιτυγχάνεται το αποτέλεσμα επιτάχυνσης του CDN και πώς μπορεί να μετρηθεί, επομένως η σύσταση λαμβάνεται με βάση την πίστη και χρησιμοποιείται ως αξίωμα. Στην πραγματικότητα, δεν δημιουργούνται όλα τα CDN ίσα.

Χρήση του CDN Today

Για να αξιολογηθεί η χρησιμότητα της χρήσης CDN, πρέπει να ταξινομηθούν. Τι μπορεί να βρεθεί τώρα στην πράξη (τα παραδείγματα σε παρένθεση δεν είναι, φυσικά, εξαντλητικά):

  1. Δωρεάν CDN για τη διανομή βιβλιοθηκών JS (MaxCDN, Google. Yandex).
  2. CDN υπηρεσιών για βελτιστοποίηση πελατών (για παράδειγμα, Google Fonts για γραμματοσειρές, Cloudinary, Cloudimage για εικόνες).
  3. CDN για στατική βελτιστοποίηση και βελτιστοποίηση πόρων στο CMS (διαθέσιμο σε Bitrix, WordPress και άλλα).
  4. CDN γενικής χρήσης (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN για επιτάχυνση ιστότοπου (Cloudflare, Imperva, Airi).

Η βασική διαφορά μεταξύ αυτών των τύπων είναι πόσο μεγάλο μέρος της κίνησης περνά μέσω του CDN. Οι τύποι 1-3 είναι η παράδοση μόνο μέρους του περιεχομένου: από ένα αίτημα έως πολλές δεκάδες (συνήθως εικόνες). Οι τύποι 4 και 5 αποτελούν πλήρη διαμεσολάβηση της κυκλοφορίας μέσω ενός CDN.

Στην πράξη, αυτό σημαίνει τον αριθμό των συνδέσεων που χρησιμοποιούνται για τη φόρτωση του ιστότοπου. Με το HTTP/2, χρησιμοποιούμε μία μόνο σύνδεση TCP στον κεντρικό υπολογιστή για την επεξεργασία οποιουδήποτε αριθμού αιτημάτων. Εάν διαιρέσουμε τους πόρους στον κύριο κεντρικό υπολογιστή (προέλευση) και στο CDN, τότε είναι απαραίτητο να διανεμηθούν αιτήματα σε διάφορους τομείς και να δημιουργηθούν πολλές συνδέσεις TCP. Η χειρότερη περίπτωση είναι: DNS (1 RTT) + TCP (1 RTT) + TLS (2-3 RTT) = 6-7 RTT. Αυτός ο τύπος δεν λαμβάνει υπόψη τις καθυστερήσεις στα δίκτυα κινητής τηλεφωνίας για την ενεργοποίηση του ραδιοφωνικού καναλιού της συσκευής (αν δεν ήταν ενεργό) και τις καθυστερήσεις στον πύργο κινητής τηλεφωνίας.

Δείτε πώς φαίνεται στον καταρράκτη φόρτωσης του ιστότοπου (οι καθυστερήσεις για σύνδεση στο CDN επισημαίνονται σε RTT 150 ms):

[Μην] χρησιμοποιείτε CDN

Εάν το CDN καλύπτει όλη την επισκεψιμότητα του ιστότοπου (εκτός από υπηρεσίες τρίτων), τότε μπορούμε να χρησιμοποιήσουμε μία μόνο σύνδεση TCP, εξοικονομώντας λανθάνουσα κατάσταση στη σύνδεση με πρόσθετους κεντρικούς υπολογιστές. Φυσικά, αυτό ισχύει για συνδέσεις HTTP/2.

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

Δυνατότητες CDN για επιτάχυνση ιστότοπου

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

1. Συμπίεση πόρων κειμένου

Το πιο βασικό και κατανοητό χαρακτηριστικό, αλλά συχνά ανεπαρκώς εφαρμοσμένο. Όλα τα CDN δηλώνουν την παρουσία συμπίεσης ως χαρακτηριστικό επιτάχυνσης. Αλλά αν κοιτάξετε με περισσότερες λεπτομέρειες, οι ελλείψεις γίνονται σαφείς:

  • μπορούν να χρησιμοποιηθούν χαμηλοί βαθμοί για δυναμική συμπίεση - 5-6 (για παράδειγμα, για gzip το μέγιστο είναι 9).
  • η στατική συμπίεση (αρχεία στην κρυφή μνήμη) δεν χρησιμοποιεί πρόσθετες λειτουργίες (για παράδειγμα, zopfi ή brotli με βαθμό 11)
  • Δεν υπάρχει υποστήριξη για αποτελεσματική συμπίεση brotli (εξοικονομώντας περίπου 20% σε σύγκριση με το gzip).

Εάν χρησιμοποιείτε ένα CDN, αξίζει να ελέγξετε αυτά τα λίγα σημεία: πάρτε το αρχείο που προήλθε από το CDN, καταγράψτε το συμπιεσμένο του μέγεθος και συμπιέστε το χειροκίνητα για σύγκριση (μπορείτε να χρησιμοποιήσετε κάποια ηλεκτρονική υπηρεσία με υποστήριξη brotli, για παράδειγμα vsszhat.rf).

2. Ρύθμιση κεφαλίδων προσωρινής αποθήκευσης πελάτη

Επίσης μια απλή δυνατότητα επιτάχυνσης: προσθήκη κεφαλίδων για προσωρινή αποθήκευση περιεχομένου από τον πελάτη (πρόγραμμα περιήγησης). Η πιο πρόσφατη κεφαλίδα είναι ο έλεγχος της κρυφής μνήμης, η παλιά έχει λήξει. Επιπλέον, μπορεί να χρησιμοποιηθεί το Etag. Το κύριο πράγμα είναι ότι η μέγιστη ηλικία ελέγχου της κρυφής μνήμης είναι αρκετά μεγάλη (από ένα μήνα ή περισσότερο).

Τα CDN μπορούν να μειώσουν την τιμή μέγιστης ηλικίας, αναγκάζοντας τον χρήστη να επαναφορτώνει το στατικό περιεχόμενο πιο συχνά. Δεν είναι σαφές με τι συνδέεται αυτό: την επιθυμία να αυξηθεί η επισκεψιμότητα στο δίκτυο ή να αυξηθεί η συμβατότητα με ιστότοπους που δεν γνωρίζουν πώς να επαναφέρουν την προσωρινή μνήμη. Για παράδειγμα, ο προεπιλεγμένος χρόνος προσωρινής αποθήκευσης κεφαλίδας Cloudflare είναι 1 ώρα, ο οποίος είναι πολύ χαμηλός για αμετάβλητα στατικά δεδομένα.

3. Βελτιστοποίηση εικόνας

Δεδομένου ότι το CDN αναλαμβάνει τις λειτουργίες της προσωρινής αποθήκευσης και της προβολής εικόνων, θα ήταν λογικό να βελτιστοποιηθούν από την πλευρά του CDN και να προβληθούν στους χρήστες με αυτήν τη μορφή. Ας κάνουμε μια κράτηση αμέσως ότι αυτή η δυνατότητα είναι διαθέσιμη μόνο για τους τύπους CDN 2, 3 και 5.

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

Γενικά, υπάρχουν δύο τύποι τέτοιων βελτιστοποιήσεων: με απώλεια ποιότητας και χωρίς απώλεια ποιότητας. Τα CDN συνήθως προσπαθούν να χρησιμοποιούν βελτιστοποίηση χωρίς απώλειες προκειμένου να αποφύγουν πιθανά παράπονα πελατών σχετικά με αλλαγές στην ποιότητα της εικόνας. Σε τέτοιες συνθήκες, το κέρδος θα είναι ελάχιστο. Στην πραγματικότητα, συχνά το επίπεδο ποιότητας JPEG είναι πολύ υψηλότερο από το απαραίτητο και μπορείτε με ασφάλεια να επανασυμπιέσετε με χαμηλότερο επίπεδο ποιότητας χωρίς να θέσετε σε κίνδυνο την εμπειρία χρήστη. Από την άλλη πλευρά, είναι δύσκολο να καθοριστεί το επίπεδο ποιότητας και οι ρυθμίσεις καθολικά για όλες τις πιθανές εφαρμογές Ιστού, επομένως τα CDN χρησιμοποιούν πιο συντηρητικές ρυθμίσεις σε σύγκριση με εκείνες που μπορούν να εφαρμοστούν λαμβάνοντας υπόψη το πλαίσιο (σκοπός εικόνων, τύπος εφαρμογής Ιστού , και τα λοιπά.)

4. Βελτιστοποίηση της σύνδεσης TLS

Η περισσότερη κίνηση σήμερα ταξιδεύει μέσω συνδέσεων TLS, πράγμα που σημαίνει ότι ξοδεύουμε επιπλέον χρόνο στη διαπραγμάτευση TLS. Πρόσφατα, αναπτύχθηκαν νέες τεχνολογίες για την επιτάχυνση αυτής της διαδικασίας. Για παράδειγμα, πρόκειται για κρυπτογραφία EC, TLS 1.3, προσωρινή μνήμη και εισιτήρια συνεδρίας, επιτάχυνση κρυπτογράφησης υλικού (AES-NI) κ.λπ. Η σωστή ρύθμιση του TLS μπορεί να μειώσει το χρόνο σύνδεσης σε 0-1 RTT (χωρίς να υπολογίζονται τα DNS και TCP ).

Με το σύγχρονο λογισμικό, δεν είναι δύσκολο να εφαρμόσετε τέτοιες πρακτικές μόνοι σας.

Δεν εφαρμόζουν όλα τα CDN βέλτιστες πρακτικές TLS. Μπορείτε να το ελέγξετε μετρώντας το χρόνο σύνδεσης TLS (για παράδειγμα, στο Webpagetest). Ιδανικό για νέα σύνδεση - 1RTT, 2RTT - μέσο επίπεδο, 3RTT και περισσότερο - κακό.

Θα πρέπει επίσης να σημειωθεί ότι ακόμη και όταν χρησιμοποιείται TLS σε επίπεδο CDN, ο διακομιστής με την web εφαρμογή μας πρέπει επίσης να επεξεργάζεται το TLS, αλλά από την πλευρά του CDN, επειδή η κίνηση μεταξύ διακομιστή και CDN περνά στο δημόσιο δίκτυο. Στη χειρότερη περίπτωση, θα έχουμε διπλές καθυστερήσεις σύνδεσης TLS (η πρώτη στον κεντρικό υπολογιστή CDN, η δεύτερη μεταξύ αυτού και του διακομιστή μας).

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

5. Μειώστε τις καθυστερήσεις σύνδεσης

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

Στην πράξη, οι προτεραιότητες για διαφορετικά δίκτυα μπορεί να είναι σε συγκεκριμένες περιοχές. Για παράδειγμα, τα ρωσικά CDN θα έχουν περισσότερα σημεία παρουσίας στη Ρωσία. Οι Αμερικανοί θα αναπτύξουν πρώτα από όλα το δίκτυο στις ΗΠΑ. Για παράδειγμα, ένα από τα μεγαλύτερα CDN Cloudflare έχει μόνο 2 σημεία στη Ρωσία - τη Μόσχα και την Αγία Πετρούπολη. Δηλαδή, μπορούμε να εξοικονομήσουμε το πολύ περίπου 10 ms λανθάνοντος χρόνου σε σύγκριση με την απευθείας τοποθέτηση στη Μόσχα.

Τα περισσότερα δυτικά CDN δεν έχουν καθόλου σημεία στη Ρωσία. Με τη σύνδεση σε αυτά, μπορείτε μόνο να αυξήσετε τις καθυστερήσεις για το ρωσικό κοινό σας.

6. Βελτιστοποίηση περιεχομένου (ελαχιστοποίηση, δομικές αλλαγές)

Το πιο περίπλοκο και τεχνολογικά προηγμένο σημείο. Η αλλαγή περιεχομένου κατά την παράδοση μπορεί να είναι πολύ επικίνδυνη. Ακόμα κι αν πάρουμε την ελαχιστοποίηση: η μείωση του πηγαίου κώδικα (λόγω επιπλέον χώρων, ασήμαντων δομών κ.λπ.) μπορεί να επηρεάσει την απόδοσή του. Αν μιλάμε για πιο σοβαρές αλλαγές - μετακίνηση του κώδικα JS στο τέλος του HTML, συγχώνευση αρχείων κ.λπ. - ο κίνδυνος διακοπής της λειτουργικότητας του ιστότοπου είναι ακόμη μεγαλύτερος.

Επομένως, μόνο ορισμένα CDN τύπου 5 το κάνουν αυτό. Φυσικά, δεν θα είναι δυνατό να αυτοματοποιηθούν όλες οι αλλαγές που απαιτούνται για την επιτάχυνση των πραγμάτων—απαιτείται μη αυτόματη ανάλυση και βελτιστοποίηση. Για παράδειγμα, η αφαίρεση του αχρησιμοποίητου ή διπλότυπου κώδικα είναι μια μη αυτόματη εργασία.

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

Υποστήριξη για δυνατότητες επιτάχυνσης κατά τύπο CDN

Ας ρίξουμε λοιπόν μια ματιά στις πιθανές ευκαιρίες επιτάχυνσης που παρέχουν οι διαφορετικοί τύποι CDN.

Για ευκολία, επαναλαμβάνουμε την ταξινόμηση.

  1. Δωρεάν CDN για τη διανομή βιβλιοθηκών JS (MaxCDN, Google. Yandex).
  2. CDN υπηρεσιών για βελτιστοποίηση πελατών (για παράδειγμα, Google Fonts για γραμματοσειρές, Cloudinary, Cloudimage για εικόνες).
  3. CDN για στατική βελτιστοποίηση και βελτιστοποίηση πόρων στο CMS (διαθέσιμο σε Bitrix, WordPress και άλλα).
  4. CDN γενικής χρήσης (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN για επιτάχυνση ιστότοπου (Cloudflare, Imperva, Airi).

Τώρα ας συγκρίνουμε τα χαρακτηριστικά και τους τύπους του CDN.

Ευκαιρία
Τύπος 1
Τύπος 2
Τύπος 3
Τύπος 4
Τύπος 5

Συμπίεση κειμένου
+–
-
+–
+–
+

Κεφαλίδες κρυφής μνήμης
+
+
+
+
+

Εικόνες
-
+–
+–
-
+

TLS
-
-
-
+–
+

Καθυστερήσεις
-
-
-
+
+

περιεχόμενα
-
-
-
-
+

Σε αυτόν τον πίνακα, το "+" χρησιμοποιείται για να υποδείξει την πλήρη υποστήριξη, το "-" είναι χωρίς υποστήριξη και το "+-" είναι μερική υποστήριξη. Φυσικά, μπορεί να υπάρχουν αποκλίσεις από αυτόν τον πίνακα στην πραγματικότητα (για παράδειγμα, κάποιο CDN γενικής χρήσης θα εφαρμόσει λειτουργίες για τη βελτιστοποίηση των εικόνων), αλλά για μια γενική ιδέα είναι χρήσιμο.

Αποτελέσματα της

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

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

Είναι πιθανό η χρήση ενός CDN αυτή τη στιγμή να επιβραδύνει τον χρόνο φόρτωσης του ιστότοπού σας.

Ως γενική σύσταση, μπορούμε να επικεντρωθούμε στα εξής: μελετήστε το κοινό σας, προσδιορίστε τη γεωγραφική του εμβέλεια. Εάν το κύριο κοινό σας είναι συγκεντρωμένο σε ακτίνα 1-2 χιλιάδων χιλιομέτρων, δεν χρειάζεστε ένα CDN για τον κύριο σκοπό του - τη μείωση του λανθάνοντος χρόνου. Αντίθετα, μπορείτε να τοποθετήσετε τον διακομιστή σας πιο κοντά στους χρήστες σας και να τον ρυθμίσετε σωστά, λαμβάνοντας τις περισσότερες από τις βελτιστοποιήσεις που περιγράφονται στο άρθρο (δωρεάν και μόνιμες).

Σε περίπτωση που το κοινό σας είναι πραγματικά γεωγραφικά κατανεμημένο (ακτίνα μεγαλύτερη από 3000 χιλιόμετρα), η χρήση ενός ποιοτικού CDN θα είναι πραγματικά χρήσιμη. Ωστόσο, πρέπει να κατανοήσετε εκ των προτέρων τι ακριβώς μπορεί να επιταχύνει το CDN σας (δείτε τον πίνακα δυνατοτήτων και την περιγραφή τους). Ωστόσο, η επιτάχυνση ιστότοπου εξακολουθεί να παραμένει μια πολύπλοκη εργασία που δεν μπορεί να επιλυθεί με τη σύνδεση ενός CDN. Εκτός από τις παραπάνω βελτιστοποιήσεις, τα πιο αποτελεσματικά μέσα επιτάχυνσης παραμένουν πίσω από το CDN: βελτιστοποίηση του τμήματος διακομιστή, προηγμένες αλλαγές στο τμήμα πελάτη (αφαίρεση αχρησιμοποίητου κώδικα, βελτιστοποίηση της διαδικασίας απόδοσης, εργασία με περιεχόμενο, γραμματοσειρές, προσαρμοστικότητα κ.λπ. )

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο