Μετάβαση στο cloud από VPS ή on-prem: checklist για ελληνικές εταιρείες

· 5 λεπτά ανάγνωσης · aws · migration

Οι περισσότερες μεταβάσεις δεν αποτυγχάνουν την ημέρα της μεταφοράς. Αποτυγχάνουν τις εβδομάδες πριν, όταν κανείς δεν κατέγραψε το cron job στον παλιό server. Αυτό είναι το checklist που ακολουθούμε με ελληνικές ομάδες που πάνε σε AWS, GCP ή Azure.

Πολλές ελληνικές εταιρείες τρέχουν ακόμα το production σε ένα VPS, σε έναν τοπικό πάροχο hosting ή σε servers μέσα στο γραφείο. Δουλεύει μια χαρά, μέχρι τη μέρα που δεν δουλεύει: ο server γέμισε, ο άνθρωπος που τον έστησε έφυγε, ή ένας μεγάλος πελάτης ρωτάει πού είναι τα backups και τι γίνεται αν πέσει το data center.

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

1. Αποφασίστε αν αξίζει

Πριν από οποιαδήποτε τεχνική δουλειά, γράψτε γιατί μεταφέρεστε και πόσο πρέπει να κοστίζει μετά. Καλοί λόγοι: χρειάζεστε redundancy που δεν μπορείτε να στήσετε μόνοι σας, μεγαλώνετε πιο γρήγορα από τους servers σας, το ζητάει ένας πελάτης ή ένας κανονισμός, ή φεύγουν οι άνθρωποι που ξέρουν το παλιό setup. Αδύναμος λόγος: «όλοι είναι στο cloud». Ένα καλοστημένο VPS μπορεί να βγαίνει φθηνότερο από ένα κακοστημένο cloud setup, και μια μετάβαση που διπλασιάζει τον λογαριασμό χωρίς να βελτιώνει την αξιοπιστία είναι βήμα προς τα πίσω.

Κάντε μια χοντρική εκτίμηση του μηνιαίου κόστους πριν ξεκινήσετε, και αποφασίστε ποιος θα έχει την ευθύνη αυτού του νούμερου μετά το go-live.

2. Καταγράψτε τα πάντα

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

Τα IP whitelists είναι η πιο συνηθισμένη παγίδα για τις ελληνικές εταιρείες. Ξεκινήστε αυτά τα αιτήματα νωρίς.

3. Διαλέξτε region

Στο AWS, οι συνήθεις επιλογές για ελληνικά workloads είναι η Φρανκφούρτη (eu-central-1) και το Μιλάνο (eu-south-1). Και τα δύο κρατούν τα δεδομένα στην ΕΕ και απέχουν λίγες δεκάδες milliseconds από την Αθήνα, που αρκούν για σχεδόν κάθε web εφαρμογή. Η Φρανκφούρτη έχει τον μεγαλύτερο κατάλογο υπηρεσιών και συνήθως παίρνει πρώτη τα νέα features.

Η AWS έχει επίσης ανακοινώσει Local Zone στην Αθήνα. Ένα Local Zone επεκτείνει ένα parent region με compute και storage κοντά στους χρήστες σας, αλλά προσφέρει μόνο μέρος των υπηρεσιών. Έχει νόημα για κομμάτια του συστήματος που θέλουν πολύ χαμηλό latency ή δεδομένα που πρέπει να μείνουν στη χώρα, ενώ η υπόλοιπη πλατφόρμα τρέχει στο parent region. Ελέγξτε ποιες υπηρεσίες είναι διαθέσιμες πριν το βάλετε στο σχέδιό σας.

Σε GCP και Azure η λογική είναι ίδια: το κοντινότερο EU region με τις υπηρεσίες που χρειάζεστε, και όλα, μαζί με logs και backups, μέσα στην ΕΕ. Η σύγκριση AWS, GCP και Azure καλύπτει την ίδια την επιλογή παρόχου.

4. Στήστε τα θεμέλια πριν μετακινηθεί οτιδήποτε

5. Διαλέξτε compute: VMs, ECS ή Kubernetes

Εδώ πολλές μεταβάσεις ξοδεύουν περισσότερα απ' όσο πρέπει. Η ειλικρινής συμβουλή:

Αν μεταφέρετε πέντε services, μάλλον δεν χρειάζεστε ακόμα Kubernetes. Αν μεταφέρετε πενήντα, μάλλον ναι.

6. Σχεδιάστε τη μεταφορά της βάσης

Η βάση καθορίζει πόσο downtime θα έχετε. Ένα dump σε maintenance window είναι απλό και αρκεί για μικρές βάσεις. Για οτιδήποτε μεγαλύτερο ή με περισσότερη κίνηση, κάντε συνεχές replication στη νέα managed βάση (με native replication ή AWS Database Migration Service), αφήστε τη να συγχρονιστεί, και αλλάξτε με πάγωμα εγγραφών μόνο για δευτερόλεπτα ή λίγα λεπτά.

7. Κάντε πρόβα, μετά τη μεταφορά

  1. Κατεβάστε τα DNS TTL σε ένα-δύο λεπτά τουλάχιστον μία μέρα πριν.
  2. Κάντε ολόκληρη δοκιμή σε staging, με χρονόμετρο και το πραγματικό runbook.
  3. Τη μέρα της μεταφοράς: πάγωμα εγγραφών, αναμονή μέχρι να συγχρονιστεί το replication, αλλαγή DNS ή load balancer, και έλεγχος με πραγματικά requests.
  4. Κρατήστε το παλιό περιβάλλον όρθιο και ανέγγιχτο για λίγες μέρες, σε περίπτωση που χρειαστεί rollback.

Διαλέξτε ώρα ήσυχη για την επιχείρησή σας, όχι για τους μηχανικούς. Για πολλά ελληνικά καταναλωτικά προϊόντα αυτό είναι πρωί καθημερινής, όχι Παρασκευή βράδυ.

8. Οι πρώτες 30 μέρες

Πόσο διαρκεί

Μια εφαρμογή με μία βάση συνήθως μεταφέρεται σε λίγες εβδομάδες. Μια εταιρεία με αρκετά services, περιβάλλοντα και εξωτερικά integrations θέλει συνήθως δύο έως έξι μήνες, με τον περισσότερο χρόνο σε απογραφή, θεμέλια και δοκιμές και όχι στην ίδια τη μεταφορά. Η απογραφή του βήματος 2 είναι αυτή που σας δίνει ρεαλιστική εκτίμηση, και την ησυχία ότι ξέρετε τι κάνετε.

Συχνές ερωτήσεις

Πόσο διαρκεί η μετάβαση στο cloud;

Μια εφαρμογή με μία βάση συνήθως θέλει λίγες εβδομάδες. Εταιρείες με αρκετά services, περιβάλλοντα και integrations χρειάζονται συνήθως δύο έως έξι μήνες, κυρίως για απογραφή, θεμέλια και δοκιμές.

ECS ή Kubernetes για ένα startup;

Με λίγα services, managed containers όπως ECS σε Fargate ή Cloud Run είναι συνήθως φθηνότερα και απλούστερα. Το Kubernetes αξίζει με πολλά services και αρκετές ομάδες που κάνουν deploy ανεξάρτητα.

Ποιο AWS region είναι καλύτερο για την Ελλάδα;

Η Φρανκφούρτη (eu-central-1) και το Μιλάνο (eu-south-1) είναι οι συνήθεις επιλογές, και τα δύο στην ΕΕ και λίγες δεκάδες milliseconds από την Αθήνα. Το Athens Local Zone μπορεί να φιλοξενήσει κομμάτια που θέλουν πολύ χαμηλό latency, δίπλα σε ένα parent region.