Όταν το Redundancy δεν Αρκεί: Η Διακοπή των Σιδηροδρόμων και οι Εξαρτήσεις του Control Plane
Πότε το Multi-Cloud δεν αρκεί
Πολλοί πιστεύουν πως αν μοιράσουν τα workloads τους σε AWS, Google Cloud και σε δικό τους hardware, αυτόματα εξασφαλίζουν ανθεκτικότητα. Στην πράξη όμως, το multi-cloud δεν προστατεύει από όλα τα σενάρια.
Αυτό έπαθε και η Railway, μια πλατφόρμα cloud deployment. Παρότι τα applications των πελατών της έτρεχαν ήδη σε τρεις διαφορετικές υποδομές, ένα απλό λάθος από την πλευρά του Google Cloud ήταν αρκετό για να προκαλέσει εκτεταμένη διακοπή.
Η κρυφή εξάρτηση
Σε κάθε cloud πλατφόρμα υπάρχει ένα κρίσιμο κομμάτι που δεν είναι τόσο εμφανές: το control plane. Εκεί βρίσκονται οι πληροφορίες για το πού βρίσκεται κάθε application και πώς πρέπει να δρομολογείται το traffic.
Η Railway είχε το control plane της μόνο στο Google Cloud. Όταν το account της αναστάληκε αυτόματα από την πλατφόρμα, το control plane έπαψε να λειτουργεί. Οι edge proxies που διαχειρίζονται το traffic είχαν αποθηκεύσει τοπικά τις πληροφορίες για λίγες ώρες, αλλά όταν έληξε το cache, όλα τα requests έπεφτα σε 404 – ακόμα και όταν τα workloads σε AWS και στο δικό τους hardware ήταν λειτουργικά.
Η αλυσίδα αποτυχιών
Η διακοπή δεν σταμάτησε εκεί. Η μεγάλη ποσότητα αποτυχημένων requests έκανε το GitHub να ενεργαλειοποιεί τον ρυθμιστικό μηχανισμό του, περιορίζοντας τις OAuth requests της Railway. Το αποκένωμα αυτό στερούσε από τους users την πρόσβαση και εσύρασε την διαcoπη ακόμα σε 8 ώρες.
Το πραγματικό πρόβλημα
Η Railway είχε διανείμει μόνο τα workloads της. Το control plane όμως παραμένει κρίσιμο και όταν βρίσκεται σε ένα μόνο cloud, μπορεί να λειτουργήσει όπως μια single point of failure.
Τι μπορείς να κάνεις
- Το control plane πρέπει να είναι redundant όπως και το data plane.
- Το caching μπορεί να κερδίσει χρόνο, αλλά δεν είναι μακροπρόθεσμα λύση.
- Οι cascading failures πρέπει να λαμβάνονται υπόψη στην incident response.
- Να έχεις άμεση επικοινωνία με το support του κάθε cloud provider, ώτιη du να εκπανυλεγ σε αναστολή του accounts από αυτόμενες μηχανές.
Συμπέρασμα
Το multi-cloud δεν είναι μόνο η διανομή των workloads. Αν το control plane δεν έχει το ίδιο επίπεδο redundancy, τότε η multi-cloud αρχιτεκτονική μπορεί να αποτύχει ακόμα και όταν τα workloads είναι ακόμα λειτουργικά.