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
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/).
|
||
|
|
||
|
|
||
|
```
|