= Υπολογιστική Νέφους και Υπηρεσίες 
Apostolos rootApostolos@swarmlab.io
:description: ΑΣΚΗΣΗ 2020
:keywords: Cloud, swarm
:data-uri:
:toc: right
:toc-title: Πίνακας περιεχομένων
:toclevels: 4
:source-highlighter: coderay
:icons: font
:sectnums: 


.ΕΡΓΑΣΤΗΡΙΟ ΜΑΘΗΜΑΤΟΣ
[NOTE]
****
[.text-center]
*«Υπολογιστική Νέφους και Υπηρεσίες»*

[.text-center]
_ΑΣΚΗΣΗ 2020_
****

[.lead]
 Η άσκηση περιλαμβάνει τη δημιουργία ενός εικονικού εργαστηρίου(vlab) σε περιβάλλον *docker swarm* που θα εκτελεί αυτόματα τις λειτουργίες που διαθέτει.

= Δημιουργία εικονικού εργαστηρίου
*Κάθε vlab θα διαθέτει:* 

* [*] δικό του δίκτυο
* [*] web περιβάλλον για προβολή των αποτελεσμάτων και δυνατότητα download
* [ ] χώρο αποθήκευσης (προαιρετικά)
* [*] Αυτόματη διαδικασία εκτέλεσης των υπηρεσιών μέσω make (https://git.swarmlab.io:3000/swarmlab/examples-mpi/src/branch/master/swarmlab[Παράδειγμα])

== Παράδειγμα 

.Παράδειγμα Vlab και τρόπου εκτέλεσης της υπηρεσίας
image:https://git.swarmlab.io:3000/swarmlab/examples-mpi2/media/branch/master/images/swarmlab-network.png[alt="Vlab Network"]

Παράδειγμα για τη δημιουργία του δικτύου: http://docs.swarmlab.io/lab/DockerSwarm/swarm-deploy.adoc.html[Eργαστήριο Deploy]



= Παράδοση εργασίας

*Παράδοση εργασίας:* 

* [*] Το κείμενο  της εργασίας θα είναι σε μορφή *asciidoc* 
* [*] Θα περιέχει *Dockerfile* για την δημιουργία των images
* [*] Θα περιέχει *Stack Yaml File* για Deploy της υπηρεσίας
* [*] Θα περιέχει *README* file με πληροφορίες σχετικά με το εικονικό εργαστήριο και τις υπηρεσίες/εργαλεία που χρησιμοποιήθηκαν
* [*] Θα περιέχει *INSTALL* file με πληροφορίες σχετικά με την εγκατάσταση του εικονικού εργαστηρίου
* [*] Θα περιέχει *DOC* file/dir με πληροφορίες σχετικά με την χρήση του εικονικού εργαστηρίου
* [*] Θα περιέχει *Demo* site για την εκτέλεση των διαθέσιμων υπηρεσιών


.Πληροφορία
[NOTE]
====
Το κείμενα θα είναι *όλα* σε μορφή asciidoc ή markdown (Παραδείγματα: http://docs.swarmlab.io/Howtos/asciidoc/install-asciidoc.adoc.html#cheat-useadoc[1], http://docs.swarmlab.io/Howtos/asciidoc/QuickStart.adoc.html#_copy_paste_asciidoc_source[2], http://docs.swarmlab.io/Howtos/asciidoc/AsciiDocSyntaxQuickReference.adoc.html[Reference])
====


.Git
[NOTE]
====
Ολα τα αρχεία θα πρέπει να "ανέβουν" σε υπηρεσία git 

* https://git.swarmlab.io:3000 - Προτείνεται
* https://about.gitlab.com/ - Δεύτερη επιλογή
* https://github.com/ 
====



= Projects

*Projects για υλοποίηση:*

.Επιλογή
[NOTE]
====
Η επιλογή project ανα ομάδα πρέπει να πραγματοποιηθεί μέχρι *03.05*
====

==  Katex
*  Katex
**  https://github.com/KaTeX/KaTeX
**  https://katex.org/#demo

== wordpress
*  wordpress
**  https://github.com/gabidavila/docker-wordpress-ssl-nginx-mysql

== mongo replicated
*  mongo replicated
**  https://www.xosofox.de/2017/06/running-mongodb-as-a-replicaset-in-docker/
**  https://www.sohamkamani.com/blog/2016/06/30/docker-mongo-replica-set/#setting-up-replication

== mysql replicated
*  mysql replicated
**  https://github.com/gritt/docker-mysql-replication
**  https://hub.docker.com/r/actency/docker-mysql-replication

== asciidoc + online editor
* asciidoc + online editor
**      https://github.com/bodiam/awesome-asciidoc
**  https://github.com/asciidoctor/docker-asciidoctor

== collaborative LaTeX editor
* collaborative LaTeX editor
**    https://github.com/overleaf/overleaf

== Realtime database backend
* Realtime database backend
**    https://github.com/share/sharedb

== collaborative editor (like google docs)
* collaborative editor 
**  https://github.com/hectorj2f/codemirror-dockerhttps://github.com/jitsi/docker-jitsi-meet
**  https://codemirror.net/
**  https://codemirror.net/mode/dockerfile/

== hadoop
* hadoop
**   https://github.com/big-data-europe/docker-hadoop
**     https://hub.docker.com/r/sequenceiq/hadoop-docker/
**     https://www.alibabacloud.com/blog/setup-a-single-node-hadoop-cluster-using-docker_595278

== collaborative eclass meeting chat
* collaborative eclass meeting chat
**     https://github.com/jitsi/docker-jitsi-meet

== collaboration solution
* collaboration solution
**   https://mattermost.com/mattermost-vs-slack/
**     https://github.com/mattermost/mattermost-docker
**     https://hub.docker.com/r/jasl8r/mattermost

== Ruby, php and Node.js
* Ruby, php and Node.js
**   https://hub.docker.com/r/ethanw93/docker-ruby-php-node/
**    https://github.com/dsferruzza/docker-php-node-ruby-build/blob/master/Dockerfile

== java
* java
**    https://github.com/docker-java/docker-java

== phonegap cordova
* phonegap cordova
**   https://hub.docker.com/r/webratio/phonegap/
**    https://github.com/idotta/docker-phonegap
**    https://github.com/oren/docker-cordova
**    https://github.com/walterwhites/docker-cordova


= Q&A
[qanda]
Το project υλοποιείται σε ομάδες?::
  Ναι. Είναι οι ομάδες που έχουμε ήδη δημιουργήσει
Εγώ δεν βρήκα ομάδα. Τι κάνω?::
  Προσπάθησε να ενταχθείς σε μία ομάδα και ενημέρωσε μέσω  εμαιλ για την ομάδα που θα συμμετέχεις. Σε περίπτωση που δεν είναι αυτό δυνατό τότε χρησιμοποίησε το *docker-compose* για να δημιοργήσεις το 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]
