[grnog] Docker infrastructure creation

Alexandros Kosiaris akosiaris at gmail.com
Thu Jun 16 12:01:28 CEST 2016


Απο την πλευρά μου να πω ότι το docker γενικά θα πρέπει να το έχεις
υπόψη μου μονάχα ως ένα building block ενός μεγαλύτερου συνόλου.
Εξηγούμαι

Έβαλες ήδη περιορισμό "2-3 τύποι containers", οπότε θεωρώ ότι θέλεις
να έχεις έλεγχο πάνω σε τι containers θα γίνονται deploy στην υποδομή
και όχι ότι container υπάρχει στο public docker registry (το οποίο
θεωρώ λογικό). Αυτό σημαίνει ότι θα πρέπει να σηκώσεις δικό σου
private docker registry, το οποίο δεν είναι δύσκολο αλλά πρέπει να
γίνει με την περιορισμό που έβαλες. Το οποίο βάζει και την ανάγκη να
στήσεις και image building infrastructure. Το τελευταίο δεν σημαίνει
απαραίτητα ανάγκη για φυσική υποδομή αλλά περισσότερο κάποιες
διαδικασίες. Πχ θα χρησιμοποιήσεις Dockerfiles (ισχυρά προτεινόμενο) ή
κάτι άλλο? Μπορώ απλά να δώσω την δική μας οπτική που είναι οι χρήστες
να ανεβάζουν Dockerfiles σε ένα git repo, υποδομή δική μας να κάνει
fetch το repo (που έχει μέσα και το Dockerfile) να κάνει build και
upload στο registry το image. Εάν θες περισσότερες πληροφορίες κάποια
βασικά μπορείς να βρεις εδώ
https://wikitech.wikimedia.org/wiki/Tools_Kubernetes#Docker_Images.

Μιλάς για container config. Απλά να πω, σε περίπτωση που δεν είναι ήδη
ξεκάθαρο, ότι τα containers είναι σχεδιασμένα να είναι εφήμερα
(δηλαδή, ζωή λεπτών μέχρι το πολύ ημερών - όχι εβδομάδων) και κατά
συνέπεια η οποιαδήποτε διαχείριση config σε running containers είναι
λανθασμένη ιδέα. Διαχείριση του configuration των container images
πάλι, είναι κάτι που κάνει νόημα αλλά πρέπει να είναι builtin κομμάτι
του image building process. Τα οποία images θα πρέπει να ανεβάζεις στο
private docker registry σου μετά άρα καλό είναι να είναι ένα
integrated solution όλο αυτό. Εδώ έχει ενδιαφέρον να δεις τι κάνει το
heroku ώστε να δεις τους διάφορους τρόπους με τους οποίους περνάει
μέρος του configuration ως ENV variables στο container την ώρα της
εκκίνησης πέρα από τις παραπάνω δικές μας ιδέες.

Μιλάς για φυσικά μηχανήματα (πληθυντικός). Το docker γενικά είναι
single host. Τρέχει containers σε ένα host και φροντίζει για το
lifecycle τους και για τις δικτυακές τους ανάγκες (αυτό δεν το κάνει
και με τον ομορφότερο τρόπο) και χρειάζεται άλλες λύσεις ώστε να κάνει
scale σε παραπάνω από ένα φυσικά μηχανήματα. Πχ το kubernetes ή τα
marathon/mesos. Γενικά είναι κομμάτια που ακόμη έχουν ιδιαίτερη
ανάπτυξη, δεν πολυθεωρούνται σταθερά και κατά συνέπεια είναι fast
moving targets. Στο WMF υπάρχει ήδη kubernetes installation σε
experimental επίπεδο και υπάρχουν κάποιες μικρές εφαρμογές που τρέχουν
πάνω του. Στους στόχους είναι αυτό να προχωρήσει και σε επίπεδο
παραγωγής.

Δεν μας έχεις πει ποιοι είναι οι πελάτες τους private cloud. Εσύ; εσύ
και άλλοι 3; Η μισή εταιρεία; Κάτι μεταξύ όλων των παραπάνω;

Γιατί μετά ανάλογα το παραπάνω αρχίζουν και αλλάζουν πράγματα και
μπαίνουν στο παιχνίδι όλα αυτά που αναφέρει ο Γιώργος (monitoring,
service discovery κτλ). Γενικά αν και το docker έχει ακουστεί πολύ τον
τελευταίο καιρό, υπενθυμίζω ότι είναι ένα building block για Service
Oriented Architectures. Είναι περίπου ότι είναι το kvm ή το xen ή το
vmware για virtualization clusters. Θέλει και άλλα πράγματα τριγύρω
για να σηκώσει υπηρεσίες. Και έχουν κόστος όλα αυτά (και το έχουμε δει
από πρώτο χέρι).

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

2016-06-15 22:26 GMT+03:00 Kostas Zorbadelos <kzorba at otenet.gr>:
>
> Καλησπέρα,
>
> γνωρίζω ότι στη λίστα μάλλον υπάρχουν σχετικοί άνθρωποι για
> αυτό. Ενδιαφέρομαι να φτιάξω μια υποδομή για deployment docker
> containers. Θα το λέγαμε μάλλον ένα μικρό private cloud ή κάτι τέτοιο. Ο
> στόχος μου είναι η διαχείριση των containers και το config τους να είναι
> όσο αυτοματοποιημένο γίνεται, ώστε να είναι εύκολο σε μια ομάδα
> operations να φτιάξει ένα container ενός συγκεκριμένου τύπου (θα
> υπάρχουν 2-3 τύποι containers) και να το κάνει deploy σε ένα φυσικό
> μηχάνημα. Το μόνο που έχω στα χέρια μου είναι τα φυσικά μηχανήματα.
>
> Προσανατολίζομαι στη χρήση Ansible (ή Vagrant που ακούσαμε πρόσφατα
> on-top of) έχοντας hardcoded σε inventory τα φυσικά μου μηχανήματα και
> το δικτυακό config τους. Έχει νόημα η δημιουργία ενός Openstack setup;
> Είναι αρκετά ώριμο αυτό ώστε να δημιουργηθεί από έναν άνθρωπο σε εύλογο
> χρονικό διάστημα; Έχετε άλλες προτάσεις;
>
> Για όποιον έχει προτάσεις, μπορεί να επικοινωνήσει μαζί μου και
> off-list.
>
> Ευχαριστώ,
> Κώστας
>
> --
> Kostas Zorbadelos       http://gr.linkedin.com/in/kzorba


More information about the grnog-members mailing list