diff --git a/Mongo_&_docker.adoc b/Mongo_&_docker.adoc deleted file mode 100644 index e14a8b3..0000000 --- a/Mongo_&_docker.adoc +++ /dev/null @@ -1,122 +0,0 @@ -= Εργασία Εξαμήνου -Καραμιχάλης Κωνσταντίνος , Κυριακάκος Παναγιώτης, Ιωαννίδου Βασιλική -:nofooter: -:toc: right -:toc-title: Πίνακας περιεχομένων -:toclevels: 4 -:sectnums: -:data-uri: -:icons: font -:ext-relative: .adoc - -{empty} + - -toc::[] -== Σκοπός εργασίας -[.text-justify] -Η εργασία που επιλέχθηκε να πργματοποιηθεί στα πλαίσια του εργαστήρίου του μαθήματος Υ.Ν.Υ, ήταν η δημιουργία και η ανάπτυξη μία βάσης δεδομένων τύπου NoSQL, και -συγκεκριμένα η MongoDB με χρήση των εργαλέιων της πλατφόρμας link:docker{ext-relative}[Docker]. - -=== Αρχικοί στόχοι -[.text-justify] -Στο ξεκίνημα της ανάλυσης και ανάπτυξης της εργασίας μας θέσαμε αρχικούς στόχους : -[square] -* Σχετική εκμάθηση λειτουργίας της link:mongodb{ext-relative}[MongoDB.] -* Δημιουργία Repica set. -* Δημιουργία και ανάπτυξη εφαρμογής Minio. -* Σύνδεση των παραπάνω ώς μία εικονικά ενιαία εφαρμογή για τον τελικό χρήστη. - -[.text-center] -image::./doc_images/mongo_dbs.bmp[950,950] - -== Δημιουργία του Docker-compose.yaml -=== Δημιουργία Δικτύων -Ξεκινήσαμε με την δημιουργία κατάλληλων δικτυώσεων. -[square] -* Ένα δίκτυο για κάθε replica set (1 primary 2 secondary). -* Ένα δίκτυο που θα βρίσκονται όλα τα primary μαζί. - -=== Δημιουργία Container -[.text-justify] -Δημιουργήθηκαν 12 container και ποιο συγκεκριμένα 4 Replica Set των 3 container έκαστος. + -Για κάθε μέλος του Replica Set δόθηκαν οι κατάλλήλες ρυθμίσεις για την προετοιμασία ένταξης του στην ομάδα του. - - -[NOTE] -[.text-justify] -*_Το επιθυμητό αποτέλεσμα ήταν να δημιουργηθεί μιά δυναμική εφαρμογή κατα την οποία ο διαχειριστής -απλά θα επιλέγει τον αριθμό των replica set και όχι το στατικό αποτέλεσμα που καταλήξαμε._* - -==== Ονοματοδοσία -Σε κάθε container δόθηκε ένα μοναδικό όνομα κατάλληλο για την δική μας διευκόλυνση και ευκολία. + -[square] -* Primary1 -* secondary1_1 -* secondary1_2 -* Primary2 -* κοκ. - -==== Image -Ως docker image του κάθε container επιλέχθηκε το official MongoDB image που υπήρχε στο Docker Hub. + -mongo: - -==== Ports -[.text-justify] -Σε κάθε container αντιστοιχήθηκε η port 27017 με μία port του εκάστοτε host που έτρεχε και για δική μας ευκολία έγινε πάλι ομαδοποίηση ανά replica set. -[square] -* Primary1 = 10001 -* secondary1_1 = 10002 -* secondary1_2 = 10003 -* Primary2 = 20001 -* κοκ. - -==== Volumes -[.text-justify] -Δημιουργήθηκε σε όλο το σμήνος που είχαμε ένας φάκελος με τα απαράιτητα αρχεία και έγινε mount σε κάθε container + -[.text-left] - ./sys_files:/sys_files - -==== Networks -[.text-justify] -Δόθηκαν οι κατάλληλες ρυθμίσεις για την ένταξη του στο ανάλογο δίκτυο. Έτσι το κάθε primary που γίνεται deploy - ανήκει σε 2 δίκτυα ( το δίκτυο των Primary και το δίκτυο του Replica set) ενώ τα secondary μόνο στο δίκτυο της Replica που ακήκουν. - - primary_network: - replica_setΧ_network: - -==== Παράμετροι Deploy -Στις παραμέτρους του Deploy χρησιμοποιήσαμε την πολιτική Restart με καθυστέρηση 10 δευτερολέπτων, μέγιστο αριθμό επαναλήψεων 10 και με κενό μεταξύ τους 60 δευτερόλεπτα. + - - restart_policy: - delay: 10s - max_attempts: 10 - window: 60s - -==== Εντολή έναρξης -[.text-justify] -Για εντολή έναρξης της βάσης δοκιμάστην διάφορες επιλογές όπως command, - Entrypoint, αλλά ενώ κάποιες επιλογές εξυπηρετούσαν τον σκοπό τους ταυτόχρονα δημιουργούσαν πρόβλημα σε κάποιες άλλες. Έτσι καταλληξαμε στην χρήση την εντολής command - με χρήση ορισμάτων μόνος ως προς την ονοματοδοδία και την ενεργοποίησει του Replica Set - - command: ["mongod", "--replSet", "rep-setX"] - -== Σύνδεση και ενεργοποίηση Replica Set -[.text-justify] -Για την σύνδεση και την ενεργοποίηση των replica set δημιουργήθηκε ένα script το οποίο ελέγχει ένα προς ένα όλα τα container είναι ενεργοποιημένα, - στην συνέχεια αφού ολοκληρώσει τον πρώτο έλεγχο συνεχίζει ελέγχοντας εάν ήταν επιτυχές το ανέβασμα της διεργασίας Mongod σε κάθε container και τέλος - εάν δεν συναντήσει κάποιο πρόβλημα στα παραπάνω προχωράει στην σύνδεση των κατάλληλων container για την δημιουργία των Replica set. - -[TIP] -Τα ονόματα των μελών του swarm και οι διευθύνσεις IP που έχουν, τα ονόματα των container, καθώς και μία οπτική αναπαράσταση των δικτύων μπορεί να βρεθεί στον παρακάτω συνδεσμο: + -[.text-center] -http://83.212.77.43:5555/[Project Dashboard] - -== Μελλοντικοί στόχοι -[.text-justify] -Τέλος θα θέλαμε να συμπληρώσουμε ότι λόγο της πίεσης που δημιουργήθηκε απο τις τελευταίες εξελίξεις ως προς την έκβαση αυτού του εξαμήνου δεν ήταν δυνάτο -να γίνει μία ποιο δομημένη και εμπεριστατωμένη ανάτπυξη της εργάσιας πάρα το μεγάλο ενδιαφέρον που μας προξένησε. -Θα γίνει προσπάθεια συνέχισης του αλλά και ολοκλήρωσης του ανεξάρτητα του μαθήματος, αλλά και ανεξάρτητα απο το εάν - θα συνέχιστει η παροχή των υπολογιστικών πόρων απο τον Ωκεανό. - - -