Infrastructure as Code και GitOps Ελλάδα

Υπηρεσίες DevOps · Υποδομή ως κώδικας · Ελλάδα

Κάθε πόρος υποδομής ορισμένος σε κώδικα, με review

Infrastructure as Code στην Ελλάδα σημαίνει ότι η υποδομή σας περιγράφεται σε κώδικα, με Terraform ή OpenTofu για τους πόρους και Ansible για τη ρύθμιση, ώστε κάθε αλλαγή να περνά από review, όπως ο κώδικας της εφαρμογής. Προσθέτουμε GitOps με ArgoCD ή Flux, ώστε η επιθυμητή κατάσταση να ζει στο git και να εφαρμόζεται αυτόματα, με ανίχνευση drift όταν κάποιος αλλάξει κάτι χειροκίνητα.

  • Ανίχνευση drift όταν κάτι αλλάζει εκτός git
  • Ανακατασκευή περιβάλλοντος από κώδικα σε disaster recovery
  • VPS 1–8 ώρες/μήνα· dedicated 5–10 ώρες/μήνα ανάλογα με το πλάνο· GPU 10 ώρες/μήνα
    Ώρες που περιλαμβάνονται
  • Φρανκφούρτη, στην ΕΕ
    Datacenters
  • σε EUR, με ΦΠΑ 24% διαχωρισμένο στο τιμολόγιο
    Χρέωση

Από χειροκίνητες ρυθμίσεις σε κώδικα

Πολλές υποδομές ξεκινούν με χειροκίνητες αλλαγές: ένα SSH στον server, μια ρύθμιση που κανείς δεν θυμάται ακριβώς. Μεταφέρουμε την περιγραφή της υποδομής σε Terraform ή OpenTofu, τη ρύθμιση λειτουργικού και εφαρμογών σε Ansible, και κρατάμε το state κλειδωμένο, ώστε δύο άτομα να μην εφαρμόζουν αλλαγές ταυτόχρονα. Κάθε αλλαγή περνά από pull request, με review πριν εφαρμοστεί, ακριβώς όπως ο κώδικας της εφαρμογής σας.

  • Terraform ή OpenTofu για πόρους, Ansible για ρύθμιση λειτουργικού
  • State κλειδωμένο, με backend απομακρυσμένο και ιστορικό αλλαγών
  • Κάθε αλλαγή μέσω pull request, με review πριν την εφαρμογή
  • Περιβάλλοντα αναπαράξιμα από κώδικα, όχι από μνήμη ή από wiki

Βέλτιστες πρακτικές που εφαρμόζουμε

Η υποδομή ως κώδικας έχει αξία μόνο αν κανείς δεν την παρακάμπτει χειροκίνητα. Εφαρμόζουμε τη λίστα που ακολουθεί σε κάθε περιβάλλον που παραδίδουμε, με μηδενική ανοχή σε χειροκίνητες αλλαγές στο production, και τη γράφουμε στη δική σας τεκμηρίωση. Χωρίς αυτή την πειθαρχία, ο κώδικας γίνεται απλώς τεκμηρίωση που ξεπερνιέται, όχι η πηγαία αλήθεια της υποδομής σας. Το πρώτο πράγμα που ελέγχουμε σε κάθε παράδοση είναι αν το state file είναι πραγματικά κλειδωμένο κατά την εφαρμογή.

  • Όλα στο git, με review, χωρίς εξαίρεση για «γρήγορες» αλλαγές
  • Immutable infrastructure: αντικατάσταση αντί για τροποποίηση εν κινήσει
  • Καμία χειροκίνητη αλλαγή σε production, ούτε σε επείγουσα κατάσταση
  • Τακτικές δοκιμές disaster recovery, ανακατασκευή πλήρους περιβάλλοντος από κώδικα
  • Ισοτιμία περιβαλλόντων: staging και production ορισμένα με τον ίδιο κώδικα

GitOps: η επιθυμητή κατάσταση ζει στο git

Με ArgoCD ή Flux, το cluster ή η υποδομή σας συγκρίνεται συνεχώς με ό,τι περιγράφει το git repository, και οποιαδήποτε απόκλιση διορθώνεται αυτόματα ή σημειώνεται ως drift. Αυτό σημαίνει ότι μια χειροκίνητη αλλαγή που έγινε βιαστικά σε ένα incident είτε επιστρέφει αυτόματα στην κατάσταση του git, είτε εντοπίζεται αμέσως, αντί να μείνει αόρατη μέχρι το επόμενο incident. Το ίδιο repository γίνεται η μοναδική πηγή αλήθειας, όχι το memory κάποιου μηχανικού.

Οι ώρες που περιλαμβάνονται

Η μεταφορά υποδομής σε κώδικα και η ρύθμιση GitOps μπαίνουν στις μηνιαίες ώρες: 1–8 ώρες σε VPS, 5–10 ώρες σε dedicated servers ανάλογα με το πλάνο και 10 ώρες σε GPU servers. Ζητάτε το έργο από τον πίνακα πελάτη, στις Υπηρεσίες DevOps, με προθεσμία που προτείνετε. Συνήθως ξεκινάμε από το πιο κρίσιμο περιβάλλον και επεκτείνουμε σταδιακά, ώστε να μη διακοπεί η λειτουργία κατά τη μετάβαση. Ό,τι ξεπερνά την ποσόστωση τιμολογείται ξεχωριστά.

Κάθε συνδρομή περιλαμβάνει μηνιαίες ώρες DevOps, Κυβερνοασφάλειας και Προγραμματισμού: 1 ώρα από το πακέτο cPanel Advanced και πάνω, 1–8 ώρες σε VPS και 5–10 ώρες σε αποκλειστικούς διακομιστές ανάλογα με το πλάνο και 10 ώρες σε GPU. Οι ώρες ζητούνται από τον πίνακα πελάτη, δεν μεταφέρονται στον επόμενο μήνα, και ό,τι ξεπερνά το όριο γίνεται δεκτό και χρεώνεται ξεχωριστά.

Περιπτώσεις χρήσης

SaaS με πολλαπλά περιβάλλοντα πελατών

Μια εταιρεία που στήνει ξεχωριστό περιβάλλον ανά πελάτη χρησιμοποιεί Terraform modules, ώστε ένα νέο περιβάλλον να δημιουργείται σε λεπτά, με την ίδια ακριβώς διαμόρφωση κάθε φορά.

Τράπεζα ή fintech με απαιτήσεις audit

Κάθε αλλαγή υποδομής περνά από pull request με έγκριση, και το ιστορικό στο git αποτελεί το αποδεικτικό υλικό για auditors, αντί για χειρόγραφα logs αλλαγών.

Ναυτιλιακή εταιρεία με disaster recovery

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

Πώς δουλεύουμε

  1. Ζητάτε το έργο από τον πίνακα

    Περιγράφετε την τρέχουσα υποδομή σας, πόσο από αυτήν είναι ήδη σε κώδικα, και προτείνετε προθεσμία από τις Υπηρεσίες DevOps.

  2. Ορίζουμε πεδίο και προθεσμία

    Αποφασίζουμε ποιο περιβάλλον μεταφέρεται πρώτο, επιλέγουμε Terraform ή OpenTofu, ArgoCD ή Flux, και εκτιμάμε τις ώρες.

  3. Παραδίδουμε και δοκιμάζουμε την ανακατασκευή

    Γράφουμε τον κώδικα υποδομής, στήνουμε το GitOps pipeline, και δοκιμάζουμε πλήρη ανακατασκευή σε νέο περιβάλλον από τον κώδικα.

  4. Παραδίδουμε με τεκμηρίωση

    Παίρνετε τον κώδικα υποδομής στο repository σας, τη διαδικασία review αλλαγών, το πλάνο disaster recovery και το αποτέλεσμα της δοκιμαστικής ανακατασκευής.

Τεχνολογίες

  • Terraform
  • OpenTofu
  • Ansible
  • ArgoCD
  • Flux
  • SOPS
  • HashiCorp Vault
  • GitHub Actions

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

  • Τι είναι το Infrastructure as Code;

    Είναι η πρακτική να περιγράφετε την υποδομή σας, δηλαδή servers, δίκτυα, βάσεις δεδομένων, σε αρχεία κώδικα αντί να τη ρυθμίζετε χειροκίνητα. Ο κώδικας αυτός μπαίνει σε git, περνά από review, και εφαρμόζεται με εργαλεία όπως το Terraform, ώστε η υποδομή να είναι αναπαράξιμη και ελεγχόμενη.

  • Terraform ή OpenTofu;

    Το OpenTofu είναι το open-source fork του Terraform, συμβατό στη σύνταξη, χωρίς τους περιορισμούς άδειας του HashiCorp Terraform. Για νέα έργα προτείνουμε συχνά OpenTofu· για υπάρχουσες υποδομές ήδη σε Terraform, η μετάβαση είναι απλή αν χρειαστεί.

  • Τι είναι το GitOps και διαφέρει από το CI/CD;

    Το CI/CD ωθεί (push) αλλαγές προς την υποδομή μέσα από pipeline. Το GitOps αντιστρέφει τη λογική: ένας controller μέσα στο cluster τραβά (pull) συνεχώς την επιθυμητή κατάσταση από το git και τη συγκρίνει με την πραγματική, διορθώνοντας αποκλίσεις αυτόματα.

  • Τι είναι το drift detection και γιατί με αφορά;

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

  • Χρειάζομαι Infrastructure as Code αν έχω μόνο λίγους servers;

    Η αξία φαίνεται νωρίτερα απ' όσο νομίζετε: ακόμα και με δύο ή τρεις servers, το να μπορείτε να τους ανακατασκευάσετε ταυτόσημα σε λίγα λεπτά, αντί να θυμάστε βήματα, γλιτώνει χρόνο και λάθη στο πρώτο κιόλας incident.

Μπορείτε να ανακατασκευάσετε την υποδομή σας μόνο από κώδικα;

Μεταφέρουμε την υποδομή σας σε Terraform ή OpenTofu και στήνουμε GitOps, μέσα στις ώρες που περιλαμβάνει η συνδρομή σας.

Οδηγοί για επιχειρήσεις στην Ελλάδα