You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
4.1 KiB

5 years ago
# Node.js Vlab!
Αναλάβαμε σαν ομάδα το ανωτέρο project (Node.js) στο εργαστηριακό μάθημα [**Υπολογιστική Νέφους και Υπηρεσίες**](https://eclass.uniwa.gr/courses/ICE326/) και το υλοποιήσαμε σύμφωνα με τις προϋποθέσεις που έχουν τεθεί για το vlab.
Πιό συγκεκριμένα :
- δικό του δίκτυο
- web περιβάλλον για προβολή των αποτελεσμάτων και δυνατότητα download [Minio Browser](https://83.212.77.30:9443/minio/login)
- χώρο αποθήκευσης
- Αυτόματη διαδικασία εκτέλεσης των υπηρεσιών μέσω *make*
- μία υπηρεσία ανά container
- replicated mode
- Containers/Replica θα "τρέχουν" μόνο σε workers
- resource config για Out Of Memory Exceptions
>Αναφορικά με τα παραπάνω,
**λειτουργία** της υπηρεσίας είναι μέσα απο ενα Web περιβάλλον ο χρήστης να ανεβάζει το node.js κώδικα του, να αποθηκεύεται σε ένα χώρο αποθήκευσης, να γίνεται download τοπικά,
## Swarm
**Στη συνέχεια δημηουργούμε :**
>- 1 [manager](https://83.212.77.30:9443/minio/login)
>- 3 workers
>> - [w1](https://83.212.77.59:9443/minio/login)
>> - [w1](https://83.212.77.50:9443/minio/login)
>> - [w1](https://83.212.77.113:9443/minio/login)
Δημιουργούνται επίσης οι υπηρεσίες
> 1. minio_stack
> 2. node_stack
Μέσα απο τον manager και τους workers, **στη πόρτα 9443**, μπορούμε να έχουμε πρόσβαση στο Minio Browser και να ακολουθήσει η παραπάνω λειτουργία.
Αφου γίνει αποθήκευση του project μέσα απο τους workers και **μόνο** και στην πόρτα **3000** ανεβαίνει η υπηρεσία που έχει γίνει deploy, και βλέπουμε το αποτέλεσμα στον browser. Αυτό σημβαίνει κάθε προκαθορισμένο χρονικό διάστημα οριζόμενο απο εμάς.
> ## $$Πιο$$ $$αναλυτικά..... $$
## Minio/Bucket
To Bucket είναι ένας χώρος αποθήκευσης που δημιουργούμε στο Minio ,όπου ο κάθε χρήστης μπορεί να ανεβάσει εκεί τα αρχεία του.
- **Αρχικά** δημιουργούνται 4 υπηρεσίες Minio ( Minio1-Minio2-Minio3-Minio4) , μια για τον κάθε ένα node απο το swarm.
- Η σύνδεση στην υπηρεσία γίνεται με χρήση **key** και **secret**
- Μέσα απο το καθορισμένο bucket στη συνέχεια αποθηκεύουμε τα αρχεία μεσω της δωθήσας υπηρεσίας **aws s3** στο localdir του μηχανήματος μας.
- Έπειτα δημιουργούνται τα **replicas**
> **Τέσσερα** αρχικα, ( ένα για κάθε node {1,2,3,4})
> **Δύο** ακόμη για webUI που τρέχει η υπηρεσία για το γραφικό περιβάλλον του Minio
- Τέλος δημιουργείται η εφαρμογή που είναι ουσιαστικά μια υπηρεσία στο Minio με **9 replicas**.
## CRON
Tέλος, εκτελείτε η υπηρεσία **Cron**, όπου ανα προκαθορισμένο χρόνο μέσω του αρχείου **Makefile** "τραβάμε" τα περιεχόμενα από το bucket που έχουμε δημιουργήσει και τα αποθηκεύουμε στο localdir. Τα κάνουμε ***build*** και στη συνέχεια ***deploy*** στο stack όπου εκτελείτε η υπηρεσία στους workers και τα αποτελέσματα εμφανίζονται με τη διεύθυνση του κάθε worker στη πόρτα [**:3000**](http://83.212.77.59:3000/).
```