Ένας ιστότοπος χειρίζεται χίλιους χρήστες. Μετά ένα εκατομμύριο. Καταρρέει; Η επεκτασιμότητα είναι η ικανότητα ενός συστήματος να χειρίζεται αυξανόμενο όγκο εργασίας. Μπορεί να αναπτυχθεί προσθέτοντας πόρους (οριζόντια κλιμάκωση) ή κάνοντας τους υπάρχοντες πόρους πιο ισχυρούς (κάθετη κλιμάκωση). Ένα επεκτάσιμο σύστημα δεν καταρρέει όταν αυξάνεται η ζήτηση.
Η κάθετη κλιμάκωση είναι απλούστερη. Προσθέστε περισσότερη μνήμη RAM, ταχύτερη CPU, μεγαλύτερο δίσκο. Υπάρχουν όμως όρια. Δεν μπορείτε να προσθέσετε άπειρη μνήμη RAM. Η οριζόντια κλιμάκωση είναι πιο δύσκολη. Προσθέστε περισσότερα μηχανήματα και κατανείμετε το φορτίο. Απαιτεί εξισορροπητές φορτίου, κατανεμημένες βάσεις δεδομένων και υπηρεσίες χωρίς κατάσταση. Αλλά μπορεί να κλιμακωθεί σχεδόν χωρίς όριο.
Στρατηγικές κλιμάκωσης
- Οριζόντια: προσθήκη περισσότερων διακομιστών
- Κάθετη: αναβάθμιση υπαρχόντων διακομιστών
- Εξισορρόπηση φορτίου: κατανομή της κυκλοφορίας
- Αποθήκευση στην προσωρινή μνήμη: μείωση της επαναλαμβανόμενης εργασίας
- Sharding: διαχωρισμός δεδομένων μεταξύ μηχανημάτων
Η επεκτασιμότητα δεν αφορά μόνο το υλικό. Αφορά την αρχιτεκτονική. Ένα σύστημα με κακό σχεδιασμό δεν θα επεκταθεί, ανεξάρτητα από το πόσους διακομιστές του χρησιμοποιείτε. Ένα καλά σχεδιασμένο σύστημα μπορεί να εξελιχθεί από μια νεοσύστατη επιχείρηση σε μια παγκόσμια πλατφόρμα. Οι αποφάσεις σχεδιασμού που λαμβάνονται νωρίς καθορίζουν πόσο μακριά μπορείτε να φτάσετε.
Comments
No comments yet. Be the first to share a thought.
Leave a comment