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.
146 lines
7.7 KiB
146 lines
7.7 KiB
= Υπολογιστική Νέφους και Υπηρεσίες
|
|
:description: ΑΣΚΗΣΗ 2020
|
|
:keywords: Cloud, swarm
|
|
:data-uri:
|
|
:toc: right
|
|
:toc-title: Πίνακας περιεχομένων
|
|
:toclevels: 4
|
|
:source-highlighter: coderay
|
|
:icons: font
|
|
:sectnums:
|
|
|
|
|
|
.ΕΡΓΑΣΤΗΡΙΟ ΜΑΘΗΜΑΤΟΣ
|
|
[NOTE]
|
|
****
|
|
[.text-center]
|
|
*«Υπολογιστική Νέφους και Υπηρεσίες»*
|
|
|
|
[.text-center]
|
|
_ΑΣΚΗΣΗ 2021_
|
|
****
|
|
|
|
[.lead]
|
|
Η άσκηση περιλαμβάνει τη δημιουργία ενός εικονικού εργαστηρίου(vlab) σε περιβάλλον *docker-compose* που θα εκτελεί αυτόματα τις λειτουργίες που διαθέτει.
|
|
|
|
== Δημιουργία εικονικού εργαστηρίου
|
|
*Κάθε vlab θα διαθέτει:*
|
|
|
|
* [*] δικό του δίκτυο
|
|
* [*] περιβάλλον _(GUI/CLI)_ για προβολή των αποτελεσμάτων
|
|
* [*] χώρο αποθήκευσης!footnote:disclaimer[Σχετικά με την υποστήριξη 'χώρου αποθήκευσης', μπορείτε να χρησιμοποιήσετε την υπηρεσία storage-mongo-replica του swarmlab.io (https://git.swarmlab.io:3000/swarmlab/storage-mongo-replica[git^]) ή όποια άλλη βάση επιθυμείτε ]
|
|
* [*] Αυτόματη διαδικασία εκτέλεσης των υπηρεσιών (https://git.swarmlab.io:3000/swarmlab/examples-mpi/src/branch/master/swarmlab[π.χ. μέσω make - Παράδειγμα])
|
|
* [*] μία υπηρεσία ανά container!footnote:disclaimer[Γενικά διαχωρίζουμε τους τομείς χρησιμοποιώντας μία υπηρεσία ανά container. Αυτή η υπηρεσία μπορεί, σε διάφορες περιπτώσεις, να εκτελεστεί σε πολλές διεργασίες (για παράδειγμα, ο διακομιστής web Apache ξεκινά πολλές διεργασίες).]
|
|
* [*] resource config για Out Of Memory Exceptions https://docs.docker.com/config/containers/resource_constraints/#understand-the-risks-of-running-out-of-memory[(OOME)], https://docs.docker.com/compose/compose-file/#resources[Howto]
|
|
|
|
.Πληροφορία
|
|
[NOTE]
|
|
====
|
|
Για την υλοποίησή σας μπορείτε να στηριχτείτε στη βασική αρχιτεκτονική-σχεδιασμό και παραδείγματα που επιδείχθηκαν στο Εργαστήριο
|
|
|
|
|
|
.Reminder
|
|
****
|
|
https://docs.docker.com/compose/compose-file/#not-supported-for-docker-stack-deploy[not-supported-for-docker-stack-deploy]
|
|
****
|
|
====
|
|
|
|
|
|
|
|
== Παράδοση εργασίας
|
|
|
|
*Παράδοση εργασίας:*
|
|
|
|
* [*] Το κείμενο της εργασίας θα είναι σε μορφή *asciidoc* ή markdown
|
|
* [*] Θα περιέχει *Yaml File* για Deploy της υπηρεσίας
|
|
* [*] Θα περιέχει *README* file με πληροφορίες σχετικά με το εικονικό εργαστήριο και τις υπηρεσίες/εργαλεία που χρησιμοποιήθηκαν
|
|
* [*] Θα περιέχει *INSTALL* file με πληροφορίες σχετικά με την εγκατάσταση του εικονικού εργαστηρίου
|
|
* [*] Θα περιέχει *DOC* file/dir με πληροφορίες σχετικά με την χρήση του εικονικού εργαστηρίου
|
|
* [*] Θα περιέχει *Demo* για την εκτέλεση των διαθέσιμων υπηρεσιών
|
|
|
|
|
|
.Πληροφορία
|
|
[NOTE]
|
|
====
|
|
Το κείμενα θα είναι *όλα* σε μορφή asciidoc ή markdown (https://asciidoctor.org/docs/asciidoc-writers-guide/[Asccidoc^], https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet[Markdown^])
|
|
====
|
|
|
|
|
|
.Git
|
|
[NOTE]
|
|
====
|
|
Ολα τα αρχεία θα πρέπει να "ανέβουν" σε υπηρεσία git
|
|
|
|
* https://git.swarmlab.io:3000[ swarmlab - Προτείνεται^]
|
|
* https://gitlab.com/explore[gitlab^]
|
|
* https://github.com/[github^]
|
|
====
|
|
|
|
|
|
|
|
== Projects
|
|
|
|
Κάθε ομάδα θα πρέπει να επιλέξει προς υλοποίηση ένα από τα κάτωθι προτεινόμενα projects (μπορεί επίσης να προτείνει και κάποιο δικό της αρκεί να τηρούνται οι βασικές κατευθύνσεις αρχιτεκτονικής/σχεδιασμού)
|
|
|
|
.Επιλογή
|
|
[NOTE]
|
|
====
|
|
Η επιλογή project ανα ομάδα πρέπει να πραγματοποιηθεί μέχρι *21.04*
|
|
====
|
|
|
|
=== Data collector service
|
|
* Swarmlab
|
|
** Swarmlab-hybrid, Menou: *hybrid-linux -> courses/fluentd*
|
|
** https://git.swarmlab.io:3000/swarmlab/hybrid-linux/src/branch/master/install/usr/share/swarmlab.io/sec/project/courses/fluentd[git^]
|
|
** https://vimeo.com/525221045[video1 ^]
|
|
** https://www.twitch.tv/videos/973658726[video2 ^]
|
|
|
|
[NOTE]
|
|
====
|
|
To project _"Data collector service"_ αποτελεί τη βασική επιλογή για την εξέταση του εργαστηρίου και χωρίζεται σε 3 ενότητες:
|
|
|
|
* Πρώτη
|
|
** Δημιουργία δικτύου
|
|
** Αυτόματη εγκατάσταση προγράμματος για την συλλογή των δεδομένων
|
|
** onEvent - τοπική/προσωρινή αποθήκευση των δεδομένων
|
|
* Δεύτερη
|
|
** Δημιουργία βάσης δεδομένων(Database replication)
|
|
** onEvent αποθήκευση των δεδομένων στην βάση
|
|
* Τρίτη
|
|
** Δημιουργία GUI ή
|
|
** Δημιουργία Websocket σύνδεσης με την βάση ή με τις βασικές υπηρεσίες για άμεση μεταφορά των δεδομένων
|
|
|
|
====
|
|
|
|
=== Realtime database backend
|
|
* Realtime database backend - https://en.wikipedia.org/wiki/Operational_transformation
|
|
** https://github.com/share/sharedb[git^]
|
|
|
|
|
|
=== Fediverse system
|
|
* Pleroma - https://en.wikipedia.org/wiki/Fediverse[Wikipedia^]
|
|
** https://docs.pleroma.social/backend/installation/otp_en/[docs^]
|
|
|
|
|
|
=== Distributed file system.
|
|
* IPFS Cluster - https://en.wikipedia.org/wiki/Fediverse[Wikipedia^]
|
|
** https://github.com/ipfs/ipfs-cluster[git^]
|
|
|
|
|
|
=== Object Storage
|
|
* Minio s3 (amazon s3) - https://en.wikipedia.org/wiki/Amazon_S3[Wikipedia^]
|
|
** https://github.com/minio/minio[git^]
|
|
|
|
|
|
== Q&A
|
|
[qanda]
|
|
Το project υλοποιείται σε ομάδες?::
|
|
Ναι.
|
|
Εγώ δεν βρήκα ομάδα. Τι κάνω?::
|
|
Προσπάθησε να ενταχθείς σε μία ομάδα και ενημέρωσε μέσω εμαιλ για την ομάδα που θα συμμετέχεις.
|
|
Μπορώ να υλοποιήσω κάποιο άλλο project εκτός λίστας?::
|
|
Ναι. Αρκεί *να μην είναι "stand alone application".* To project πρέπει να υλοποιηθεί σύμφωνα με τις προδιαγραφές που περιγράφονται και για τα υπόλοιπα.
|
|
Δεν γνωρίζω asciidoc θα χρειαστεί χρόνο για να το μάθω?::
|
|
Οχι είναι απλό. Δεν θα χρειαστείς πάνω από 5 λεπτά και σε περίπτωση που θέλεις κάτι ακόμη πιο απλό γράψε σε markdown - online Editor: https://stackedit.io/app[markdown], https://asciidoclive.com/edit/scratch/1[asciidoc]
|
|
Δεν γνωρίζω git θα χρειαστεί χρόνο για να το μάθω?::
|
|
Οχι είναι απλό. Δεν θα χρειαστείς πάνω από 10 λεπτά - Βοήθεια: http://docs.swarmlab.io/SwarmLab-HowTos/HowTo-gitea.adoc.html[Gitea], https://classic.scottr.org/presentations/git-in-5-minutes/[Git In Five Minutes]
|
|
|