diff --git a/Mongo_&_docker.html b/Mongo_&_docker.html deleted file mode 100644 index 6415b75..0000000 --- a/Mongo_&_docker.html +++ /dev/null @@ -1,708 +0,0 @@ - - - - - - - - -Εργασία Εξαμήνου - - - - - - -
-
-
-
-


-
- -
-
-
-

1. Σκοπός εργασίας

-
-
-

Η εργασία που επιλέχθηκε να πργματοποιηθεί στα πλαίσια του εργαστήρίου του μαθήματος Υ.Ν.Υ, ήταν η δημιουργία και η ανάπτυξη μία βάσης δεδομένων τύπου NoSQL, και -συγκεκριμένα η MongoDB με χρήση των εργαλέιων της πλατφόρμας Docker.

-
-
-

1.1. Αρχικοί στόχοι

-
-

Στο ξεκίνημα της ανάλυσης και ανάπτυξης της εργασίας μας θέσαμε αρχικούς στόχους :

-
-
-
    -
  • -

    Σχετική εκμάθηση λειτουργίας της MongoDB.

    -
  • -
  • -

    Δημιουργία Repica set.

    -
  • -
  • -

    Δημιουργία και ανάπτυξη εφαρμογής Minio.

    -
  • -
  • -

    Σύνδεση των παραπάνω ώς μία εικονικά ενιαία εφαρμογή για τον τελικό χρήστη.

    -
  • -
-
-
-
-950 -
-
-
-
-
-
-

2. Δημιουργία του Docker-compose.yaml

-
-
-

2.1. Δημιουργία Δικτύων

-
-

Ξεκινήσαμε με την δημιουργία κατάλληλων δικτυώσεων.

-
-
-
    -
  • -

    Ένα δίκτυο για κάθε replica set (1 primary 2 secondary).

    -
  • -
  • -

    Ένα δίκτυο που θα βρίσκονται όλα τα primary μαζί.

    -
  • -
-
-
-
-

2.2. Δημιουργία Container

-
-

Δημιουργήθηκαν 12 container και ποιο συγκεκριμένα 4 Replica Set των 3 container έκαστος.
-Για κάθε μέλος του Replica Set δόθηκαν οι κατάλλήλες ρυθμίσεις για την προετοιμασία ένταξης του στην ομάδα του.

-
-
- - - - - -
- - -Το επιθυμητό αποτέλεσμα ήταν να δημιουργηθεί μιά δυναμική εφαρμογή κατα την οποία ο διαχειριστής -απλά θα επιλέγει τον αριθμό των replica set και όχι το στατικό αποτέλεσμα που καταλήξαμε. -
-
-
-

2.2.1. Ονοματοδοσία

-
-

Σε κάθε container δόθηκε ένα μοναδικό όνομα κατάλληλο για την δική μας διευκόλυνση και ευκολία.

-
-
-
    -
  • -

    Primary1

    -
  • -
  • -

    secondary1_1

    -
  • -
  • -

    secondary1_2

    -
  • -
  • -

    Primary2

    -
  • -
  • -

    κοκ.

    -
  • -
-
-
-
-

2.2.2. Image

-
-

Ως docker image του κάθε container επιλέχθηκε το official MongoDB image που υπήρχε στο Docker Hub.
-mongo:

-
-
-
-

2.2.3. Ports

-
-

Σε κάθε container αντιστοιχήθηκε η port 27017 με μία port του εκάστοτε host που έτρεχε και για δική μας ευκολία έγινε πάλι ομαδοποίηση ανά replica set.

-
-
-
    -
  • -

    Primary1 = 10001

    -
  • -
  • -

    secondary1_1 = 10002

    -
  • -
  • -

    secondary1_2 = 10003

    -
  • -
  • -

    Primary2 = 20001

    -
  • -
  • -

    κοκ.

    -
  • -
-
-
-
-

2.2.4. Volumes

-
-

Δημιουργήθηκε σε όλο το σμήνος που είχαμε ένας φάκελος με τα απαράιτητα αρχεία και έγινε mount σε κάθε container

-
-
-
-
./sys_files:/sys_files
-
-
-
-
-

2.2.5. Networks

-
-

Δόθηκαν οι κατάλληλες ρυθμίσεις για την ένταξη του στο ανάλογο δίκτυο. Έτσι το κάθε primary που γίνεται deploy - ανήκει σε 2 δίκτυα ( το δίκτυο των Primary και το δίκτυο του Replica set) ενώ τα secondary μόνο στο δίκτυο της Replica που ακήκουν.

-
-
-
-
primary_network:
-replica_setΧ_network:
-
-
-
-
-

2.2.6. Παράμετροι Deploy

-
-

Στις παραμέτρους του Deploy χρησιμοποιήσαμε την πολιτική Restart με καθυστέρηση 10 δευτερολέπτων, μέγιστο αριθμό επαναλήψεων 10 και με κενό μεταξύ τους 60 δευτερόλεπτα.

-
-
-
-
restart_policy:
-    delay: 10s
-    max_attempts: 10
-    window: 60s
-
-
-
-
-

2.2.7. Εντολή έναρξης

-
-

Για εντολή έναρξης της βάσης δοκιμάστην διάφορες επιλογές όπως command, - Entrypoint, αλλά ενώ κάποιες επιλογές εξυπηρετούσαν τον σκοπό τους ταυτόχρονα δημιουργούσαν πρόβλημα σε κάποιες άλλες. Έτσι καταλληξαμε στην χρήση την εντολής command - με χρήση ορισμάτων μόνος ως προς την ονοματοδοδία και την ενεργοποίησει του Replica Set

-
-
-
-
command: ["mongod", "--replSet", "rep-setX"]
-
-
-
-
-
-
-
-

3. Σύνδεση και ενεργοποίηση Replica Set

-
-
-

Για την σύνδεση και την ενεργοποίηση των replica set δημιουργήθηκε ένα script το οποίο ελέγχει ένα προς ένα όλα τα container είναι ενεργοποιημένα, - στην συνέχεια αφού ολοκληρώσει τον πρώτο έλεγχο συνεχίζει ελέγχοντας εάν ήταν επιτυχές το ανέβασμα της διεργασίας Mongod σε κάθε container και τέλος - εάν δεν συναντήσει κάποιο πρόβλημα στα παραπάνω προχωράει στην σύνδεση των κατάλληλων container για την δημιουργία των Replica set.

-
-
- - - - - -
- - -Τα ονόματα των μελών του swarm και οι διευθύνσεις IP που έχουν, τα ονόματα των container, καθώς και μία οπτική αναπαράσταση των δικτύων μπορεί να βρεθεί στον παρακάτω συνδεσμο:
-
-
- -
-
-
-

4. Μελλοντικοί στόχοι

-
-
-

Τέλος θα θέλαμε να συμπληρώσουμε ότι λόγο της πίεσης που δημιουργήθηκε απο τις τελευταίες εξελίξεις ως προς την έκβαση αυτού του εξαμήνου δεν ήταν δυνάτο -να γίνει μία ποιο δομημένη και εμπεριστατωμένη ανάτπυξη της εργάσιας πάρα το μεγάλο ενδιαφέρον που μας προξένησε. -Θα γίνει προσπάθεια συνέχισης του αλλά και ολοκλήρωσης του ανεξάρτητα του μαθήματος, αλλά και ανεξάρτητα απο το εάν - θα συνέχιστει η παροχή των υπολογιστικών πόρων απο τον Ωκεανό.

-
-
-
-
- - \ No newline at end of file